Какую проблему мы решаем
Оркестратор или load balancer видит процесс снаружи. Если порт открыт, экземпляр может казаться живым, хотя реальный запрос уже не выполняется. Обратная ошибка тоже опасна: если liveness зависит от каждого внешнего партнёра, краткий чужой сбой может заставить платформу перезапустить полностью исправные приложения.
Как работает решение
Liveness отвечает, нужно ли перезапустить процесс. Readiness — можно ли прямо сейчас отправлять ему пользовательский трафик. Сигналы должны отражать разные состояния. Startup тоже важен: новый экземпляр не должен получать нагрузку раньше, чем способен её обрабатывать.
Что получает бизнес
Бизнес получает меньше ложных аварий во время релизов и масштабирования. Трафик реже попадает в экземпляры, которые технически запущены, но фактически не готовы. Правильные checks также уменьшают каскадные рестарты, превращающие небольшой внешний сбой в собственную большую аварию.
Что получает команда
Команда получает формальный контракт между приложением и платформой: когда экземпляр жив, когда готов и когда его действительно стоит заменить. Это улучшает rolling deployment, autoscaling и автоматическое восстановление.
Что получает клиент
Клиент реже попадает на «полуживой» экземпляр во время релиза, прогрева или частичного сбоя.
Чем мы за это платим
Слишком примитивный health check ничего не гарантирует, слишком сложный сам становится причиной нестабильности. Проверки нужно тестировать вместе с реальными отказами, иначе зелёная лампочка не несёт полезного смысла.
Когда не нужно усложнять
В динамической инфраструктуре с несколькими экземплярами readiness и liveness становятся базовой частью эксплуатации. Для одного вручную управляемого процесса сложное разделение состояний может быть избыточным.
Что стоит спросить перед решением
- Что означает «жив» для процесса?
- Что означает «готов обслуживать клиента»?
- Не зависит ли liveness от внешней системы, которую restart не исправит?
- Есть ли отдельный startup-период?
- Проверяли ли мы health checks во время реального сбоя?
В итоге
Health check полезен только тогда, когда его сигнал соответствует действию платформы. Для бизнеса правильные проверки здоровья означают меньше трафика в неготовые экземпляры и меньше автоматических действий, которые сами создают аварию.