Инженерия ПО

SRE: Site Reliability Engineering

2003 год: Google нанимает первого SRE - Ben Treynor Sloss. Задача: обеспечить reliability поисковика который обрабатывает миллиарды запросов в день. Решение: не больше людей дежурящих ночью, а engineering подход к reliability. Error budgets убрали политические конфликты между разработкой и operations. Сегодня SRE практики используют Amazon, Netflix, Microsoft, Spotify.

  • **Google SRE Book**: открытая книга о SRE практиках (sre.google/sre-book). Стала стандартом индустрии для reliability engineering - переведена на десятки языков
  • **Atlassian Statuspage**: компания раскрывает SLO для своих продуктов (Jira, Confluence) публично - клиенты видят реальные метрики, не только 'все системы работают'
  • **PagerDuty**: платформа для incident management используется тысячами SRE команд. Данные PagerDuty показывают среднее MTTR (Mean Time To Recovery) по индустрии

SLO, SLI, SLA

SRE (Site Reliability Engineering) - дисциплина созданная Google в 2003 году Беном Трейнором. Главная идея: reliability is a product feature, а не просто операционная задача. Три ключевых концепции: SLI (Service Level Indicator) - измеримый показатель (процент успешных запросов), SLO (Service Level Objective) - целевое значение SLI (99.9% успешных запросов за 30 дней), SLA (Service Level Agreement) - юридически обязывающий контракт с последствиями за нарушение.

Хорошие SLI: измеримы в реальном времени, отражают user experience (не server CPU, а request success rate), контролируемы командой. Типичные SLI: availability (% времени сервис доступен), latency (% запросов ответивших за X мс), error rate (% запросов с ошибками), throughput (запросов в секунду). Google рекомендует 3-5 SLI для сервиса - больше создаёт operational overhead без дополнительной ценности.

SLO для сервиса: p99 latency < 200ms. В этом месяце 0.2% запросов ответили за 250ms. SLO нарушен или нет?

Error Budget

Error Budget - количество допустимых отказов в рамках SLO за период. SLO 99.9% availability за месяц -> error budget = 0.1% = 43.8 минут downtime в месяц. Error budget решает конфликт между reliability и velocity: пока бюджет есть - команда может рисковать (деплоить чаще, экспериментировать). Когда бюджет исчерпан - все усилия на reliability, никаких рискованных изменений.

Error budget policy - формальное соглашение: если error budget исчерпан, feature development останавливается до восстановления reliability. Это убирает political tension между разработчиками (хотят деплоить) и operations (боятся изменений). Обе стороны смотрят на один объективный показатель. Google SRE: если SRE команда исчерпала error budget из-за проблем reliability - они имеют право заморозить деплои.

Команда исчерпала error budget за 20 из 30 дней месяца. По error budget policy правильные действия?

Toil и Automation

Toil (рутинная работа) в SRE - ручная, повторяющаяся, автоматизируемая операционная работа без долгосрочной ценности. Примеры: ручные деплои по чеклисту, перезапуск сервиса при memory leak вместо исправления, ручная очистка логов, ответы на однотипные алерты. Google SRE правило: не более 50% времени на toil. Если больше - нужна автоматизация. Остальные 50% - engineering work (автоматизация, улучшение reliability).

Измерение toil: количество ручных операций в неделю, время на повторяющиеся задачи vs engineering. Тест: 'если бы нас было в 10 раз больше пользователей - нам нужно было бы в 10 раз больше людей для этой задачи?' Если да - это toil, нужна автоматизация. Runbooks - первый шаг: документирование ручных процессов. Второй - автоматизация runbook'а. Третий - устранение причины по которой runbook вообще нужен.

SRE тратит 60% времени на toil: ручные деплои, ответы на алерты, перезапуски. Что правильно делать по SRE принципам?

Incident Management

Incident management - структурированный процесс реагирования на production проблемы. Google SRE incident severity: SEV1 (полный outage, все hands on deck), SEV2 (значительная деградация, immediate response), SEV3 (частичная деградация, response в рабочее время), SEV4 (minor issue, плановое исправление). Incident Commander - единая точка координации: принимает решения, делегирует, избегает параллельных действий без координации.

Blameless Postmortem - анализ инцидента после устранения. Ключевой принцип: не виноватые, а системные проблемы. John Allspaw (Etsy): 'engineers who find themselves in the middle of an incident response are valuable engineers'. Postmortem содержит: timeline событий, impact, root cause(s), что сработало хорошо, что плохо, action items с owner и датой. Action items из postmortem - основной способ системных улучшений.

SRE - это просто переименованные системные администраторы с новым названием

SRE вводит engineering подход к operations: software solutions для reliability проблем, error budgets для objective decision making, elimination of toil through automation. Это fundamentally different от традиционного operations

Традиционный ops: ручное управление, реакция на проблемы. SRE: автоматизация, proactive reliability engineering, измеримые targets. Google создала SRE как способ применить software engineering методы к operations задачам

Postmortem показал что разработчик Иван развернул код с багом вызвавшим инцидент. Blameless принцип означает...

Связанные темы

SRE связывает процессы разработки с production reliability:

  • Observability: логи, метрики, трейсы — SLI измеряются через observability инструменты. Без хорошего monitoring невозможно определить выполняется ли SLO
  • Chaos Engineering — Chaos Engineering - proactive проверка что reliability targets выдерживаются под нагрузкой и при отказах

Вопросы для размышления

  • SLO 99.99% звучит лучше чем 99.9% - почему не всегда нужно стремиться к максимальной availability?
  • Как error budget policy меняет взаимодействие между development и operations командами?
  • Blameless postmortem культура - что мешает её внедрению в командах и как преодолеть сопротивление?

Связанные уроки

  • devops-10
SRE: Site Reliability Engineering

0

1

Войти