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.
ссылка на оригинал статьи https://habr.com/ru/articles/747618/
Добавить комментарий