Назад в блог

SLI vs SLO vs SLA: различия и как их настроить

· 7 мин чтения

SLI - это что вы измеряете, SLO - ваша цель, SLA - договорное обязательство. Разбор трёх чаще всего путаемых понятий из Google SRE для работы сайта.

SLI vs SLO vs SLA: различия и как их настроить

SLI - Service Level Indicator

Конкретная метрика, которой вы количественно оцениваете надёжность сервиса. Примеры:

  • % запросов, закончившихся HTTP 2xx или 3xx за последние 30 дней
  • % запросов с временем отклика менее 500 мс
  • % правильно доставленных email (delivered, не bounced)
  • Соотношение успешных платёжных транзакций ко всем попыткам

У хорошего SLI есть три ключевых свойства:

  • Измеримый - существует конкретный метод сбора данных
  • Релевантный пользователю - отражает реальный опыт клиента, а не внутреннюю техническую метрику
  • Специфичный - «uptime» слишком расплывчат; «% успешных запросов на /api/v1/orders за 5-минутное окно» - это SLI

SLO - Service Level Objective

Внутренняя цель, определяющая, какого значения должен достигать SLI. Выражается в процентах за выбранное временное окно.

Примеры:

  • «99,9 % запросов на /api/orders должны заканчиваться HTTP 2xx за 30 дней»
  • «95 % запросов должны иметь время отклика меньше 200 мс за 7 дней»
  • «99,5 % платёжных транзакций пройдут успешно за календарный месяц»

SLO обычно строже, чем SLA, чтобы у вас был запас. Если SLA указывает 99,9 %, внутренний SLO должен быть, например, 99,95 % - так у вас остаётся резерв на неожиданные инциденты, прежде чем вы нарушите контракт.

SLA - Service Level Agreement

Контрактное обязательство перед клиентами. Определяет, что произойдёт, если вы не выполните SLO - типично:

  • Service credits - возвращаете часть месячной платы (10-50% в зависимости от размера нарушения)
  • Termination rights - клиент может расторгнуть контракт без санкций
  • Обязанность reporting - должны публиковать postmortem и отчёты uptime

SLA имеет юридические последствия. SLO, напротив, - лишь внутренняя цель.

Error budget

Ключевая концепция SRE: downtime, который вы можете позволить себе без нарушения SLO.

Пример: SLO = 99,9 % uptime за 30 дней. Это 0,1 % допустимого downtime, а 0,1 % от 30 дней - это 43 минуты в месяц. Это ваш error budget.

Практические последствия:

  • Если у вас уже израсходовано 35 мин downtime за месяц, остаётся 8 мин до нарушения SLO. Команда должна быть консервативной при следующих деплоях.
  • Если израсходовано лишь 5 мин downtime, у вас есть 38 мин budget на риски - можно делать более агрессивные изменения, A/B тесты, эксперименты.
  • Error budget таким образом решает конфликт между скоростью инноваций (dev team) и стабильностью (ops team). Обе стороны следят за одним и тем же числом.

Практический пример: API e-commerce

SLI: % HTTP запросов на POST /api/checkout, закончившихся 2xx, измеренные в 1-минутных bucket'ах за последние 30 дней.

SLO: ≥ 99,9 % успешных запросов в rolling 30-day окне.

SLA (для Enterprise клиентов):

  • ≥ 99,5 % uptime за календарный месяц
  • При 99,0-99,5 % = 10% credit от месячной платы
  • При 95,0-99,0 % = 25% credit
  • При < 95,0 % = 50% credit + право расторгнуть контракт

Error budget: SLO 99,9 % означает 43 мин downtime в месяц. SLA даёт ещё больший запас перед экономическим наказанием.

Сводка: таблица

Термин Что это Для кого
SLI Конкретная метрика надёжности Engineering команда
SLO Внутренняя цель для SLI Engineering + product
SLA Контрактное обязательство Клиент + legal
Error budget Downtime, который можете позволить до нарушения SLO Engineering risk management

Практические ошибки

  • Слишком амбициозный SLO. 99,99 % требует active-active redundancy в нескольких регионах. Для маленькой компании нереально.
  • Только uptime SLO. Web может быть «up» и всё равно непригоден к использованию. Добавьте latency SLO и error rate SLO.
  • SLA без автоматического измерения. Вручную рассчитанный SLA-отчёт ненадёжен. Инвестируйте в автоматизированный uptime tracking.
  • SLO без последствий. Если нарушение SLO никого не интересует, никто не воспринимает его всерьёз. Свяжите его с deploy freeze, on-call escalation и т.д.

Вывод

Framework SLI/SLO/SLA - не бумажная бюрократия, это язык, на котором engineering команда общается с business stakeholders о надёжности. Без этих терминов дискуссия о стабильности становится субъективной («наш веб нестабилен»). С ними - численной («за последние 30 дней мы достигли 99,87 % SLI, что ниже нашего 99,9 % SLO - вот план действий»).

Измеряйте SLI в реальном времени

ePulz.io предоставляет историческую запись uptime с rollup 30/90/365 дней. Надёжная основа для SLO reporting.

Запустить мониторинг →

Поделиться: Ссылка скопирована

Попробуйте ePulz.io бесплатно - 7 дней без банковской карты.

Создать аккаунт