DevOps
Что такое DevOps
В 2009 году Flickr шокировал индустрию: **10 деплоев в день**, когда все остальные деплоили раз в месяц. К 2019 Amazon дошёл до деплоя каждые 11.7 секунд. Как? Не новые серверы, не магический фреймворк - а революция в том, КАК люди работают вместе. Это и есть DevOps.
- **Netflix** - тысячи деплоев в день благодаря Chaos Engineering и культуре "freedom & responsibility"
- **Amazon** - деплой каждые 11.7 секунд, переход от монолита к микросервисам через DevOps-культуру
- **Etsy** - один из пионеров DevOps, continuous deployment с 2010 года, blameless postmortems как стандарт
- **Google** - создали SRE (Site Reliability Engineering) - свою версию DevOps с акцентом на надёжность и error budgets
Рождение DevOps
В 2008 году Патрик Дебуа, бельгийский IT-консультант, был разочарован пропастью между Dev и Ops. В 2009 году, вдохновлённый докладом Flickr, он организовал первую конференцию DevOpsDays в Генте. Хэштег #devops пошёл в Twitter - и движение получило имя. Забавно, что слово DevOps родилось из ограничения Twitter на длину.
Культура DevOps и CALMS
В 2009 году на конференции Velocity Джон Оллспоу и Пол Хэммонд из Flickr показали доклад **"10+ Deploys Per Day"**. Индустрия была в шоке: большинство компаний деплоили раз в месяц, а Flickr - десятки раз в день. Их секрет - не волшебный инструмент, а **культура сотрудничества** между разработчиками и операторами.
**CALMS** - фреймворк, описывающий пять столпов DevOps: **C**ulture (культура), **A**utomation (автоматизация), **L**ean (бережливость), **M**easurement (измерение), **S**haring (обмен знаниями).
До DevOps существовала так называемая **"Wall of Confusion"** - стена непонимания между Dev и Ops. Разработчики хотели быстрых изменений, операторы - стабильности. Результат? Конфликт интересов, который замедлял всех.
**Shift Left** - ключевой принцип: переносим тестирование, безопасность и мониторинг на ранние этапы разработки. Чем раньше найден баг, тем дешевле его исправить. Баг в проде стоит в 100 раз дороже, чем баг на этапе code review.
**Blameless postmortems** - разбор инцидентов без поиска виноватых. Amazon, Google и Netflix проводят их после каждого серьёзного сбоя. Цель - не наказать, а **найти системную причину** и предотвратить повторение. Если люди боятся наказания, они скрывают ошибки.
Amazon в 2001 году имел монолит, деплой которого занимал дни. После перехода на сервисную архитектуру и DevOps-культуру они достигли **деплоя каждые 11.7 секунд** (2019). Это не магия инструментов - это культурная трансформация.
Что такое "Wall of Confusion" в контексте DevOps?
Автоматизация: CI/CD и IaC
Культура без автоматизации - просто красивые слова. **Автоматизация** - это то, что превращает DevOps-принципы в ежедневную реальность. Три главных столпа: **CI/CD pipeline**, **Infrastructure as Code** и **Configuration Management**.
**CI (Continuous Integration)** - каждый commit автоматически собирается и тестируется. **CD (Continuous Delivery/Deployment)** - протестированный код автоматически доставляется в production. Цепочка: коммит → сборка → тесты → деплой.
**Infrastructure as Code (IaC)** - описание инфраструктуры в конфигурационных файлах вместо ручной настройки серверов. Terraform, Pulumi, CloudFormation позволяют создать идентичные окружения одной командой.
**Зачем автоматизировать?** Человек допускает ошибку в 1 из 10 повторяющихся действий. При 100 деплоях в месяц это 10 ошибок. Автоматизация делает процесс **повторяемым, быстрым и предсказуемым**.
| Аспект | Ручной процесс | Автоматизированный |
|---|---|---|
| Время деплоя | 30-60 минут | 2-5 минут |
| Ошибки | ~10% деплоев | <1% деплоев |
| Откат | "Кто помнит, что менял?" | git revert + auto-deploy |
| Новый сервер | 2-3 дня настройки | terraform apply (5 мин) |
| Документация | Устаревает мгновенно | Код = документация |
Что произойдёт в CI/CD pipeline, если unit-тесты упали?
Метрики: DORA и SLx
**"Что не измеряется - не улучшается."** Питер Друкер сказал это про менеджмент, но в DevOps это особенно верно. Как узнать, работает ли ваш DevOps? Для этого существуют **DORA-метрики** - золотой стандарт индустрии.
**DORA** (DevOps Research and Assessment) - исследовательская группа Google, которая с 2014 года изучает 30,000+ команд. Их вывод: **4 ключевые метрики** предсказывают успех IT-организации.
| Метрика | Elite | High | Medium | Low |
|---|---|---|---|---|
| Deployment Frequency | По запросу (несколько раз в день) | Раз в неделю - раз в месяц | Раз в месяц - раз в полгода | Реже раз в полгода |
| Lead Time for Changes | < 1 часа | 1 день - 1 неделя | 1 неделя - 1 месяц | > 6 месяцев |
| MTTR (Mean Time to Recovery) | < 1 часа | < 1 дня | 1 день - 1 неделя | > 6 месяцев |
| Change Failure Rate | 0-15% | 16-30% | 16-30% | 46-60% |
Помимо DORA, DevOps-инженеры работают с **SLI/SLO/SLA** - трёхуровневой системой гарантий надёжности.
**Мониторинг vs Observability.** Мониторинг отвечает на вопрос **"что сломалось?"** (CPU 100%, диск полный). Observability отвечает на вопрос **"почему сломалось?"** - через три столпа: **логи**, **метрики**, **трейсы**.
Netflix использует **error budget** - бюджет на ошибки. Если SLO = 99.9% uptime, то error budget = 0.1% = ~43 минуты простоя в месяц. Пока бюджет не исчерпан - команда может деплоить фичи. Исчерпан - только фиксы стабильности.
Команда деплоит раз в месяц, Lead Time = 3 недели, MTTR = 2 дня. К какому уровню DORA она относится?
Sharing: DevOps как культура
Мы прошли Culture, Automation и Measurement. Теперь - **Sharing**, последний столп CALMS. Именно здесь кроется самое частое заблуждение о DevOps: многие думают, что DevOps - это набор инструментов. Docker, Kubernetes, Terraform. Купил - внедрил - у тебя DevOps.
**DevOps - это НЕ инструменты.** Можно использовать Kubernetes и при этом деплоить раз в квартал через тикет в Jira. А можно деплоить 50 раз в день с простыми bash-скриптами. Инструменты помогают, но культура - первична.
**Blameless culture** - никто не виноват в сбоях. Виновата **система**, которая допустила сбой. Если разработчик случайно уронил production - вопрос не "почему он это сделал", а "почему система позволила это сделать?". Нет code review? Нет автотестов? Нет canary deploy?
**Shared responsibility** - "вы написали, вы и запускаете" (You build it, you run it). Разработчики несут ответственность за свой код в production. Это не наказание - это **быстрая обратная связь**. Тот, кто написал код, лучше всех понимает, как его чинить.
**Documentation as code** - документация живёт рядом с кодом, в том же репозитории. README, ADR (Architecture Decision Records), runbooks. Если документация в отдельной Wiki - она устареет через неделю. Если в Git рядом с кодом - обновляется вместе с ним.
**Три кита обмена знаниями:** 1) Blameless postmortems после каждого инцидента. 2) Internal tech talks и demo days. 3) Документация в Git рядом с кодом. Все три работают только если люди **не боятся** делиться ошибками.
DevOps - это отдельная роль или команда, которая занимается деплоем и серверами
DevOps - это культура совместной ответственности, где Dev и Ops работают как одна команда с общими целями
Создание отдельной "DevOps-команды" часто создаёт ещё одну стену вместо того, чтобы разрушить существующую. DevOps - это набор практик (CI/CD, IaC, мониторинг, blameless culture), которые должна принять ВСЯ организация, а не отдельный отдел.
Компания наняла "DevOps-инженера" и купила Kubernetes. Через полгода деплой по-прежнему раз в месяц. В чём проблема?
Ключевые идеи
- DevOps = **CALMS**: Culture, Automation, Lean, Measurement, Sharing - а не набор инструментов
- **"Wall of Confusion"** между Dev и Ops решается общими целями и shared responsibility
- **CI/CD pipeline** автоматизирует путь от коммита до production, убирая человеческие ошибки
- **DORA-метрики** - 4 показателя, которые предсказывают эффективность IT-организации
- **Blameless culture** - системы ломаются, люди не виноваты. Ищем причину, а не виновного
- Помните доклад Flickr "10 deploys per day"? Теперь вы знаете, что за этим стоит не магия, а культура + автоматизация + метрики
Связанные темы
DevOps - это фундамент, на котором строится всё остальное в этом курсе:
- Linux для DevOps — Операционная система, на которой работает 96% серверов в мире
- Сети для DevOps — Без понимания сетей невозможен troubleshooting production
Вопросы для размышления
- Представьте, что вы - новый DevOps-инженер в компании, где Dev и Ops не разговаривают. С чего бы вы начали?
- Какие из DORA-метрик, по вашему мнению, важнее всего для стартапа? А для банка?
- Почему blameless culture так сложно внедрить? Что мешает людям не искать виноватого?
Связанные уроки
- devops-02 — Linux fundamentals are required to operate the automation pipelines introduced here
- st-01-feedback-loops — CI/CD pipeline is a feedback loop that shortens the Dev-Ops cycle from months to minutes
- alg-01-big-o — DORA metrics measure process efficiency the same way Big-O measures algorithm efficiency
- sd-01-intro — System Design decisions shape what DevOps must automate and monitor
- sec-01 — DevSecOps integrates security into the CI/CD pipeline - Shift Left principle
- dist-03-fallacies
- os-19-containers