Источник
Книжный куб
Обзор основан на посте Alexander Polomodov.
Grokking Continuous Delivery (Грокаем Continuous Delivery)
Авторы: Christie Wilson
Издательство: Manning Publications
Объём: 424 страниц
Практическое введение в CI/CD от Christie Wilson: пайплайны, version control, безопасное развёртывание и DORA метрики.
Оригинал
ПереводВведение
«Grokking Continuous Delivery» — книга Кристи Уилсон из Google, которая объясняет современные подходы к continuous delivery буквально с основ. Вступительное слово написали два уважаемых инженера:
- Джез Хамбл — соавтор книг «Continuous Delivery», «DevOps Handbook», «Accelerate»
- Эрик Брюэр — автор CAP теоремы, участник разработки Google Spanner, VP Infrastructure & Google Fellow
Книга состоит из 4 частей, 13 глав и 2 приложений. Особенность подхода — разбор почти реальных проблем выдуманных компаний («Cat Picture», «Super Game Console», «Ice Cream for All»), что позволяет показать эволюционное развитие инженерных процессов, а не идеальную картинку.
Связанная глава
SRE Book
Раскрывает тему автоматизации релизов с точки зрения операционной надёжности.
Структура книги
Part 1: Introducing continuous delivery
- Chapter 1: Welcome to Grokking Continuous Delivery
- Chapter 2: A basic pipeline
Part 2: Keeping software in a deliverable state
- Chapter 3: Version control is the only way to roll
- Chapter 4: Use linting effectively
- Chapter 5: Dealing with noisy tests
- Chapter 6: Speeding up slow test suites
- Chapter 7: Give the right signals at the right times
Part 3: Making delivery easy
- Chapter 8: Easy delivery starts with version control
- Chapter 9: Building securely and reliably
- Chapter 10: Deploying confidently
Part 4: CD design
- Chapter 11: Starter packs: From zero to CD
- Chapter 12: Scripts are code, too
- Chapter 13: Pipeline design
Ключевые принципы
🔧 Независимость от инструментов
Книга не привязывается к конкретным CI/CD инструментам — для этого есть отдельное приложение с обзором их возможностей
🌱 Green-field и Brown-field
Инструкции по настройке пайплайнов как для новых проектов, так и для существующих legacy-систем
📊 DORA метрики
Отслеживание качества процесса поставки через Deployment Frequency, Lead Time, MTTR, Change Failure Rate
🔐 VCS как источник истины
Version Control System — единственный источник правды для кода, конфигураций и инфраструктуры
CI vs CD vs Continuous Deployment
| Практика | Описание | Автоматизация |
|---|---|---|
| Continuous Integration | Регулярное слияние кода в общую ветку с автоматической сборкой и тестированием | Build + Tests |
| Continuous Delivery | Код всегда готов к развёртыванию, но деплой требует ручного подтверждения | Build + Tests + Staging |
| Continuous Deployment | Каждое изменение автоматически попадает в production | Full automation |
Интерактивная визуализация пайплайна
Нажмите «Запустить» чтобы увидеть, как артефакт проходит через все этапы CI/CD пайплайна. Кнопка «Симулировать сбой» покажет, что происходит при падении тестов.
CI/CD Pipeline
Commit
Код попадает в VCS
Build
Сборка артефакта
Lint
Статический анализ
Test
Unit & Integration тесты
Security
Сканирование уязвимостей
Staging
Деплой на staging
Production
Деплой в production
Этапы пайплайна:
Лучшие практики из книги
1. Правильные сигналы в правильное время
Используйте шаги пайплайна для получения чётких сигналов о готовности софта к развёртыванию. Быстрые проверки — в начале, медленные — в конце.
2. Безопасное развёртывание
Автоматизация должна включать rollback механизмы, canary deployments и feature flags для минимизации рисков.
3. Скрипты — тоже код
CI/CD скрипты должны проходить code review, тестироваться и версионироваться наравне с основным кодом приложения.
4. Борьба с шумными тестами
Flaky tests подрывают доверие к пайплайну. Их нужно изолировать, чинить или удалять, но не игнорировать.
Для кого эта книга
Книга рекомендуется тем, кто начинает свой путь в IT — лучше познакомиться с теорией о том, как должны выглядеть инженерные процессы из книги, чем пытаться самому прийти к ним на практике через грабли.
P.S. Книга на русском вышла в издательстве «Питер» под названием «Грокаем continuous delivery» и переведена достаточно неплохо.
