Как стать автором
Обновить

Простыми словами о базовых принципах SRE

Время на прочтение4 мин
Количество просмотров4.8K

Benjamin Treynor Sloss (один из авторов SRE) «SRE это то что происходит, когда вы просите разработчиков вытроить команду эксплуатации».

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

  • Для эксплуатации используется принципы из мира разработки

  • Использование Service Level Objectives (SLO)

  • Автоматизация всего что можно автоматизировать

  • Ускорение внесения изменений за счет снижения цены ошибок (mean time to repair (MTTR))

  • Тесная работа с разработчиками

  • Команды SRE сами определяют свои задачи и распределяют нагрузку

Service Level Indicators

Service level indicators (SLIs) это фундаментальная концепция, которая лежит в основе других концепций SLI.

Для того, чтобы определять свои собственные SLI необходимо ответить на вопрос:
Какие аспекты отказоустойчивости сервиса релевантны для клиентов?

SLI – это то что необходимо измерять, например доступность и задержки. SLO это пороговое значение, которое сервис не должен превышать. SLO находится между минимальным сервисным уровнем 0 и максимальным сервисным уровнем 100.

SLO и SLI определяются с точки зрения потребителей сервиса. SLO в опосредованном виде показывает удовлетворенность потребителя услугой/сервисом.

Для одного SLI может быть определено несколько SLO.

Service Level Objectives

Ниже приведен пример SLO Доступность 98%. Как показано в диаграмме ниже SLI – это индикатор доступности, а SLO – это пороговое значение (98%) определенное для данного сервиса. Сервис согласно SLO должен быть доступен для потребителей 98% времени.

В следующем примере SLI – это задержки. SLO для данного сервиса это 98% запросов к API должны возвращать ответ в пределах 300 миллисекунд.

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

Пример документа с определением SLO:

Определение SLO: Название сервиса
Витрина SLO: Ссылка

Автор документа: <>

Команда: <>

Участники: Кто то еще вносил лепту в этот документ?

Дата рассмотрения: <Дата>

Дата последнего обновления: <Дата>

Дата согласования: <Дата>

Error budget

Бюджеты на ошибки автоматически рассчитываются на основе SLO. Бюджет на ошибки – это максимальная надежность сервиса (100%) минус пороговое значение SLO.

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

Еще один пример бюджета на ошибки для SLO Задержки 95%:

После то окончания срока SLO (это может быть несколько рабочих недель и месяцев) бюджет на ошибки обнуляется.

Error Budget Policy

Error Budget Policy отвечает на вопрос какие технические и организационные действия должны быть предприняты в случае нарушения SLO?

Пример документа с определением Error Budget Policy:

Error budget

Пороговое значение

Действия

SLO

X

Действие

SLO

X

Действие

SLO

X

Действие

SLO

X

Действие

SLO

X

Действие

SLO

X

Действие

SLO

X

Действие

Postmortem

В русском языке «postmortem» буквально переводится как «Посмертная записка». Однако, этот термин имеет определенную коннотацию, поэтому вместо него можно использовать «Служебная записка» и «Постмортем».

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

Постмортем пишется в свободной форме. Единственным требованием к этому документу является своевременность – 24-72 часа рекомендованное время для написания отчета с разбором корневой причины инцидента.

DevOps и DevSecOps

Методы SRE и DevOps тесно связаны друг с другом. В некоторых источника можно встретить утверждение, что SRE является имплементации философии DevOps.

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

Принципы DevOps:

  • Уменьшение барьеров между командами и отделами

  • Имплементация постепенных изменений

  • Разработка и внедрение новых инструментов/автоматизации

  • Измерение и внедрение метрик там где это возможно

Автоматизация в DevOps прежде всего связана с непрерывной доставкой (Continuous Delivery): сборка кода, развертывание инфраструктуры, тестирование и мониторинг.

Пример современного конвейера CI/CD использующего принципы DevOps и DevSecOps:

В чем разница между DevOps и SRE?

SRE и DevOps должны дополнять друг друга. Команды, которые внедряют техники SRE, обычно улучшают свои операционные показатели. В масштабах организации, команды, которые приоретизируют доставку кода и операционную надежность, обычно находятся в лидерах по эффективности и производительности.


SLI, SLO, бюджеты на ошибки и постмортемы – это основополагающие концепции в SRE. Без этих индикаторов нельзя говорить о том, что организация внедрила SRE.

Теги:
Хабы:
Всего голосов 6: ↑4 и ↓2+4
Комментарии0

Публикации

Истории

Работа

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань