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