Архитектура системСистемный архитектор

Как организовать SLA (Service Level Agreement) на уровне архитектуры ИТ-системы и какие метрики важно учитывать?

Проходите собеседования с ИИ помощником Hintsage

Ответ.

SLA (Service Level Agreement) — это формальное соглашение между заказчиком и ИТ-командой, определяющее параметры качества сервиса.

На уровне архитектуры соблюдение SLA обеспечивается техническими средствами, процессами, мониторингом и автоматизацией. Для корректной реализации важно иметь четкое представление о критиках системы, её отказоустойчивости и масштабируемости.

Пример кода (мониторинг SLA с помощью Prometheus и Alertmanager):

# Пример конфигурации алерта на задержку ответа API - alert: HighResponseLatency expr: histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service)) > 1 for: 5m labels: severity: critical annotations: summary: Время ответа превышает SLA (99% > 1 сек)

Ключевые особенности:

  • Необходимо выделить бизнес-критичные пути кода и на них наложить показатели SLA
  • Архитектура должна предусматривать систему сбора и хранения метрик, механизм алертинга и резервирования
  • Внедряются средства автоматизированного мониторинга и централизованный журнал (логирование)

Вопросы с подвохом.

Что такое эксплуатационные метрики и зачем они нужны?

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

Пример кода:

# Пример экспорта метрик через Prometheus client from prometheus_client import start_http_server, Summary REQUEST_TIME = Summary('request_processing_seconds', 'Время обработки запроса')

SLA, SLO и SLI: в чем разница?

  • SLA — договоренность о качестве между клиентом и сервисом.
  • SLO — конкретные цели или пороги (SLA может включать несколько SLO).
  • SLI — фактическое измерение параметра (например, % успешных запросов за час).

Обеспечивает ли только высокая доступность выполнение SLA?

Нет, SLA включает не только доступность, но и производительность (latency), стабильность (error rate), корректность работы. Высокая доступность сама по себе не гарантирует выполнения остальных требований SLA.