[Слёрм] SRE онлайн-интенсив 2020 [Иван Круглов, Павел Селиванов]

200

На курсе вы будете:

Строить
Сформулируете показатели 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: Самостоятельная работа и ревью

  • Реальные кейсы
  • Проверка спикерами