Конспект The Site Reliability Workbook
Ключевые концепции DevOps:
- уменьшение преград и разрозненности
- проблемы – это нормально
- изменения должны внедряться поэтапно
- инструменты и корпоративная культура взаимосвязаны
- измерения важны (что нельзя измерить, нельзя улучшить)
SRE – Site Reliability Engineering
Ключевые концепции SRE:
- Все операции по сопровождению выполняются программным обеспечением
- Управленческие решения принимаются на базе SLO (Service level objectives)
- Минимизация человеческого труда
- Автоматизация прежде всего
- Уменьшение стоимости ошибки
- Уменьшение границ между разработкой и сопровождением
- Унификация используемых инструментов
Вывод: SRE и DevOps очень похожи друг на друга.
Организация работы построена на идеях персональной ответственности (делай сам, а не перекладывай на других), взаимозаменяемости (каждый можем кого угодно), взаимоуважения.
SLO – документ определяющий требования к продукту (список целей и критерии их достижения)
Организация работы начинается с определения SLO
SLO включает в себя требования надежности
Для оценки надежности и качества используют показатели уровня обслуживания SLI (Service Level Indicator) – числовые метрики, которые можно измерить и агрегировать по времени.
Сбор данных SLI должен осуществляться автоматизировано средствами системы мониторинга.
Для мониторинга предлагается использовать стандартные принципы и системы. Идея состоит в сборе числовых метрик и событий. Использовании распределенных, слабозацепленных систем мониторинга. Для оповещения использовать стандартные схемы с всплывающими окнами, смс и почтой. Для уменьшения потока оповещений использовать механизмы агрегации.
Человеческий труд – основное препятствие для повышение эффективности работы.
Уменьшение труда делается за счет автоматизации и отказа от лишнего труда. Основные «пожиратели» времени сотрудников – бизнес процессы, консультации и контроль правильности выполнения работ, миграции на новые технологии, проблемы с инструментами (вынужденные простои). При этом SRE не ставит перед собой задачу полностью устранить труд, но сделать это там где возможно.
Основное решение – автоматизация. Но перед выполнением автоматизации должна быть выполнена оценка целесообразности изменений, возможно от можно просто отказаться от лишних действий.
Важный момент автоматизации – системы восстановления работоспособности.
Советы по оптимизации систем восстановления работоспособности:
- графический интерфейс не должен быть сложным или перегруженным
- не полагаться на человеческую экспертизу/опыт (имеется в виду анализ потока событий одним или несколькими людьми, анализ должен быть автоматизирован)
- проектируйте переиспользуемые компоненты
- не переоценивайте проблему и не усложняйте решение
- не стремитесь делать идеальную автоматику
- автоматизация – не разовое мероприятие
- подходите к проблему целостно
Одна из важных целей SRE – оставлять систему максимально простой. Оценка сложности программной системы имеет множество нюансов. Недостаточно оценить цикломатическую сложность исходного кода софта, входящего в систему. В число параметров для оценки входят: время обучения нового члена команды для работы с системой, время объяснения устройства системы, разнообразие административных возможностей, разнообразие конфигурационных моментов, возраст системы.
Упрощение системы – непрерывный процесс поиска решений, которые позволяют уменьшать время на освоение системы новыми членами команды, переиспользовать системы повторно и т.д.
SRE инженеры должны быть задействованы и в оперативной работе, и в проектировании.
Один из основных механизмов устранения проблема – инцидент менеджмент. Средство автоматизации – ICS (Incident Command System).
Ролевая модель:
- Incident Commander – управляет устранением инцидента (обычно человек обнаруживший инцидент)
- Communication Lead – обеспечивает внешние коммуникации
- Ops Lead - устраняет инцидент
Инцидент – событие требующее немедленной реакции и устраняющееся в короткие сроки. Важно как можно быстрее восстановить работоспособность системы.
Post #762
1.53K