Проверяет понимание SLA, расчета допустимого простоя и влияния высоких показателей доступности на частоту и процедуру релизов.
SLA (Service Level Agreement) — это соглашение об уровне сервиса, где фиксируется, какой процент времени система должна быть доступна. Значение 99,999% (часто называют «five nines») означает, что допустимый простой за год составляет примерно 5 минут 15 секунд. Это очень жесткое требование, которое напрямую меняет подход к релизам и эксплуатации.
Формула проста: допустимый простой = (1 − SLA) × общее время. Для года это:
Именно поэтому при 99,999% нельзя останавливать сервис на время обновления: даже одна неудачная выкатка может исчерпать годовой бюджет ошибок.
Чтобы уложиться в такой SLA, релизы делают без простоя и с минимальным риском. На практике это означает:
# Упрощенный пример: 5% трафика на новую версию
kubectl apply -f deployment-v2.yaml
kubectl patch service my-app -p '{"spec":{"selector":{"version":"v2"}}}'
# Смотрим метрики 10 минут
# Если ошибок нет — увеличиваем долю трафика
kubectl scale deployment my-app-v2 --replicas=10
# При деградации — откат
kubectl rollout undo deployment/my-appТакой подход позволяет обновлять систему часто, не нарушая SLA. Ошибки локализуются на малой аудитории, а откат занимает секунды, а не часы.
Итог: SLA 99,999% заставляет строить релизный процесс на автоматизации, постепенных выкатках и быстром откате. Применять такие практики стоит в критичных сервисах — платежах, инфраструктуре, медицине, где даже короткий простой приводит к серьезным потерям.