Skip to content
EN

SLI / SLO / SLA

Коротко:

SLI — measured metric (e.g. "response time p99"). SLO — target для SLI (e.g. "p99 < 200ms"). SLA — contractual commitment к клиентам (e.g. "99.9% uptime, otherwise refund"). Google SRE book популяризовал эту иерархию. Typical: SLO = 99.9% monthly → error budget = 43 минуты в месяц. Если бюджет исчерпан — pause feature work, focus на reliability.

Ниже: подробности, пример, смежные термины, FAQ.

Проверить свой сайт →

Подробности

  • SLI: количественная метрика (uptime %, p99 latency, error rate)
  • SLO: target value для SLI — internal цель
  • SLA: customer-facing contract, обычно с penalty при нарушении
  • Error budget: 100% - SLO (e.g. 99.9% SLO = 0.1% budget = 43 min/month)
  • Multi-dimensional: separate SLOs для availability, latency, error-rate

Пример

SLI: % requests with status 2xx\/3xx
SLO: 99.9% of requests succeed (monthly)
SLA: refund 10% if <99.9% in a month

Смежные термины

Что такое SLI, SLO и SLA?

SLI (Service Level Indicator), SLO (Service Level Objective) и SLA (Service Level Agreement) — это ключевые термины в управлении качеством услуг, особенно в контексте облачных сервисов и IT-инфраструктуры. SLI — это количественный показатель, который измеряет уровень сервиса, SLO — это целевой уровень, который необходимо достичь, а SLA — это формальное соглашение между провайдером услуг и клиентом, описывающее обязательства по уровню сервиса.

Различия между SLI, SLO и SLA

Каждый из этих терминов имеет свои уникальные характеристики и функции.

  • SLI: Это метрика, которая quantifies the level of service provided. Например, процент времени, когда сервис доступен (uptime), или среднее время отклика. Обычно SLI выражается в процентах. Например, SLI доступности может быть 99.9%, что означает, что сервис доступен 99.9% времени.
  • SLO: Это целевой уровень, который вы стремитесь достичь. Например, если ваше SLI доступности составляет 99.9%, то ваше SLO может быть установлено на 99.8% для определенного периода времени. Это позволяет команде IT понять, какой уровень сервиса они должны поддерживать.
  • SLA: Это формальное соглашение, которое фиксирует обязательства между провайдером и клиентом. SLA может включать SLI и SLO, а также описывать последствия за их несоблюдение. Например, если уровень сервиса упадет ниже установленного SLO, провайдер может предложить компенсацию в виде скидки на услуги.

Практический пример SLI, SLO и SLA

Рассмотрим практический пример на основе веб-сервиса, предоставляющего API для обработки платежей.

Предположим, у вас есть API, который должен обрабатывать запросы на оплату. Вы можете установить следующие параметры:

  • SLI: Время отклика API, измеряемое в миллисекундах. Например, SLI может быть установлен на 200 мс.
  • SLO: Целевой уровень времени отклика, который вы хотите достичь. Например, SLO может составлять 95% запросов, обработанных за 200 мс.
  • SLA: Формальное соглашение с клиентами, в котором указано, что если SLO не будет достигнуто в течение трех последовательных месяцев, они получат 10% скидку на услуги.

Для реализации SLI, SLO и SLA вы можете использовать инструменты мониторинга, такие как Prometheus или Grafana. Например, конфигурация Prometheus для отслеживания времени отклика API может выглядеть следующим образом:

http_request_duration_seconds{method="POST", handler="/api/payment"}

Это позволит вам собирать метрики и отслеживать, насколько хорошо ваш сервис соответствует установленным уровням.

TL;DR: Основные различия между SLI, SLO и SLA

SLI (Service Level Indicator), SLO (Service Level Objective) и SLA (Service Level Agreement) представляют собой ключевые элементы управления качеством услуг. SLI — это конкретный метрик, который измеряет производительность услуги, SLO — это целевое значение для этого метрика, а SLA — это договоренность между поставщиком услуг и клиентом, в которой определяются обязательства по достижению SLO. Например, SLI может быть время отклика сервиса, SLO — 95% запросов должны обрабатываться за 200 мс, а SLA — это документ, который гарантирует клиенту возмещение в случае, если SLO не будет достигнуто.

Практический пример использования SLI, SLO и SLA в мониторинге веб-сервисов

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

Определение SLI

SLI для нашего веб-сервиса может быть определен как время отклика API. Мы будем измерять, сколько времени требуется для обработки запросов от пользователей. Важно, чтобы метрика была четко определена и легко измеряема.

Установка SLO

На основе SLI, мы можем установить SLO. Например, мы можем определить, что 95% запросов должны обрабатываться за 300 мс. Это означает, что в большинстве случаев пользователи должны получать ответ от сервиса в течение этого времени. Если этот показатель не будет достигнут, это может указывать на проблемы с производительностью.

Формулирование SLA

Теперь, когда у нас есть SLI и SLO, мы можем перейти к формулированию SLA. В соглашении мы можем указать, что если SLO не будет достигнуто в течение одного месяца, то клиент имеет право на возмещение 10% от стоимости подписки. Это создает обязательства с обеих сторон и обеспечивает доверие между поставщиком услуг и клиентом.

Пример конфигурации мониторинга

Для мониторинга SLI и SLO мы можем использовать инструменты, такие как Prometheus и Grafana. Например, в конфигурации Prometheus мы можем настроить сбор метрик следующим образом:

api_server_requests_total{status="200"} 1000
api_server_requests_duration_seconds{status="200"} 0.25

Здесь мы собираем общее количество запросов и время, затраченное на их обработку. В Grafana мы можем создать дашборд, который будет отображать как фактическое время отклика, так и целевое значение SLO, что позволит нам визуально отслеживать выполнение обязательств.

Заключение

Использование SLI, SLO и SLA в управлении качеством услуг позволяет не только установить четкие цели и ожидания, но и эффективно контролировать их выполнение. Это особенно важно в условиях высокой конкуренции на рынке веб-сервисов, где качество обслуживания может стать решающим фактором для клиентов.

Больше по теме

Часто задаваемые вопросы

Как измерить SLI uptime?

Синтетические probes (Enterno monitors) каждую минуту. 30-дневное окно. Успех = HTTP 2xx/3xx + response time < threshold.

Нужен ли SLA для маленькой команды?

Internal SLO — всегда. SLA — только если customer требует (enterprise, compliance).

Что делать когда error budget исчерпан?

Feature-freeze, postmortem, reliability work пока budget не восстановится. Это основной value error-budget подхода.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.