Pull to refresh
10
0
Сергей Зацепилин @TroLLik

User

Send message

Инструкция по переезду и миграции данных с Google Firebase на Self-hosted Supabase

Level of difficulty Medium
Reading time 5 min
Views 3.6K

Всем доброго дня! Комментарии к моей предыдущей статье о том, как я развиваю свой pet-проект, а также различные законы, подразумевающие локализацию персональных данных на серверах, размещенных на территории РФ (в частности Федеральный закон от 21.07.2014 № 242-ФЗ «О внесении изменений в отдельные законодательные акты Российской Федерации в части уточнения порядка обработки персональных данных в информационно-телекоммуникационных сетях»), озадачили меня идеей постепенного перевода всех данных приложения в РФ. В качестве сервера БД я отдал предпочтение сервису Supabase, который легко разворачивается в Docker на сервере.

В данном туториале я хочу обзорно пройтись по сравнению двух сервисов, представляющих собой не только СУБД, а BaaS (backend as a service), но внимание заострю именно на работе с данными, постараясь сравнить их функционал, производительность и простоту использования. Также приведу примеры обработки получения, обновления и удаления данных в Google Firebase Realtime Database и Supabase Realtime Database на JavaScript.

Стоит сразу сделать оговорку, что Realtime Database от Firebase - это облачная БД для хранения и синхронизации данных в реальном времени, в то время как БД от Supabase хоть и является её аналогом, но позволяет хостить базу данных самостоятельно ("под капотом" у Supabase располагается объектно-реляционная СУБД PostgreSQL).

Мы рассмотрим шаги, необходимые для переноса данных и обсудим примеры кода для реализации этого процесса.

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 2

Наполняем до краев: влияние порядка столбцов в таблицах на размеры баз данных PostgresQL

Level of difficulty Medium
Reading time 8 min
Views 18K

При оценке требований базы данных к оборудованию требуется учет многих факторов. И здесь у Postgres есть одна интересная особенность, которая почти всегда ускользает от внимания разработчиков, потому что она искусно спрятана между столбцами таблиц.

И что же там прячется?
Total votes 59: ↑58 and ↓1 +57
Comments 19

Что такое Flipper и почему он Zero. Разбираемся в тамагочи для гиков руками чайника

Level of difficulty Easy
Reading time 5 min
Views 112K

Не так давно, примерно год назад я наконец получил свою долгожданную посылку. Flipper Zero. Для тех кто не знает, Flipper Zero - это небольшое устройство, которое позволяет заниматься всякими весёлыми затеями в жизни. Веселье начинается с Sub-1 GHz антенны и продолжается микро-скриптами для ПК. Интересующихся, прошу под кат.

Подкатье
Total votes 39: ↑36 and ↓3 +33
Comments 43

Сайзинг Elasticsearch

Reading time 6 min
Views 29K


— How big a cluster do I need?
— Well, it depends… (злобное хихиканье)

Elasticsearch — сердце Elastic Stack, в котором происходит вся магия с документами: выдача, приём, обработка и хранение. От правильного количества нод и архитектуры решения зависит его производительность. И цена, кстати, тоже, если ваша подписка Gold или Platinum.

Основные характеристики аппаратного обеспечения — это диск (storage), память (memory), процессоры (compute) и сеть (network). Каждый из этих компонентов в ответе за действие, которое Elasticsearch выполняет над документами, это, соответственно, хранение, чтение, вычисления и приём/передача. Поговорим об общих принципах сайзинга и раскроем то самое «it depends». А в конце статьи ссылки на вебинары и статьи по теме. Поехали!
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 16

Квантовые компьютеры: без математики и философии

Reading time 13 min
Views 32K

В этой статье я разберу по косточкам все тайны квантовых компьютеров: что такое суперпозиция (бесполезна) и запутанность (интересный эффект), могут ли они заменить обычные компьютеры (нет) и могут ли они взломать RSA (нет). При этом я не буду упоминать волновую функцию и столь раздражающих Bob и Alice, которых вы могли встречать в других статьях про квантовые машины.

Первое и самое главное, что нужно знать - квантовые компьютеры не имеют ничего общего с обычными. Квантовые компьютеры по своей природе - аналоговые, там нет бинарных операций. Вероятно, вы уже слышали про Кубиты, что у них есть состояние 0, 1 и 0-1 одновременно, и благодаря этому вычисления выполняются очень быстро: это заблуждение. Кубит - это магнит (обычно атом или электрон), подвешенный в пространстве, который может вращаться по всем трем осям. Собственно, вращение магнита в пространстве - это и есть операции квантового компьютера. Почему это может ускорить вычисления? Было очень сложно найти ответ, но самые стойкие читатели увидят его в конце статьи. Начнем разоблачения.

Читать далее
Total votes 94: ↑88 and ↓6 +82
Comments 95

Как уменьшить количество обращений к DockerHub из инфраструктуры CI/CD при помощи кэширования образов Docker?

Reading time 5 min
Views 9.1K


Компания Docker объявила о введении ограничений на частоту скачивания данных сервиса DockerHub в бесплатном тарифе. В этой статье мы расскажем о стратегиях, позволяющих пользователям смягчить влияние новых ограничений частоты запросов при использовании сервиса GitLab, установленного на своих мощностях.

Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 0

Установка Jenkins с помощью terraform в Kubernetes в Yandex Cloud с letsencypt

Reading time 9 min
Views 5.9K

В этой статье будет следующее:


  • Заведение DNS домена на reg.ru.
  • Управление DNS зоной в Yandex DNS c помощью terraform.
  • Создание Kubernetes в Yandex Cloud.
  • Резервируем внешний статический IP адрес.
  • Установка Jenkins c помощью terraform модуля helm_release.
  • Создание ClusterIssue(Issue) для создания letsencypt сертификата.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 0

LINSTOR — это как Kubernetes, но для блочных устройств (обзор и видео доклада)

Reading time 10 min
Views 18K

В июне я выступил на объединенной конференции DevOpsConf & TechLead Conf 2022. Доклад был посвящен LINSTOR — Open Source-хранилищу от компании LINBIT (разработчики DRBD). Основной идеей выступления было показать [на примере Kubernetes], как работает и устроен LINSTOR, какие проблемы решает, как его правильно настроить и использовать. Эта статья — основная выжимка из доклада (его полное видео см. в конце).

Читать далее
Total votes 41: ↑39 and ↓2 +37
Comments 5

Получаем бесплатные сервера в Oracle Cloud Free Tier

Reading time 6 min
Views 142K

Искал я как-то себе дешевый VPS сервер. Ну для отладки чего-нибудь, моделирования сетей... Да мало ли еще для чего может понадобится личный сервер? И вот в результатах поиска всплыло, что Oracle предоставляет возможность получить бесплатно и "пожизненно" до двух виртуальных машин (Oracle Cloud Infrastructure Compute). А также еще кое-какие вкусняшки. Зарегистрировался, получил - действительно выдают, действительно работает, и действительно бесплатно. Но хочется же подключить полученные машинки в свою сеть! И, желательно, штатными средствами. Вот из экспериментов и получились две статьи, может быть кому-то они сэкономят часа четыре рабочего времени.

Читать далее
Total votes 21: ↑21 and ↓0 +21
Comments 114

Функции в скриптах Роутер ОС Микротик. Интересные решения и недокументированные возможности

Reading time 32 min
Views 19K
Роутер ОС Микротик, как известно, имеет мощнейший LUA-подобный встроенный скриптовый язык, позволяющий осуществлять исполнение сценариев, в том числе при наступлении каких-либо событий в сети или по расписанию. Скрипты могут состоять из одной строки кода или иметь внушительные размеры, при передаче управления друг другу формируя сложные программы. Встроенный скриптовый язык существенно расширяет возможности системы, практически не ограничивая полет фантазии программиста. Существующее официальное руководство по скриптам написано кратко и, разумеется, не может охватить все особенности программирования для Роутер ОС.

В этой статье, не претендующей на полное руководство к разделу, мы рассмотрим одну из интересных и важных рубрик «скриптинга», а именно — функции.

Перед прочтением статьи, пользователям, начинающим изучать скрипты, рекомендую ознакомиться с официальным руководством Микротик по скриптам по ссылке выше, либо с его переводом (например, здесь). Следует знать типы переменных в скриптах Микротик, иметь понятие об областях видимости, окружении переменных и т.д… Также будет весьма полезна статья habr.com/ru/post/270719, в которой автор подробно разбирает типы переменных LUA Микротик и варианты их объявления и использования.
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 0

Дорога к Новому просвещению: почему массовость образования важнее элитарности

Reading time 6 min
Views 15K
Просвещение становится трендом — глобальным и надполитическим. В разных странах, в разных обществах по разным причинам разных людей вдруг посещает чувство, что пора. Назрело что-то. В англоязычном публичном пространстве тема Enlightenment зазвучала раньше других, но и там лишь пока набирает обороты. 5 или 10 лет назад такого не было. Говорили о многом — но слово просвещение, по-моему, как-то не звучало. А сейчас мы вполне можем находиться в начале нового Просвещения. Не потому, что слово зазвучало — а потому, из-за чего оно зазвучало.

Потому что уже многие чувствуют, сколько вопросов накопилось. Многие осознают масштаб вызовов, растущих впереди. И чувствуют: пора! Пора. Человечеству пора приводить себя в мыслительную форму.

Фото со строительства главного здания МГУ на Воробьёвых горах

Читать дальше →
Total votes 71: ↑61 and ↓10 +51
Comments 221

Внутреннее устройство Kubernetes-кластера простым языком

Reading time 6 min
Views 65K

Прим. перев.: как многим хорошо известно, Kubernetes — это всего лишь пять бинарников. Об их назначении и рассказывает в этой статье Vedashree Patil, консультант из Deloitte Digital. Когда ей потребовалось изучить Kubernetes, она столкнулась с большим количеством новой информации, осознать которую за короткое время было непросто. Так она пришла к идее уменьшить порог вхождения в K8s другим специалистам, создав цикл публикаций «Kubernetes 101». Все статьи сопровождаются простыми и наглядными комиксами. Представляем вниманию перевод материала под названием «Внутри кластера» из этого цикла.

Как выглядит кластер Kubernetes? Как работают узлы? Из этой статьи вы узнаете обо всех основных компонентах системы Kubernetes.

Читать далее
Total votes 65: ↑63 and ↓2 +61
Comments 10

Миграция с Terraform на Terragrunt

Reading time 9 min
Views 17K

В Bestmile мы используем Terraform для AWS IaC. Но чем больше развивалась наша инфраструктура, тем запутаннее становился код Terraform.

Код Terraform стало сложнее обслуживать. Он терял эффективность. Terraform — отличный инструмент, но нуждается в дополнениях. Здесь-то и пригодится Terragrunt.

Terragrunt — это обертка (wrapper) для Terraform, которая расширяет его функционал и устраняет некоторые ограничения. Terragrunt взаимодействует с Terraform с помощью кода HCL (HashiCorp Configuration Language), поэтому Terragrunt будет выполнять код Terraform в зависимости от того, как вы определите код HCL. Именно он дает дополнительные преимущества, как описано ниже, и превращает Terragrunt в волшебный инструмент.

Изучить код
Total votes 7: ↑7 and ↓0 +7
Comments 6

Gitops и ArgoCD: отслеживание изменений образов

Reading time 5 min
Views 8.8K

С развитием методологии Gitops - имплементации непрерывной поставки при которой описание и изменение системы производятся декларативно с использованием системы контроля версий, а также являющейся естественным продолжением и развитием infrastracture as a code - появляются удобные инструменты для внедрения данного метода. В первую очередь хочется выделить  самые популярные инструменты непрерывной поставки по версии CNCF - ArgoCD и Flux. Оба приложения реализуют схожий функционал - синхронизацию git и кластера kubernetes. Рассмотрим ключевые особенности ArgoCD и как он может обновлять версии образов в git.

Читать дальше
Total votes 7: ↑7 and ↓0 +7
Comments 0

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 2

Reading time 13 min
Views 11K

В прошлой части были рассмотрены рекомендации по множеству механизмов Kubernetes для оптимального деплоя высокодоступных приложений включая особенности работы планировщика, стратегии обновления, приоритеты, пробы и т.п. Во втором и заключительном материале поговорим о трёх важных оставшихся темах: PodDisruptionBudget, HorizontalPodAutoscaler, VerticalPodAutoscaler, — продолжив нумерацию из первой части.

Читать далее
Total votes 39: ↑38 and ↓1 +37
Comments 4

Продвинутые функции гита, о которых вы, возможно, не знали

Reading time 9 min
Views 18K

Git – очень мощный инструмент, который практически каждый разработчик должен использовать ежедневно, но для большинства из нас git сводится к нескольким командам: pull commit push. Однако, чтобы быть эффективным, продуктивным и обладать всей мощью git, необходимо знать ещё несколько команд и трюков. Итак, в этой статье мы исследуем функции git, которые просто запомнить, применять и настроить, но которые могут сделать ваше время с git гораздо более приятным.

Кладите этот пост в закладки, если хотите быстро научить новичка (или просто неосведомлённого человека) умело пользоваться git.

Приятного чтения!
Total votes 20: ↑15 and ↓5 +10
Comments 22

Как работает Git

Reading time 19 min
Views 148K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →
Total votes 110: ↑99 and ↓11 +88
Comments 38

Пять простых шагов для понимания JSON Web Tokens (JWT)

Reading time 5 min
Views 617K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Comments 60

Горизонтальное масштабирование и отказоустойчивость Redis для сервисных служб DirectumRX

Reading time 16 min
Views 13K
Обратите внимание, что данная статья подходит только для версии Directum RX ниже 4.1. Не используйте эту статью для более новых версий Directum RX. Информация и рекомендации, приведенные в этой статье, предоставлена только для ознакомительных целей и не может служить заменой профессиональных консультации Службы поддержки DIRECTUM.


Redis – это система управления базами данных класса NoSQL (не реляционные СУБД), размещаемых целиком в оперативной памяти. Для доступа к данным используется модель «ключ» — «значение». Такая СУБД используется зачастую для хранения кэшей в масштабируемых сервисах, для хранения изображений и данных небольшого размера.

Широкое распространение СУБД Redis получила за счет:

  • высокой скорости работы, т.к. все данные хранятся в оперативной памяти;
  • кроссплатформенности;
  • распространению по BSD лицензии (относится к СПО).

Широту распространения и применимость Redis можно оценить по огромному количеству документации со всевозможными кейсами на официальном сайте проекта.

В случае применения горизонтального масштабирования сервисных служб DirectumRX необходимо использовать отказоустойчивую инсталляцию Redis для корректной работы с сервисом хранилищ DirectumRX и сервисом веб-доступа DirectumRX.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Comments 11

Network diagram as code / Схема сети как код

Reading time 6 min
Views 13K
В последние пару лет стал больше заниматься документацией. Написать поясняющий текст о том, как работает та или иная система — в целом, это достаточно просто. Нарисовать схему, на которой будут отображены все ключевые объекты, связи между этими объектами, тоже вполне легко.

Но самый проблемный момент — это поддерживать эту документацию в актуальном состоянии. И ладно бы текст, но схемы… Т.к. вся документация онлайн, т.е. в формате html, то к тексту прилагаются картинки gif/jpeg/png, на которых собственно изображены схемы. А схемы рисуются в различных программах типа Visio или онлайн-сервисах а-ля draw.io. Затем экспортируешь схему в графический формат и прилагаешь к html. Все просто.

В чем проблема?
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 13

Information

Rating
Does not participate
Location
Красноярск, Красноярский край, Россия
Date of birth
Registered
Activity