SLA vs SLO vs SLI: разница и связь¶
Эти три аббревиатуры — самая частая путаница в мире SRE. Даже опытные инженеры иногда используют их как синонимы. Давайте разберёмся раз и навсегда.
SLI — факт¶
Service Level Indicator — это просто число с датчика. То, что мы измеряем.
- Латентность 200 мс.
- Доступность 99,9%.
- Количество ошибок 0,01%.
SLI — это «сколько градусов за бортом». Только факт, без оценки.
SLO — цель¶
Service Level Objective — это порог, который отделяет «хорошо» от «плохо». Это наша цель, наш стандарт качества.
- «99,9% запросов должны выполняться быстрее 200 мс».
- «Мы держим доступность на уровне 99,95%».
SLO — это «не ниже 22 градусов в квартире, иначе включаем отопление». Вы решили, что 22 — это норма, и теперь измеряете, выполняете ли её.
SLA — контракт¶
Service Level Agreement — это юридическое или коммерческое обещание с последствиями.
- «Если доступность упадёт ниже 99,5%, мы вернём деньги».
- «Время ответа поддержки — не более 4 часов. За нарушение — штраф».
SLA — это не про инженерию. Это про контракт с клиентом. Внутри SLA может быть прописано «SLO должен быть не меньше X», и если мы его нарушили — платим.
Таблица для запоминания¶
| Понятие | Суть | Вопрос |
|---|---|---|
| SLI | Что меряем | «Сколько сейчас?» |
| SLO | Какой цели хотим | «Что считаем нормой?» |
| SLA | Что обещали клиенту | «За что платим штраф?» |
Почему их путают?¶
Потому что часто SLO и SLA совпадают по числу. Компания может обещать клиенту 99,9% и внутри ставить себе цель 99,9%. Но это не одно и то же:
- SLO — ваша инженерная цель. Вы можете её менять, ужесточать, ослаблять — это ваш внутренний процесс.
- SLA — юридическое обязательство. Если вы нарушили SLA, вы платите деньги или теряете клиента.
SLO всегда должно быть строже, чем SLA. Если SLA = 99,9%, то ваше SLO должно быть 99,95% или 99,99%. Иначе вы будете нарушать SLA ещё до того, как заметите проблему (см. главу «Что делать при нарушении SLO?»).
Почему это важно
SLO — это ваш запас прочности. Если SLO равно SLA, то любое случайное превышение SLO автоматически означает нарушение SLA. А нарушение SLA это уже не совсем инженерная проблема, а скорее всего, юридическая: штрафы, компенсации, потеря клиентов. SLO должно быть строже SLA ровно настолько, чтобы у вас было время заметить проблему и отреагировать до того, как начнутся санкции.
Аналогия с доставкой пиццы¶
Мы уже касались этой темы в главе «Ключевые метрики надёжности». Давайте разовьём аналогию:
- SLI: текущее время доставки. «Сейчас среднее время = 34 минуты».
- SLO: цель, которую вы поставили себе. «95% заказов должны доезжать за 40 минут».
- SLA: гарантия клиенту. «Если пицца едет дольше часа — мы вернём деньги».
Вы можете измерить SLI (34 минуты). Сравнить с SLO (укладываемся — 92%, не укладываемся — надо чинить процесс). И понять, не нарушите ли вы SLA (если время упадёт до 61 минуты — поползли штрафы).
Как это связано с Error Budget?¶
Error Budget (бюджет ошибок) считается от SLO: 100% - SLO. SLA в этом не участвует:
- SLO = 99,9% → Error Budget = 0,1% (~43 минуты в месяц).
- SLA = 99,5% → это внешняя граница, за которой начинаются штрафы.
Пока вы держитесь в рамках Error Budget, SLA в безопасности. Error Budget — ваш буфер между инженерной целью и коммерческим обязательством.
Что делать с этим знанием?¶
На практике важно помнить три вещи:
- SLI измеряют инженеры — исходя из того, что можно измерить и что реально отражает качество сервиса. Подробнее — в главе «SLI: что измеряем?».
- SLO согласовывают инженеры с продуктом — это компромисс между скоростью фич и стабильностью. Подробнее — в главе «SLO: какой уровень надёжности хотим?».
- SLA — зона ответственности SRE в той же мере, что и юристов. SRE должны активно участвовать в формировании SLA, чтобы не допустить невыполнимых обещаний. Продажник может пообещать 99,99%, но если ваша архитектура тянет только на 99,9% — это проблемы на пустом месте. Ваша задача — объяснить цену каждой девятки и настоять на реалистичных цифрах.
Если вы SRE, ваше основное дело — SLI и SLO. Но закрывать глаза на SLA нельзя: плохой SLA это риск для бизнеса, который в конечном счёте ударит и по команде.