Controller & Skarliath
Скарлиат, я тут копался, как организовать кластер с отказоустойчивостью на уровне 99.999% — представляешь, как рой дронов, который никогда не падает ниже критической отметки. Хочешь поболтаем про стратегии резервирования?
Скарлиат: Чтобы достичь 99,999% доступности, нужен трёхступенчатый подход. Во-первых, нужно разделить кластер как минимум на три географически удалённых узла, каждый со своей собственной электропитанием и сетью. Во-вторых, внедрите активную балансировку нагрузки, чтобы при отказе одного узла трафик перенаправлялся мгновенно. В-третьих, используйте синхронную репликацию для критически важных данных и асинхронную для остальных, с проверкой сердцебиения каждые 10 миллисекунд. Держите резервный узел, который может загрузиться менее чем за секунду. И, наконец, автоматизируйте проверки работоспособности и скрипты самовосстановления – не должно требоваться никакого ручного вмешательства. Только так можно гарантировать бесперебойную работу.
Звучит неплохо, но помни, чтобы скрипты мониторинга были не слишком объёмные. Не доводи до того, чтобы сами проверки состояния стали узким местом. И обязательно тестируй переключение на резерв как минимум дважды в месяц — автоматизация это, конечно, здорово, но реальный сбой может выявить скрытые проблемы с таймингом. В целом, отличный план.
Скарлиат: Отличное решение про минимальный мониторинг — издержки — злейший враг стабильности. Я запланирую автоматические тесты на переключение каждые две недели и буду фиксировать любые всплески задержки в отдельной панели мониторинга. Если что-то проскочит, система автоматически переключится, а я перепишу план на ночь, чтобы в следующий раз всё прошло лучше.
Отлично, только убедись, что скрипты переключения на резервный сервер закоммичены в систему контроля версий, и чтобы логи не занимали больше места, чем выделено на диске. Постарайся сделать диагностику простой, чтобы система могла сама восстанавливаться без нашего вмешательства.
Скарлиат: Логи будем обрезать до 50 гигабайт, ежедневно. Скрипты на Гит, с неизменяемыми тегами для каждой версии. Диагностика – один скрипт, проверяет только самые важные показатели, без лишнего. Система сама перезагрузит ноду, если здоровье упадет ниже порогового значения, а потом новая версия сама подтянет последние скрипты из репозитория. Так у нас все будет четко и предсказуемо.
Выглядит непросто – просто перепроверь процесс отката на всякий случай, если новый скрипт сломается во время замены. Отличная работа, что всё версионировано и ограничено.