Инфраструктуру low-code платформы Totum перевели на отказоустойчивую архитектуру, состоящую из двух основных узлов и третьего сервера-свидетеля. Использование witness-ноды позволило обеспечить кворум в etcd без необходимости развертывания полноценного третьего сервера.
Для управления переключением PostgreSQL используется Patroni, а для синхронизации файлов между узлами — lsyncd. Роль активного узла определяется через механизм проверки статуса primary в Patroni, что позволяет балансировщику L7 направлять трафик на нужную ноду без изменения DNS.
Вся инфраструктура разворачивается и обслуживается с помощью Ansible. Для предотвращения случайных изменений кода на production-серверах применяются отдельные роли и узкие playbook'и. Миграция проводилась параллельно с работающей системой с последующим тестированием failover.
После миграции были выявлены проблемы с производительностью PHP-FPM из-за медленных внешних HTTP-запросов и long polling. Анализ через slowlog показал, что воркеры оказывались заняты, что приводило к зависанию интерфейса. Проблему решили увеличением лимита pm.max_children до 40.





