Надежность — это не отсутствие сбоев. Это способность системы, команды и человека вместе подняться после падения, переосмыслить, перестроить и идти дальше — с новыми правилами игры, где человеческая уязвимость не угроза, а часть уравнения
Пример хронологии инцидента с ключевыми метриками
1. За 72 часа до инцидента:
- Состояние опасности:
- Нагрузка на сервис росла из-за Black Friday, но мониторинг не отслеживал скорость заполнения диска БД.
- Диск заполнялся в 10 раз быстрее обычного (5% в час вместо 0.5%).
2. 11:30 — Диск БД заполнился на 90%:
- Обычно диск заполнялся за 3 месяца, но из-за ошибки в скрипте очистки временных данных это произошло за 3 дня.
- SLI (показатель успешных запросов) начал падать с 99.9% до 98%.
3. 11:33 — Задержка выросла до 2.5 секунд:
- БД начала использовать медленный свопинг из-за нехватки места.
- SLO (цель 99% запросов за 1 сек) нарушен: только 85% запросов укладывались в лимит.
- Error Budget исчерпан на 120% — команда должна была приостановить новые фичи и заняться стабильностью.
4. 11:35 — Сработал алерт на падение SLI:
- MTTD (время обнаружения) = 5 минут (11:35 – 11:30).
- Алерт активировался при SLI < 99%, как и настроено в SLO.
5. 11:40 — Переключение на резервную БД:
- MTTM (время устранения влияния) = 10 минут.
- RTO (цель восстановления) = 15 минут — соблюден (трафик переведен за 10 минут).
- RPO (потеря данных) = 10 минут (последняя синхронизация была в 11:30).
6. 12:00 — Полное восстановление:
- Основная БД очищена, диск увеличен.
- MTTR (полное время восстановления) = 30 минут (12:00 – 11:30).
- SLA не нарушен: RTO (15 минут) и MTTR (1 час) соблюдены.