Непрерывная доставка полезна только тогда, когда ускорение релизов не покупается ценой скрытого операционного риска.
Глава связывает конвейеры поставки изменений, контроль версий, безопасное развёртывание и метрики DORA в одну дисциплину, где скорость выпуска проверяется обратной связью и способностью быстро откатиться.
В инженерных разговорах этот материал помогает обсуждать темп изменений, уверенность в релизе, радиус поражения развёртывания и цену ошибок внутри конвейера.
Практическая польза главы
Практика проектирования
Проектируйте путь изменения от коммита до промышленной среды: проверки, ручные подтверждения, откат и понятные сигналы готовности.
Качество решений
Оценивайте процесс поставки через частоту развёртываний, время поставки изменений, среднее время восстановления и долю неудачных изменений.
Аргументация на интервью
Показывайте, где конвейер даёт быстрый сигнал, где нужен контроль риска и как команда ограничивает влияние неудачного релиза.
Формулировка компромиссов
Явно обсуждайте баланс между скоростью релизов, глубиной автоматизации, доверием к тестам и стоимостью ручных проверок.
Источник
Книжный куб
Обзор основан на посте Alexander Polomodov.
Grokking Continuous Delivery (Грокаем Continuous Delivery)
Авторы: Christie Wilson
Издательство: Manning Publications
Объём: 424 страниц
Практическое введение в CI/CD от Christie Wilson: конвейеры поставки изменений, контроль версий, безопасное развёртывание и метрики DORA.
В этой главе рассматривается как дисциплина, которая связывает , , , проверочные сигналы и .
Wilson показывает, что скорость релизов полезна только вместе с обратной связью, качеством проверок и , иначе команда просто быстрее доставляет риск пользователям.
Введение
«Grokking Continuous Delivery» - книга Christie Wilson из Google о том, как строить непрерывную доставку от первых проверок до уверенного выпуска изменений. Вступительное слово написали два известных инженера:
- Jez Humble - соавтор книг «Continuous Delivery», «DevOps Handbook» и «Accelerate».
- Eric Brewer - автор CAP-теоремы, участник разработки Google Spanner, VP Infrastructure и Google Fellow.
Книга состоит из четырёх частей, тринадцати глав и двух приложений. Её сильная сторона - почти реальные проблемы вымышленных компаний «Cat Picture», «Super Game Console» и «Ice Cream for All»: так автор показывает эволюционное улучшение инженерных процессов, а не идеальную картинку с нуля.
Связанная глава
SRE Book
Раскрывает автоматизацию релизов через операционную надёжность.
Структура книги
Часть I: знакомство с непрерывной доставкой
- Глава 1: зачем нужна непрерывная доставка и как она меняет работу команды.
- Глава 2: базовый .
Часть II: как держать продукт готовым к выпуску
- Глава 3: как основа процесса.
- Глава 4: эффективный .
- Глава 5: что делать с .
- Глава 6: как ускорять медленный .
- Глава 7: как давать правильные сигналы в правильный момент.
Часть III: как сделать выпуск изменений простым
- Глава 8: почему удобная поставка начинается с контроля версий.
- Глава 9: как собирать продукт безопасно и надёжно.
- Глава 10: как развёртывать изменения уверенно.
Часть IV: проектирование CD
- Глава 11: стартовые наборы для команд, которые начинают с нуля.
- Глава 12: почему скрипты поставки тоже являются кодом.
- Глава 13: дизайн конвейера поставки изменений.
Ключевые принципы
Независимость от инструментов
Книга не привязывает практики к конкретным CI/CD-инструментам: сначала объясняет принципы, а обзор возможностей инструментов выносит отдельно.
Новые и существующие проекты
Подход работает и для , и для , где уже есть ограничения, пользователи и накопленная сложность.
Метрики DORA
Качество поставки оценивается через , , MTTR и .
Контроль версий как источник истины
становится единым для кода, конфигурации, скриптов поставки и инфраструктурных изменений.
CI, CD и автоматическое развёртывание
| Практика | Описание | Что автоматизировано |
|---|---|---|
| (CI) | Регулярное слияние кода в общую ветку с автоматической сборкой и тестированием. | Сборка и тесты |
| (CD) | Код всегда готов к развёртыванию, но выпуск в целевую среду может требовать . | Сборка, тесты и промежуточное окружение |
| Каждое изменение после успешных проверок автоматически попадает в промышленную среду. | Полная автоматизация |
Интерактивная визуализация конвейера
Нажмите «Запустить», чтобы увидеть, как артефакт проходит этапы CI/CD-конвейера. Кнопка «Симулировать сбой» покажет, что происходит при падении тестов.
CI/CD-конвейер
Коммит
Код попадает в систему контроля версий
Сборка
Создание артефакта
Анализ кода
Статическая проверка качества
Тесты
Модульные и интеграционные проверки
Безопасность
Поиск уязвимостей
Проверочная среда
Пробное развёртывание
Выпуск
Доставка пользователям
Этапы конвейера:
Лучшие практики из книги
1. Правильные сигналы в правильное время
Используйте этапы , чтобы получать ясные сигналы о готовности продукта к развёртыванию: быстрые проверки в начале, медленные и дорогие - ближе к концу.
2. Безопасное развёртывание
Автоматизация должна включать , и , чтобы снижать риск для пользователей.
3. Скрипты - тоже код
CI/CD-скрипты должны проходить , тестироваться и версионироваться наравне с основным кодом приложения.
4. Борьба с нестабильными тестами
подрывают доверие к конвейеру. Их нужно изолировать, чинить или удалять, но не игнорировать.
Для кого эта книга
Книга особенно полезна тем, кто только входит в инженерные процессы или помогает команде навести порядок в выпуске изменений. Она даёт язык для обсуждения проверок, релизов, ответственности и обратной связи до того, как команда набьёт эти шишки в промышленной среде.
P.S. На русском книга вышла в издательстве «Питер» под названием «Грокаем Continuous Delivery» и переведена достаточно аккуратно.
Связанные главы
- Release It! - Дополняет тему : канареечные запуски, быстрый откат и устойчивость при сбоях в промышленной среде.
- Site Reliability Engineering - Раскрывает операционный подход к надёжности поставки и управлению рисками изменений.
- Зачем нужны надёжность и SRE - Даёт общую карту SRE-практик, где связывается с реагированием на инциденты и SLO.
- GitOps - Показывает декларативный подход к поставке изменений и контроль через Git как .
- Infrastructure as Code - Связывает с управлением инфраструктурой как версионируемым кодом.
