Два сервера и половинка третьего: как мы строили HA-инфраструктуру для Totum

Habr ·

Два сервера и половинка третьего: как мы строили HA-инфраструктуру для Totum

Когда говорят про High Availability, довольно быстро получается классическая картина: три сервера, балансировщик, кластер PostgreSQL, распределённое хранилище, мониторинг и ещё несколько компонентов, про которые никто не вспоминал, пока всё работало на одной виртуалке. У нас исходная ситуация была намного прозаичнее: была рабочая система на Totum, которую нужно было перенести в новую инфраструктуру и одновременно избавиться от единственной точки отказа. При этом хотелось выполнить несколько условий: 1) падение одной основной VM не должно останавливать систему; 2) PostgreSQL должен автоматически переключаться; 3) приложение должно понимать, на какой ноде ему разрешено выполнять активные операции; 4) пользовательские файлы должны оставаться доступными после переключения; 5) переключение не должно требовать ручного изменения DNS; 6) всё должно разворачиваться и обслуживаться через Ansible; 7) покупать третью полноценную машину только ради кворума не хотелось. Последний пункт в итоге и породил архитектуру, которую между собой я называл «HA для бедных». Спойлер: третья машина всё-таки появилась. Но это маленький witness, который практически ничего не делает с точки зрения бизнес-нагрузки. ---------------------------------------------------------------------------------------------------------------------------------- Что такое Totum и почему с ним вообще возник этот квест Totum — self-hosted low-code платформа для создания внутренних web-приложений: ERP, учётных систем, личных кабинетов и других кастомных бизнес-систем. Приложения строятся вокруг таблиц и прикладной логики, а сама платформа может работать со сторонними системами через API и инициировать HTTP-запросы. Читать далее

Когда говорят про High Availability, довольно быстро получается классическая картина: три сервера, балансировщик, кластер PostgreSQL, распределённое хранилище, мониторинг и ещё несколько компонентов, про которые никто не вспоминал, пока всё работало на одной виртуалке. У нас исходная ситуация была намного прозаичнее: была рабочая система на Totum, которую нужно было перенести в новую инфраструктуру и одновременно избавиться от единственной точки отказа. При этом хотелось выполнить несколько условий: 1) падение одной основной VM не должно останавливать систему; 2) PostgreSQL должен автоматически переключаться; 3) приложение должно понимать, на какой ноде ему разрешено выполнять активные операции; 4) пользовательские файлы должны оставаться доступными после переключения; 5) переключение не должно требовать ручного изменения DNS; 6) всё должно разворачиваться и обслуживаться через Ansible; 7) покупать третью полноценную машину только ради кворума не хотелось. Последний пункт в итоге и породил архитектуру, которую между собой я называл «HA для бедных». Спойлер: третья машина всё-таки появилась. Но это маленький witness, который практически ничего не делает с точки зрения бизнес-нагрузки. ---------------------------------------------------------------------------------------------------------------------------------- Что такое Totum и почему с ним вообще возник этот квест Totum — self-hosted low-code платформа для создания внутренних web-приложений: ERP, учётных систем, личных кабинетов и других кастомных бизнес-систем. Приложения строятся вокруг таблиц и прикладной логики, а сама платформа может работать со сторонними системами через API и инициировать HTTP-запросы. Читать далее

Источник: Habr