SLO, SLA и error budget на одном кейсе: как перестать спорить “опасно/неопасно”
Если в компании “есть SLA”, это почти никогда не значит, что у команды есть инструмент управления надёжностью. SLA это внешний договор. Он редко помогает решать: релизить ли сегодня, сколько риска мы уже приняли, и когда пора замедлиться.
Поэтому разберём всё на одном кейсе: orders-api (создание заказа в доставке еды).
1) SLI: что измеряем
Начинаем с пользовательского действия: “создать заказ”.
SLI: доля успешных запросов на создание заказа (2xx + без таймаута, часто ещё в пределах по latency).
2) SLO: внутренняя цель
SLO: 99,9% успешных заказов в месяц. Это планка команды. Она должна быть реалистичной и пересматриваться по мере зрелости.
3) SLA: внешнее обещание
SLA обычно мягче, например 99,8% в контракте с партнёром. Это про деньги и репутацию, не про ежедневные решения команды.
4) Error budget: перевод в риск
SLO 99,9% = допускаем 0,1% неуспеха.
При 10 млн запросов в месяц budget = 10 000 “допустимых” фейлов.
Можно объяснять и во времени: 99,9% ≈ ~43 минуты даунтайма/мес.
5) Как budget меняет разговор
Когда budget сгорает, разговор перестаёт быть эмоциональным.
Вы не “чувствуете, что опасно”, вы видите: “осталось 30% бюджета, один большой инцидент и мы вылетим из SLO”.