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-организации.

МетрикаEliteHighMediumLow
Deployment FrequencyПо запросу (несколько раз в день)Раз в неделю - раз в месяцРаз в месяц - раз в полгодаРеже раз в полгода
Lead Time for Changes< 1 часа1 день - 1 неделя1 неделя - 1 месяц> 6 месяцев
MTTR (Mean Time to Recovery)< 1 часа< 1 дня1 день - 1 неделя> 6 месяцев
Change Failure Rate0-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
Что такое DevOps

0

1

Войти