Site Reliability Engineering (SRE)
Прикладна дисципліна | 7 модулів | ~4 години загалом
Практика застосування програмної інженерії до операційних завдань. SRE надає конкретні методи для вимірювання, підтримки та покращення надійності виробничих систем.
Чому SRE?
Розділ «Чому SRE?»Традиційні операції стикаються з фундаментальним протиріччям: розробка хоче релізити швидко, операції хочуть стабільності. Ці цілі здаються протилежними.
SRE вирішує це протиріччя через:
- Вимірювану надійність — SLO замінюють розпливчасте “зробіть це надійним” конкретними цілями
- Бюджети помилок — розрахований ризик замість безрозсудних релізів або надмірної обережності
- Інженерне мислення — автоматизація рутинної роботи (toil) замість її виконання вручну
- Культура навчання — безобвинувальні постмортеми перетворюють невдачі на покращення
SRE — це не просто нова назва для операцій. Це фундаментально інший підхід до експлуатації систем у продакшні.
Модулі
Розділ «Модулі»| # | Модуль | Час | Опис |
|---|---|---|---|
| 1.1 | Що таке SRE? | 30-35 хв | Походження, мислення, структури команд, SRE vs DevOps |
| 1.2 | Цілі рівня обслуговування (SLO) | 35-40 хв | Ієрархія SLI, SLO, SLA, вибір та вимірювання |
| 1.3 | Бюджети помилок | 30-35 хв | Розрахунок бюджету, політики, балансування швидкості |
| 1.4 | Рутинна робота та автоматизація | 30-35 хв | Ідентифікація рутини (toil), правило 50%, стратегії автоматизації |
| 1.5 | Управління інцидентами | 35-40 хв | Ролі реагування, критичність, чергування, ранбуки |
| 1.6 | Постмортеми та навчання | 30-35 хв | Безобвинувальна культура, структура постмортему, action items |
| 1.7 | Планування ємності | 35-40 хв | Прогнозування, підготовка ресурсів, навантажувальне тестування |
Шлях навчання
Розділ «Шлях навчання»ПОЧНІТЬ ТУТ │ ▼┌─────────────────────────────────────┐│ Модуль 1.1 ││ Що таке SRE? ││ └── Походження та мислення SRE ││ └── SRE vs DevOps vs Platform ││ └── Структури команд ││ └── Правило 50% │└──────────────────┬──────────────────┘ │ ▼┌─────────────────────────────────────┐│ Модуль 1.2 ││ Цілі рівня обслуговування (SLO) ││ └── Ієрархія SLI, SLO, SLA ││ └── Вибір хороших SLI ││ └── Встановлення реалістичних SLO ││ └── Алертинг на основі SLO │└──────────────────┬──────────────────┘ │ ▼┌─────────────────────────────────────┐│ Модуль 1.3 ││ Бюджети помилок ││ └── Розрахунок бюджету ││ └── Політики бюджетів помилок ││ └── Баланс надійність/швидкість ││ └── Коли витрачати, а коли економити│└──────────────────┬──────────────────┘ │ ▼┌─────────────────────────────────────┐│ Модуль 1.4 ││ Рутинна робота та автоматизація ││ └── Визначення та вимірювання toil ││ └── Правило 50% на практиці ││ └── Ієрархія автоматизації ││ └── Пріоритезація на основі ROI │└──────────────────┬──────────────────┘ │ ▼┌─────────────────────────────────────┐│ Модуль 1.5 ││ Управління інцидентами ││ └── Ролі реагування (IC, Comms) ││ └── Рівні критичності ││ └── Найкращі практики чергувань ││ └── Ранбуки та плейбуки │└──────────────────┬──────────────────┘ │ ▼┌─────────────────────────────────────┐│ Модуль 1.6 ││ Постмортеми та навчання ││ └── Безобвинувальна культура ││ └── "Друга історія" ││ └── Ефективні action items ││ └── Поширення знань │└──────────────────┬──────────────────┘ │ ▼┌─────────────────────────────────────┐│ Модуль 1.7 ││ Планування ємності ││ └── Прогнозування попиту ││ └── Стратегії підготовки ресурсів ││ └── Навантажувальне тестування ││ └── Оптимізація витрат │└──────────────────┬──────────────────┘ │ ▼ SRE ЗАВЕРШЕНО │ ┌──────────────┼──────────────┐ │ │ │ ▼ ▼ ▼ Platform GitOps Набір інструментівEngineering Дисципліна спостережуваностіКлючові концепції
Розділ «Ключові концепції»| Концепція | Модуль | Що це означає |
|---|---|---|
| SLI | 1.2 | Service Level Indicator — що ви вимірюєте |
| SLO | 1.2 | Service Level Objective — ваша ціль |
| SLA | 1.2 | Service Level Agreement — зовнішня обіцянка |
| Бюджет помилок | 1.3 | Дозволена ненадійність (1 - SLO) |
| Toil (Рутина) | 1.4 | Повторювана робота, яку можна автоматизувати |
| Правило 50% | 1.1, 1.4 | Обмеження рутини до 50% для захисту часу на інженерію |
| Incident Commander | 1.5 | Людина, що координує реагування на інцидент |
| Безобвинувальний постмортем | 1.6 | Навчання на помилках без пошуку винних |
| Burn Rate | 1.2, 1.3 | Швидкість витрачання бюджету помилок |
| Headroom | 1.7 | Запас ємності для стрибків трафіку |
Передумови
Розділ «Передумови»- Обов’язково: Трек надійності інженерних систем — режими відмов
- Обов’язково: Трек системного мислення — динаміка систем
- Рекомендовано: Трек теорії спостережуваності — метрики та моніторинг
- Корисно: досвід експлуатації продакшн-систем
- Корисно: деякий досвід роботи з Kubernetes
Куди це веде
Розділ «Куди це веде»Після завершення дисципліни SRE ви готові до:
| Трек | Чому |
|---|---|
| Platform Engineering | Побудова платформ з використанням принципів SRE |
| GitOps Дисципліна | Декларативні інфраструктурні операції |
| IaC Дисципліна | Infrastructure as Code для надійної підготовки ресурсів |
| Інструменти спостережуваності | Впровадження Prometheus, Grafana, OpenTelemetry |
| Інструменти IaC | Terraform, OpenTofu, Pulumi для автоматизації |
| CKA Сертифікація | Застосування SRE до адміністрування Kubernetes |
Ключові ресурси
Розділ «Ключові ресурси»Книги (на які є посилання):
- “Site Reliability Engineering” — Google (безкоштовно онлайн, оригінальна книга SRE)
- “The Site Reliability Workbook” — Google (практичний посібник)
- “Implementing Service Level Objectives” — Alex Hidalgo
Статті:
- “What is SRE?” — Google Cloud
- “SRE vs DevOps” — Atlassian
Мислення SRE
Розділ «Мислення SRE»| Питання для роздумів | Чому це важливо |
|---|---|
| ”Який наш SLO?” | Неможливо покращити те, що ви не вимірюєте |
| ”Скільки у нас бюджету помилок?” | Знати, коли релізити, а коли стабілізувати |
| ”Чи є ця робота рутиною (toil)?” | Автоматизуйте, якщо так, захищайте час інженерів |
| ”Що запобігло б цьому інциденту?” | Виправлення систем, а не людська пильність |
| ”Хто сьогодні IC?” | Чіткі ролі в хаосі |
| ”Чи витримаємо ми 2x трафік?” | Плануйте до того, як це знадобиться |
Дисципліна завершена
Розділ «Дисципліна завершена»Після цих 7 модулів ви можете:
- Визначати та вимірювати надійність за допомогою SLO
- Балансувати надійність та швидкість за допомогою бюджетів помилок
- Систематично ідентифікувати та усувати рутинну роботу (toil)
- Реагувати на інциденти за допомогою чітких ролей та процесів
- Навчатися на помилках через безобвинувальні постмортеми
- Планувати майбутню ємність та зростання
Тепер ви готові практикувати SRE, а не просто читати про це.
“Надія — це не стратегія.” — Традиційне прислів’я SRE