Что такое бюджет ошибок (Error Budget)?

«Что такое бюджет ошибок (Error Budget)?» — вопрос из категории Архитектура и DevOps-практики, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Бюджет ошибок (Error Budget) — это концепция из Site Reliability Engineering (SRE), которая количественно определяет допустимый объем ненадежности сервиса за определенный период (обычно месяц). Это инструмент для баланса между скоростью внесения изменений (разработка новых функций) и стабильностью сервиса.

Как рассчитывается: Бюджет ошибок = 100% - Целевой показатель доступности (SLO).

Пример:

  • Сервис имеет SLO доступности 99.95% за календарный месяц.
  • Общее время в месяце (30 дней) = 30 24 60 = 43 200 минут.
  • Допустимое время простоя (бюджет ошибок) = 43 200 (100% - 99.95%) = 43 200 0.0005 = 21.6 минуты.

Как используется на практике:

  1. Измерение: Мониторинг (например, через Prometheus и Grafana) постоянно отслеживает доступность. Если за месяц простояло 15 минут, то остаток бюджета — 6.6 минут.
  2. Принятие решений:
    • Бюджет не исчерпан: Можно проводить более рискованные обновления, эксперименты или ускорять релизный цикл.
    • Бюджет исчерпан или близок к исчерпанию: Команда переключается на задачи, повышающие стабильность: устранение дефектов, рефакторинг, улучшение мониторинга и отказоустойчивости. Новые релизы приостанавливаются.

В моей работе с высоконагруженными сервисами мы использовали бюджет ошибок как объективный арбитр в спорах между разработкой (которая хочет выпускать фичи) и эксплуатацией (которая хочет стабильности). Это переводит дискуссию из эмоциональной плоскости («слишком рискованно») в плоскость данных («у нас осталось только 5 минут бюджета»).