На курсе вы будете:
 
 Строить  
 Сформулируете показатели SLO, SLI, SLA для сайта, состоящего из нескольких  
 микросервисов, разработаете архитектуру и инфраструктуру, которая их обеспечит,  
 соберете, протестируете и задеплоите сайт, настроите мониторинг и алертинг.  
  
 Ломать  
 Рассмотрите внутренние и внешние факторы ухудшения SLO: ошибки разработчиков, отказы инфраструктуры, наплыв посетителей, DoS-атаки. Разберетесь в устойчивости, error budget, практике тестирования, управлении прерываниями и операционной  
 нагрузкой.  
  
 Чинить  
 Организуете работу группы по ликвидации аварии в минимальные сроки: подключение коллег, оповещение интересантов (stakeholders), выстраивание приоритетов. Имитация реальных условий: восстановление работоспособности сервиса в условиях предельно ограниченного времени.  
  
 Изучать  
 Разберете подход к сайту с точки зрения SRE. Проанализируете инциденты (причины возникновения, ход устранения). Примете решение по их дальнейшему предотвращению: улучшить мониторинг, изменить архитектуру, подход к разработке и эксплуатации, регламенты. Автоматизируете процессы.  
  
 Требования к участникам:  
 - Свободное владение Linux;  
 - Любой язык программирования: уровень Junior;  
 - GitLab: навыки автоматизации;  
 - Prometheus: навыки мониторинга;  
 - Kubernetes: навыки работы в кластере.  
  
 Тема №1: Основные принципы и методы SRE  
  
   - Что нужно чтобы стать SRE?
- DevOps vs SRE
- Почему разработчики ценят SRE и очень грустят, когда в проекте их нет
- SLI, SLO и SLA
- Error budget и его роль в SRE
Тема №2: Дизайн распределенных систем   - Архитектура и функционал приложения
- Non-Abstract Large System Design
- Operability / Design for failure
- gRPC или REST
- Версионирование и обратная совместимость
Тема №3: Как принимают проект SRE   - Лучшие практики от SRE
- Чек-лист приема проекта
- Логирование, метрики, трейсинг
- Забираем CI/CD в свои руки
Тема №4: Проектирование и запуск распределенной системы   - Обратное проектирование — как работает система?
- Согласовываем SLI и SLO
- Практика capacity planning
- Запуск трафика на приложение, наши пользователи начинают им «пользоваться»
- Запускаем Prometheus, Grafana, Elastic
Тема №5: Monitoring, Observability and Alerting   - Monitoring vs. Observability
- Настраиваем мониторинг и алертинг с Prometheus
- Практический мониторинг SLI и SLO
- Symptoms vs. Causes
- Black-Box vs. White-Box Monitoring
- Распределенный мониторинг доступности приложений и серверов
- 4 золотых сигнала (обнаружение аномалий)
Тема №6: Практика тестирования надежности систем   - Работа под давлением
- Failure-injection
- Chaos Monkey
Тема №7: Практика incident response   - Алгоритм управления стрессом
- Взаимодействие между участниками инцидента
- Постмортем
- Knowledge sharing
- Формирование культуры
- Контроль неисправностей
- Проведение blameless разбора полетов
Тема №8: Практика управления нагрузкой   - Балансировка нагрузки
- Отказоустойчивость приложений: retry, timeout, failure injection, circuit breaker
- DDoS (создаем нагрузку) + Cascading Failures
Тема №9: Реагирование на инциденты   - Разбор полетов
- Практика On-Call
- Различные типы аварий (тестирование, изменение конфигурации, сбой оборудования)
- Протоколы управления инцидентами
Тема №10: Диагностика и решение проблем   - Журналирование
- Отладка
- Практика анализа и отладки на нашем приложении
Тема №11: Тестирование надежности систем   - Нагрузочное тестирование
- Тестирование конфигураций
- Тестирование производительности
- Canary release
Тема №12: Самостоятельная работа и ревью   - Реальные кейсы
- Проверка спикерами