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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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 необходимо ответить на вопрос:
Какие аспекты отказоустойчивости сервиса релевантны для клиентов?

1
1

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

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

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

Service Level Objectives

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

2
2

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

3
3

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

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

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

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

Команда: <>

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

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

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

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

Error budget

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

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

4
4

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

5
5

После то окончания срока 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:

6
6

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

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


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

Источник: https://habr.com/ru/articles/747618/


Интересные статьи

Интересные статьи

В этой статье попробую объяснить, как строится аналитика мобильных приложения максимально простыми словами.
Недавно Rest of World рассказал увлекательную историю стартапа Lyka, который платил своим пользователям за каждое действие на платформе. Те потом могли превращать виртуальные монеты в реальные деньги ...
В более ранних публикациях (здесь и здесь) я рассказывал о некоторых направлениях исследований, связанных с инженерными разработками на основе клеточной биологии, и о других проектах, в том числе, ген...
Некоторое время назад я получил довольно непростую задачу написать техническое задание для нашей службы поддержки на тему OpenID Connect (OIDC). Тут же я понял, что хоть я и знаком с OA...
Данная статья направлена, прежде всего, на начинающего специалиста, который только приступил к исследованию методов и способов обеспечения информационной безопасности исполняемого п...