Готовность сервиса к эксплуатации: health checks, graceful shutdown, логи, метрики
↑ 7.6 DevOps для бэкенд-разработчика · ← Предыдущая · → Следующая
Зачем это на собесе
Чек-лист «production readiness»: что должен уметь сервис, чтобы его можно было безопасно эксплуатировать.
Объяснение
| Область | Требование |
|---|---|
| Здоровье | /health/live и /health/ready (см. Health checks: liveness и readiness) |
| Остановка | graceful shutdown: завершение запросов и консьюмеров по SIGTERM (см. Graceful shutdown и жизненный цикл приложения) |
| Логи | структурные JSON в stdout, trace_id, без секретов |
| Метрики | RED-метрики, runtime, бизнес-метрики, экспорт (Prometheus/OTLP) |
| Трейсы | OpenTelemetry, проброс контекста |
| Конфигурация | через окружение, валидация при старте |
| Ресурсы | requests/limits, лимиты пула и потоков |
| Отказоустойчивость | таймауты, ретраи, circuit breaker, идемпотентность |
| Безопасность | не root, секреты вне образа, минимальные права, актуальные зависимости |
| Данные | миграции совместимы, бэкапы проверены |
| Документация | README, runbook, алерты со ссылками |
| Версия | в /health, метриках и логах |
| Масштабирование | stateless, состояние вне процесса |
Runbook: что делать при типовых инцидентах (рост ошибок, задержки, переполнение очереди, недоступность БД) — шаги диагностики и восстановления.
Нюансы и подводные камни
- Readiness, зависящий от неважной зависимости, выводит сервис из балансировки без причины.
- Отсутствие лимитов ресурсов: один сервис «съедает» узел.
- Логи только в файлы внутри контейнера теряются при перезапуске.
- Нет алертов на симптомы — узнаёте об инциденте от пользователей.
Практика
- Пройдите чек-лист по своему сервису и заведите задачи на пробелы.
- Напишите runbook для двух самых вероятных инцидентов.
- Проведите тест перезапуска зависимостей (chaos-lite).
Вопросы с ответами
Что значит «готов к эксплуатации»?
Сервис наблюдаем, корректно стартует и останавливается, устойчив к сбоям зависимостей, безопасен и имеет документированный процесс реагирования.
Что такое runbook?
Пошаговая инструкция диагностики и восстановления для типовых инцидентов.