SLO: подход команды Webdelo к сопровождению проектов
Команда Webdelo при запуске сопровождения любого проекта формализует Service Level Objectives (SLO) — измеримые целевые показатели качества сервиса. Конкретные значения SLO определяются индивидуально после аудита проекта и фиксируются в техническом задании (SOW). Стандартный пакет сопровождения включает многослойный мониторинг, систему алертинга, модель реагирования на инциденты по уровням S1–S4 и регулярную отчётность. Мы не устанавливаем универсальные показатели «99.99% для всех» — вместо этого мы определяем реалистичные цели и берём на себя ответственность за их выполнение.
Определения терминов
Scope
SLI: что мы измеряем
Компоненты пакета
Severity-модель
Error budget
Определения терминов
| Термин | Определение |
|---|---|
| SLI (Service Level Indicator) | Конкретная измеримая метрика качества сервиса: доступность, latency(время обработки одного запроса ), частота ошибок |
| SLO (Service Level Objective) | Целевое значение или диапазон значений для SLI, которое команда обязуется поддерживать |
| SLA (Service Level Agreement) | Договорное соглашение между Webdelo и заказчиком, которое закрепляет SLO и последствия их нарушения |
| SOW (Statement of Work) | Техническое задание, в котором фиксируются конкретные значения SLO по результатам аудита проекта |
| Error budget | Допустимый объём деградации сервиса за расчётный период; исчерпание бюджета — сигнал к смещению приоритетов от разработки фич к стабилизации |
Scope: что входит и что не входит в рамки SLO
В рамках SLO
Веб-приложения и API с определёнными уровнями критичности
Микросервисные архитектуры и распределённые системы
Высоконагруженные аналитические платформы и системы обработки данных
Финансовые и трейдинг-системы, внутренние финтех/банкинг-инструменты
ERP-модули и системы автоматизации маркетинга
Инфраструктурный слой (серверы, контейнеры, базы данных, сетевые сервисы)
Вне рамок SLO
Сторонние сервисы и API(программный интерфейс), которые не контролируются заказчиком или Webdelo (платёжные шлюзы, внешние провайдеры)
Плановые технические работы, согласованные с заказчиком заранее
Деградация, вызванная изменениями со стороны заказчика вне согласованного процесса управления изменениями
Форс-мажорные события, выходящие за пределы разумного технического контроля
От чего зависят параметры SLO
Команда Webdelo выработала подход, при котором целевые показатели определяются тремя факторами.
Сложность архитектуры
Монолит с одной базой данных и распределённая система из двадцати микросервисов требуют принципиально разного подхода к мониторингу. Чем сложнее архитектура, тем больше точек наблюдения и тем шире состав дежурной команды.
Тир сервисов
Не все компоненты системы одинаково критичны. Мы классифицируем сервисы по тирам — уровням влияния на доступность ключевого продукта. Платёжный шлюз и внутренний сервис генерации отчётов требуют разного уровня внимания. Тир определяет приоритет мониторинга, скорость реагирования и состав дежурной команды.
Бюджет на сопровождение
Бюджет определяет, сколько специалистов можно выделить, в каком режиме они работают (рабочие часы, расширенный график или круглосуточное покрытие) и насколько глубоко мы погружаемся в мониторинг бизнес-метрик.
Когда формируется SLO
SLO устанавливается на одном из двух этапов.
При построении нового сервиса
Мониторинг и метрики закладываются в архитектуру с самого начала. К моменту запуска в продакшен всё покрытие уже на месте — это оптимальный сценарий.
При онбординге на существующий проект
Мы проводим аудит инфраструктуры, определяем тиры сервисов, оцениваем пробелы в мониторинге и поэтапно выстраиваем систему наблюдения. Конкретные целевые значения фиксируются в SOW по результатам аудита.
В обоих случаях для ключевых показателей определяется error budget — допустимый объём деградации за период, который служит ориентиром при выборе приоритетов между стабилизацией и разработкой.
SLI: что мы измеряем
| Категория SLI | Что измеряется | Примеры метрик |
|---|---|---|
| Доступность | Работоспособность сервисов в реальном времени | Healthcheck-статус, uptime по сервисам |
| Ошибки | Количество и динамика ошибок по сервисам | Частота HTTP 5xx, rate ошибок по типам и критичности |
| Latency | Время отклика на запросы | p50, p95, p99 latency по ключевым эндпоинтам |
| Ресурсы | Загрузка серверной инфраструктуры | CPU, RAM, disk I/O, трафик |
| Базы данных | Состояние и производительность БД | Latency запросов, slow query log, загрузка CPU/памяти |
| Сетевые endpoint'ы | Доступность внешних и внутренних зависимостей | Доступность сторонних API, внутренних микросервисов |
| Бизнес-метрики | Время выполнения бизнес-операций и их цепочек | Время перехода по статусам, SLA-метрики продуктовых процессов |
Пример из практики
На одном из проектов Webdelo настроил мониторинг времени перехода заказов по статусам. Метрики показали, что часть заказов надолго застревает на определённых этапах. Расследование выявило комплексную проблему: сбои в процессе подтверждения со стороны службы поддержки + задержки внешних сервисов доставки = накопление «зависших» заказов = перегрузка базы данных = деградация всей системы. Каждый компонент по отдельности выглядел работающим — каскадный сбой был виден только через бизнес-метрики.
Стандартные компоненты SLO-пакета
Независимо от масштаба проекта, сопровождение Webdelo включает пять обязательных компонентов.
1. Система мониторинга
Основной стек: Grafana + Prometheus (или аналогичные инструменты, согласованные с заказчиком). Мониторинг охватывает все категории SLI из таблицы выше — доступность, ошибки, latency, ресурсы, БД, сетевые зависимости и бизнес-процессы.
2. Система алертинга
Алертинг строится на базе VictoriaMetrics (или аналога). Каждый алерт привязан к конкретному порогу метрики и уровню критичности. Оповещения направляются в мессенджер команды (Slack, Telegram или иной канал по договорённости). Дежурный получает только сигналы, требующие реакции — без шума низкоприоритетных событий.
3. Адресная книга и инструкции реагирования
Для каждого сервиса формируется карта ответственности: кто вызывается на инцидент, порядок эскалации, первичные действия до подключения профильного инженера. Это устраняет потерю времени на вопрос «кто за это отвечает» в момент аварии.
4. Команда управления инцидентами
Команда включает три уровня:
- Инцидент-менеджмент — специалисты со знанием архитектуры проекта, которые открывают инциденты, создают задачи в системе управления (Jira, ClickUp или другой), назначают ответственных.
- Дежурные DevOps/SysOps — инженеры инфраструктуры для диагностики проблем на уровне серверов, контейнеров, сетей, оркестрации.
- Дежурные разработчики — специалисты по конкретным сервисам, подключаемые при локализации проблемы на уровне кода или бизнес-логики.
5. Канал сбора обращений
Мы выстраиваем канал для сообщений от сотрудников компании-заказчика о замеченных аномалиях. Пользователи нередко замечают проблему раньше, чем срабатывает алерт. Все обращения консолидируются, приоритизируются и попадают в общий поток обработки инцидентов.
Severity-модель инцидентов
| Уровень | Критичность | Описание | Время начала реагирования | Целевое время устранения |
|---|---|---|---|---|
| S1 | Критический | Полная недоступность ключевого сервиса или продукта; прямые финансовые потери | 15 минут | 4 часа |
| S2 | Высокий | Частичная деградация ключевого сервиса; значительное ухудшение пользовательского опыта | 30 минут | 8 часов |
| S3 | Средний | Деградация некритичного сервиса; работоспособность основного продукта сохраняется | 4 часа | 24 часа |
| S4 | Низкий | Минорные проблемы, не влияющие на работоспособность; задачи улучшения мониторинга | Следующий рабочий день | По договорённости |
Конкретные значения времён реагирования зависят от тира сервиса, режима дежурства и бюджета сопровождения. Итоговые параметры фиксируются в SOW.
Error budget policy
Error budget — это допустимый объём деградации сервиса за расчётный период (как правило, месяц или квартал).
Когда error budget в норме
(остаток выше установленного порога): команда может работать в обычном темпе — разрабатывать новые функции, проводить инфраструктурные изменения.
Когда error budget близок к исчерпанию
(остаток ниже порога предупреждения): приоритеты смещаются в сторону стабилизации. Новые фичи приостанавливаются до восстановления бюджета или пересмотра SLO с заказчиком.
Когда error budget исчерпан
Работа над новыми функциями прекращается. Команда фокусируется исключительно на восстановлении надёжности. Проводится совместный разбор с заказчиком для анализа причин и корректировки плана.
Отчётность и service reviews
Что входит в периодические отчёты
| Раздел | Содержание |
|---|---|
| SLO-статус | Фактические значения SLI за период относительно целевых SLO |
| Error budget | Остаток budget'а по каждому сервису, динамика расхода |
| Инциденты | Перечень инцидентов по уровням S1–S4, MTTR, причины |
| Тренды | Изменения в производительности и надёжности по сравнению с предыдущим периодом |
| Рекомендации | Предложения по улучшению мониторинга, архитектуры или процессов |
Работа с инцидентами после устранения
По каждому инциденту открывается задача с описанием причин, перечнем задействованных систем и предпринятых действий. К задаче привязываются тикеты на исправление выявленных проблем. Совокупность задач образует базу для postmortem-разбора и анализа эффективности работы команды в динамике.
Периодичность
Стандартная периодичность отчётов и service review — ежемесячно. По договорённости возможны еженедельные или квартальные форматы.
Что мы не обещаем
Честные capability boundaries — часть нашего подхода к доверию.
Универсальных SLO не существует
Мы не устанавливаем показатели «99.99% для всех» до аудита. Конкретные значения всегда определяются под конкретный проект.
Сторонние зависимости вне нашего контроля
Мы отслеживаем сторонние API и сервисы, но не можем гарантировать их доступность.
SLO не заменяет SLA
SLO — это операционные цели, а не юридически обязывающие обязательства. Правовые последствия нарушений фиксируются в отдельном SLA.
Круглосуточное покрытие — не всегда по умолчанию
24/7 дежурство зависит от бюджета и тира сервиса; стандартный пакет может предусматривать только расширенные рабочие часы.
Нет гарантий нулевых инцидентов
Мы стремимся предотвращать инциденты и минимизировать их последствия, но не обещаем их полного отсутствия.
Бизнес-метрики — только при соответствующем соглашении
Мониторинг бизнес-процессов требует отдельного согласования по составу метрик и доступу к данным.
Итог
Подход команды Webdelo к SLO — это инженерная практика, а не маркетинговые обещания. Мы определяем, что именно измерять, настраиваем инструменты, формируем команду и согласовываем реалистичные целевые показатели. Конкретные значения SLO фиксируются в SOW после аудита. Это позволяет нам брать на себя ответственность за результат, а заказчику — понимать, что именно ему гарантируется.
Если вас интересует сопровождение вашего проекта — свяжитесь с нами для обсуждения.
терминология
Глоссарий
*
API (Application Programming Interface) — программный интерфейс, позволяющий приложениям взаимодействовать друг с другом. Например, подключение платёжной системы к сайту или обращение сервиса к внешнему провайдеру доставки происходит через API.
*
Capability boundaries — границы возможностей; честное описание того, что команда может и не может гарантировать в рамках соглашения об уровне сервиса.
*
CPU (Central Processing Unit) — центральный процессор; основной вычислительный компонент сервера. Высокая загрузка CPU — один из ключевых сигналов деградации производительности.
*
DevOps (Development + Operations) — практика и культура, объединяющая разработку и эксплуатацию. DevOps-инженер отвечает за CI/CD, инфраструктуру, контейнеризацию и автоматизацию развёртывания.
*
Disk I/O (Disk Input/Output) — операции чтения и записи на дисковый накопитель. Высокий disk I/O может быть причиной замедления базы данных или всего сервиса.
*
Endpoint — точка доступа к сервису или API; конкретный URL или сетевой адрес, по которому принимаются запросы. Мониторинг endpoint'ов позволяет отслеживать доступность каждого отдельного интерфейса.
*
ERP (Enterprise Resource Planning) — система планирования ресурсов предприятия; интегрированное ПО, объединяющее финансы, склад, производство, HR и другие бизнес-процессы в единой платформе.
*
Fintech (Financial Technology) — финансовые технологии; сектор, использующий программные решения для предоставления финансовых услуг: платежи, кредитование, торговля, страхование.
*
Grafana — платформа с открытым исходным кодом для визуализации метрик и построения дашбордов мониторинга. Используется в связке с Prometheus или VictoriaMetrics для отображения состояния систем в реальном времени.
*
Healthcheck — периодическая автоматическая проверка работоспособности сервиса. Возвращает статус «живой» или «недоступен» и является базовым инструментом обнаружения отказов.
*
HTTP 5xx — класс HTTP-кодов ответа (500–599), означающих ошибки на стороне сервера: внутренняя ошибка (500), недоступность шлюза (502), перегрузка (503) и другие. Рост частоты 5xx — прямой сигнал деградации сервиса.
*
Latency — задержка отклика; время между отправкой запроса клиентом и получением ответа от сервера. Измеряется в миллисекундах; высокая latency ухудшает пользовательский опыт даже при формально работающем сервисе.
*
MTTR (Mean Time To Resolve) — среднее время устранения инцидента с момента его обнаружения до полного восстановления работоспособности сервиса. Один из ключевых показателей эффективности команды сопровождения.
*
p50 / p95 / p99 (перцентили latency) — статистические показатели распределения времён отклика. p95 означает, что 95% запросов обрабатываются быстрее указанного значения; p99 — 99% запросов. Перцентили точнее среднего значения отражают реальный опыт пользователей.
*
Postmortem — разбор инцидента после его устранения: анализ первопричин, хронология событий, перечень задействованных систем и конкретные меры по предотвращению повторения. Основа для системного улучшения надёжности.
*
Prometheus — система сбора и хранения метрик с поддержкой гибких запросов на языке PromQL и встроенным механизмом алертинга. Стандарт де-факто для мониторинга облачных и микросервисных приложений.
*
RAM (Random Access Memory) — оперативная память; быстрое временное хранилище данных для запущенных процессов и приложений. Исчерпание RAM приводит к деградации производительности или аварийной остановке сервиса.
*
S1 / S2 / S3 / S4 (Severity 1–4) — уровни критичности инцидента от критического (S1: полная недоступность, прямые финансовые потери) до низкого (S4: минорные дефекты, не влияющие на работоспособность). Определяют приоритет и скорость реагирования команды.
*
Scope — область применения; границы, в рамках которых действуют соглашения, обязательства или покрытие мониторинга. Чёткое определение scope позволяет избежать разногласий об ответственности.
*
Service review — регулярная встреча команды сопровождения и заказчика для анализа метрик за период, разбора инцидентов и обсуждения плана улучшений. Стандартная периодичность — ежемесячно.
*
Severity — уровень критичности инцидента; определяет, насколько серьёзно нарушена работоспособность сервиса и насколько быстро требуется реакция команды.
*
Slow query log — журнал медленных запросов к базе данных; автоматически фиксирует запросы, время выполнения которых превышает заданный порог. Ключевой инструмент диагностики проблем с производительностью БД.
*
SysOps (Systems Operations) — специалист по эксплуатации систем; отвечает за серверную инфраструктуру, сети, хранилища и оркестрацию контейнеров. Подключается к инциденту при локализации проблемы на инфраструктурном уровне.
*
Trading-система — программная платформа для автоматизированного совершения сделок на финансовых рынках. Относится к классу высококритичных систем с жёсткими требованиями к latency и доступности.
*
Uptime — время непрерывной работы сервиса или системы без сбоев. Обычно выражается в процентах за период: 99.9% uptime означает не более ~8.7 часов простоя в год.
*
VictoriaMetrics — высокопроизводительная база данных временных рядов; используется для долгосрочного хранения метрик и алертинга. Совместима с форматом Prometheus и обеспечивает меньший расход ресурсов при высоких нагрузках.