Баннер мобильный (3) Пройти тест

Что такое SRE (Site Reliability Engineering) и для чего нужен этот подход

А еще — какие задачи выполняет SRE-инженер и чем отличается от DevOps

Разбор

9 января 2026

Поделиться

Скопировано
Что такое SRE (Site Reliability Engineering) и для чего нужен этот подход

Содержание

    SRE (Site Reliability Engineering) — это инженерный подход в области поддержки ИТ-инфраструктуры, который придумал вице-президент Google по разработке Бен Трейнор Слосс в 2003 году. Подход состоит в том, чтобы сделать онлайн-сервисы надежными и предсказуемыми в продакшене.

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

    Термин SRE и его принцип Бен Трейнор обсудил в интервью с другим инженером по обеспечению надежности Google Найлом Мерфи.

    Зачем нужен SRE

    Главные цели SRE — заранее выявлять риски, сокращать число инцидентов и снижать их влияние на пользователей.

    На практике это означает понять, что для пользователя считается нормальной работой сервиса, выразить это метриками (SLI) и целями (SLO), спланировать реакцию на отклонения и снизить риск изменений через правила и автоматизацию.

    Чем занимается SRE-инженер

    • Мониторинг и алертинг

    SRE определяет набор SLI (индикаторов надежности) и настраивает систему так, чтобы видеть, как влияют проблемы на пользователя.

    • Реагирование на инциденты

    SRE участвует в дежурных ситуациях, восстанавливает работоспособность сервиса, координирует действия и коммуникации во время инцидента.

    • Автоматизация типовых операций

    Цель автоматизации в SRE — уменьшить объем повторяющихся ручных действий и ускорить восстановление и обслуживание системы в случае инцидентов.

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

    • Планирование объема ресурсов и надежности

    SRE-инженер оценивает нагрузку на систему и рассчитывает объем ресурсов, чтобы рост трафика не привел к падению системы. Он выявляет узкие места в системе и повышает ее устойчивость.

    Где работает SRE-инженер

    Специалисты по SRE обычно работают в специальных командах. В статье Google Cloud описывают несколько способов организовать SRE. Google выделяют шесть направлений: kitchen sink (everything SRE), infrastructure, tools, product (application), embedded, consulting. Но в реальности организации часто комбинируют подходы.

    1. Kitchen sink (Everything SRE). Идиома kitchen sink означает «все возможное и без исключений». В контексте SRE это модель, где одна команда отвечает за весь спектр задач: от инфраструктуры и мониторинга до разработки инструментов и поддержки приложений. В компаниях с такой моделью пока нет отдельных SRE-специалистов, но они потребуются при увеличении трафика.
    2. Infrastructure SRE. Такие команды обеспечивают надежность общей технической базы (сеть, балансировщики, базы и хранилища, системы деплоя, мониторинг и доступы), на которой работают продуктовые сервисы. SRE отвечают за надежность платформы и единые стандарты для продуктовых команд.
    3. Tools SRE. Эти SRE делают внутренние инструменты для поддержки надежности, например, шаблоны мониторинга и алертов, панели с показателями, инструменты для планирования нагрузки, ресурсов и действий при сбоях.
    4. Product (application) SRE. Это SRE, которые сосредоточены на надежности конкретного продукта или приложения. При этом надежность вспомогательных сервисов может оставаться на других специалистах (например, разработчиках со знанием DevOps).
    5. Embedded SRE. SRE может работать с разработчиками конкретного сервиса или группы сервисов. На одну такую часто команду приходится один специалист по SRE. Он помогает команде формулировать SLO, настраивать наблюдаемость, улучшать процессы релизов и готовность к инцидентам. SRE-инженер может вносить изменения в код и конфигурации сервисов.
    6. Consulting SRE. Отличается от embedded только тем, что в такой команде SRE-специалист не вносит изменения в код, а консультирует команду разработчиков или разрабатывают отдельные инструменты для интеграции их разработчиками.

    Разница между SRE и DevOps

    И SRE, и DevOps стремятся к тому, чтобы изменения доходили до продакшена быстрее и безопаснее.

    DevOps в компании чаще всего:

    • поддерживает CI/CD и создает пайплайны,
    • делает так, чтобы окружения создавались и обновлялись автоматически,
    • настраивает деплой-стратегии (канареечное развертывание, сине-зеленое развертывание, быстрый откат и т. п.),
    • стандартизирует сборку, секреты, конфиги, доступы, шаблоны сервисов,
    • отвечает за платформу запуска (облако, контейнеры, кластеры).

    Результат работы DevOps: релизы становятся регулярными, предсказуемыми и повторяемыми.

    SRE в компании:

    • формулирует и поддерживает метрики и стандарты качества (что измерять и какой уровень качества считать нормой),
    • строит наблюдаемость (метрики, логи, трассировки, дашборды),
    • задает правила алертинга,
    •  участвует в инцидентах с диагностикой, восстановлением, координацией и постмортемами,
    • снижает повторяемость проблем с помощью конкретных инженерных изменений и автоматизации,
    • планирует объем ресурсов и проверяет готовность к росту нагрузки.

    Результат SRE: меньше инцидентов, а если появляются, то проще восстановить систему после них, ниже влияние на пользовательский опыт.

    Роли в одной компании

    В ИТ-компаниях DevOps фокусируется на механизмах доставки кода, а SRE — на гарантиях безопасности и надежности. Например, нужно провести обновление мобильного банка. 

    DevOps настроил канареечное развертывание (тест на малой доле трафика, примерно 5%, чтобы не рисковать всеми пользователями) с автоматическим откатом при проблемах.

    SRE установил правила: если p95 latency (95-й перцентиль задержки, время, за которое отвечают 95% запросов) или доля 5xx-ошибок (серверные ошибки, как 500 Internal Server Error) выходит за целевые показатели надежности, то развертывание автоматически останавливается и откатывается.

    При инциденте:

    SRE берет на себя управление инцидентом как структурированным процессом: проводит триаж (быструю оценку проблемы и ее приоритета), определяет severity (уровень серьезности инцидентов), организует коммуникации (уведомления командам и пользователям), обеспечивает восстановление сервиса, а потом составляет постмортем с планом действий.

    DevOps подключается, если проблема в платформе (инфраструктуре, например, облаке) или механизмах (CI/CD-пайплайнах или автоматизации. 

    В российских компаниях, как VK или Ozon, SRE использует инструменты вроде Prometheus для мониторинга и Kubernetes для оркестрации, чтобы инциденты решались максимально быстро.

    Ключевые термины SRE

    Ранее мы уже упоминали показатели SLO и метрики SLI, теперь разберем эти и другие термины SRE подробнее.

    В основе подхода SRE от Google лежат SLI, SLO, SLA, error budget, уменьшение количества ручных операций (toil), наблюдаемость (observability), severity (уровень серьезности) и priority (приоритет) в управлении инцидентами.

    Эти термины также описаны в официальной книге Google Site Reliability Engineering (на английском).

    SLI, SLO, SLA (объект, цель, результат)

    Он основан на реальных данных о взаимодействии с сервисом и помогает понять, соответствует ли качество ожиданиям. Показатели SLI выбирают таким образом, чтобы они были простыми, релевантными и основанными на пользовательском опыте (например, не на CPU-загрузке сервера, а на скорости загрузки страницы для юзера).

    SLI фокусируется на показателях задержки (latency), частоты ошибок (error rate), пропускной способности (throughput) и доступности (availability).

    Задержка (latency) — время, которое требуется на обработку запроса и получение ответа. Это не просто среднее время, а перцентиль (например, p95 — время, за которое выполняются 95% запросов.

    Пример: для веб-сайта latency — это секунды от клика до загрузки страницы. Если p95 больше 500 мс, пользователи могут раздражаться и уходить. В SRE его измеряют на стороне сервера или клиента, чтобы избежать искажений от сети.

    Частота ошибок (error rate) процент неудачных запросов по отношению к общим. Это включает HTTP-ошибки (например, 4xx — клиентские, как 404 Not Found, 5xx — серверные, как 500 Internal Server Error) или кастомные сбои (например, неудачный логин). 

    Пример: если из 1000 запросов 10 провалились, error rate = 1%.

    Пропускная способность (throughput) — объем успешно обработанных запросов за единицу времени (например, запросы в секунду, RPS). Это показывает, сколько нагрузки сервис выдерживает без неполадок. 

    Пример: для стримингового сервиса throughput — количество одновременных просмотров видео. Если он падает ниже нормы, значит, система перегружена, и пользователи видят буферизацию.

    Доступность (availability) — процент времени, когда сервис работает корректно и отвечает на запросы. Вычисляется как (время работы / общее время) × 100%

    Пример: доступность в «пять девяток» (99,999%) — это всего 5 минут простоя в год. В SRE availability часто измеряют через успешные запросы, а не просто пинг (ping) сервера, чтобы учесть частичные сбои (например, сервис отвечает, но медленно).

    Например, «99.9% успешных запросов за 28 дней» или «p95 latency меньше 300 мс».

    В Google SRE SLO делят по типам нагрузки, чтобы учитывать разные сценарии:

    Для throughput-клиентов (где важна общая производительность, как в поисковых системах с миллионами запросов) целью может быть «95% запросов менее, чем за 1 секунду». Это значит, что сервис должен выдерживать высокий объем трафика без значительных задержек для большинства пользователей.

    Для latency-клиентов (где критична скорость, как в реал-тайм приложениях вроде онлайн-игр или торговых платформ) вероятная цель — «p99 latency < 10 мс» (99-й перцентиль задержки меньше 10 миллисекунд). Здесь сделан фокус на минимизации даже редких замедлений (фризов), так как они значительно ухудшают пользовательский опыт.

    В отличие от SLO, SLA — юридически обязывающий документ. Для SRE-инженеров он важен как ориентир для проектирования систем. Они используют его, чтобы установить SLO и SLI, которые должны гарантировать техническую надежность согласно контрактным обязательствам.

    В Google SRE отмечается, что SRE-инженеры хотя и помогают определять SLI и SLO, но не занимаются последствиями (это уже бизнес-аспект).

    Error budget и откаты

    Error budget — это допустимый объем сбоев, вычисляемый как 100% минус SLO (например, для 99,9% SLO бюджет = 0,1%). 

    Он позволяет контролировать риски. Если error budget исчерпан, релизы сервиса замораживают и фокусируются на фиксах.

    В Google этот показатель закрепляют в Error Budget Policy, где прописано, когда изменения можно продолжить, а когда нужно их заморозить до возврата к SLO.

    Что называют рутиной (toil)

    Toil (рутина) — это такая работа, которая характеризуется как ручная, повторяемая, поддается автоматизации (можно заменить скриптами, например) и не является стратегической в долгосрочной перспективе, а решает лишь текущие проблемы. 

    В книге Google Site Reliability Engineering toil описывается как операции, которые растут линейно с масштабом сервиса (O(n)), но не улучшают систему. Это, например, ручной деплой или мониторинг без автоматизации. 

    SRE принципы призваны сократить toil до 50% времени инженера, чтобы избежать выгорания и стагнации сотрудника. 

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

    Observability (логи, метрики, трейсы)

    Observability — это способность понимать состояние системы по данным, которые она сама отдает. В практическом смысле это три типа сигналов: метрики, логи и трейсы (данные о прохождении запроса через все компоненты системы), которые помогают быстро ответить на вопросы «что сломалось», «где» и «почему».

    Severity и priority

    • Severity (уровень серьезности) показывает масштаб и влияние проблемы. Из этого показателя можно узнать, сколько пользователей затронуто и насколько сильно деградировал сервис (насколько ухудшилось его качество).

    На практике Google сначала оценивают влияние на пользователей и классифицируют инцидент по severity (например, по шкале 1–3, где 1 — критический, а 2–3 менее критичные).

    Для sev 1 заранее фиксируют понятные критерии эскалации (передачи инцидентов и проблем более высокому уровню экспертизы) и подключают роли вроде incident manager (управление процессом), scribe (документирование) и communications lead (координация коммуникаций).

    • Priority (приоритет) отвечает за то, как быстро нужно реагировать и в каком порядке разбирать несколько задач или инцидентов. В Google подчеркивают, что приоритет задает темп работ и может меняться по мере локализации проблемы (например, сначала максимальный, потом ниже после применения критического фикса), и строится на понимании severity.

    Какие навыки нужны SRE-специалисту

    Помимо Site Reliability Engineering, где описаны основные термины SRE и участие SRE-команды в жизненном цикле сервиса, Google предлагает еще две книги:

    Практическое продолжение с примерами и кейсами. Там много прикладных тем, таких как внедрение SLO, мониторинг, алертинг на основе SLO, on-call, incident response, культура постмортемов, управление нагрузкой.

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

    Что изучить для уровня джуниор

    Для уровня джуниор SRE-инженера нужно знать:

    • Базовый уровень Linux и других ОС. Процессы, логи, сеть, диски, права доступа, простая диагностика.
    • Сети и HTTP. DNS, TLS в общих чертах, коды ответов, таймауты, ретраи (повторные попытки отправки запроса) и почему они иногда вредны.
    • Базы данных и очереди. Подключения, пулы, блокировки, узкие места и их признаки.
    • Наблюдаемость. Разница между метриками и логами, роль трейсов, создание простого дашборда и 1-2 алертов.
    • Инциденты. Работа по инструкциям (runbook), эскалация, фиксация таймлайна, оценка severity по правилам команды.
    • Автоматизация. Простые скрипты для рутинных задач, правка конфигов, базовая проверка работоспособности сервиса.

    Востребованность вакансии и зарплата

    Согласно информации на HH Карьера на декабрь 2025 года, медианная зарплата джуниор SRE-инженера по России — 100 769 ₽.

    Медианная зарплата SRE

    Мидлу предлагают в среднем 206 835 ₽.

    Зарплата middle SRE

    Сеньор может претендовать на 282 643 ₽.

    Зарплата senior SRE

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии