HA для Totum на двух серверах: как построить отказоустойчивость без лишних затрат
94

HA для Totum на двух серверах: как построить отказоустойчивость без лишних затрат

Автор: admin

Опыт построения High Availability для low-code платформы Totum на двух основных нодах с witness-сервером для кворума etcd. Решение обеспечивает автоматический фейловер PostgreSQL через Patroni и переключение приложения без изменения DNS.

Классическая схема High Availability подразумевает три полноценных сервера, балансировщик, кластер PostgreSQL и распределённое хранилище. Однако для переноса рабочей системы Totum в новую инфраструктуру требовалось избавиться от единственной точки отказа, не покупая третью мощную машину только ради кворума.

Архитектура «HA для бедных» заключается в использовании двух основных нод (Node A и Node B) с PostgreSQL в асинхронной репликации под управлением Patroni, и лёгкого witness-сервера для etcd. Witness не хранит копию базы и не запускает приложение — его задача быть третьим голосом для кворума. При падении одной основной ноды оставшаяся вместе с witness даёт большинство 2 из 3, что позволяет кластеру принимать решения.

Для координации роли приложения реализован механизм role-check: каждая нода периодически опрашивает локальный Patroni о статусе PRIMARY. Активная нода возвращает HTTP 200 на health-check эндпоинте, пассивная — 503. L7-балансировщик направляет трафик только на ACTIVE-ноду. При фейловере Patroni меняет лидера, role-check переключает роли, балансировщик перенаправляет трафик — DNS менять не требуется.

Пользовательские файлы реплицируются через lsyncd (на базе rsync + inotify), что обеспечивает синхронизацию почти в реальном времени. Вся инфраструктура разворачивается через Ansible. Выбор асинхронной репликации PostgreSQL — компромисс: возможна потеря незначительного объёма последних транзакций при аварийной потере primary, но запись не блокируется ожиданием второй ноды.

Похожие материалы

Anthropic заменила Git на собственную систему Scion: как агенты перегрузили контроль версий
Anthropic Scion Git ИИ-агенты

Anthropic заменила Git на собственную систему Scion: как агенты перегрузили контроль версий

Anthropic перевела монорепозиторий с Git на централизованную систему Scion из-за взрывного роста …

Кейс: 6-кратный рост показов в ИИ-ответах Google за 28 дней — стратегия GEO для интернет-магазина
GEO AI Overviews SEO кейс генеративный поиск

Кейс: 6-кратный рост показов в ИИ-ответах Google за 28 дней — стратегия GEO для интернет-магазина

Эксперт с 10-летним опытом раскрывает кейс роста цитируемости в AI Overviews и …

Минцифры обсуждает лимит на зарубежный интернет-трафик россиян
Минцифры суверенный Рунет ТСПУ интернет-цензура

Минцифры обсуждает лимит на зарубежный интернет-трафик россиян

Минцифры рассматривает поправку к законопроекту о реформе телеком-рынка, вводящую лимит на зарубежный …

ИИ-помощник Folax: найдите товары на Ozon с выгодой.
Ozon ИИ-помощник экономия

ИИ-помощник Folax: найдите товары на Ozon с выгодой.

Обнаружил через фотографию, дождался скидки — Ozon наращивает функционал ИИ-ассистента. Пользователю достаточно …