Суть. Изменения попадают в общую ветку часто и небольшими порциями, каждое автоматически собирается и проверяется, а готовая версия в любой момент может быть выпущена. Ценность не в скорости самой по себе, а в размере изменения: маленькое изменение легче проверить и дешевле откатить.
Три ступени
| Ступень | Что происходит автоматически | Что остаётся человеку |
|---|---|---|
| Непрерывная сборка | Сборка и тесты при каждом изменении | Решение о выпуске и сам выпуск |
| Непрерывная поставка | Плюс подготовка готовой к выпуску версии | Нажатие кнопки выпуска |
| Непрерывное развёртывание | Плюс выпуск в рабочую среду | Наблюдение и откат при проблемах |
Что нужно, чтобы это работало
- Тесты, которым доверяют: падающий конвейер должен означать реальную проблему, а не «опять моргнуло»
- Быстрая сборка: больше пятнадцати минут — и люди начинают обходить процесс
- Одинаковые среды: то, что собрано, должно вести себя одинаково в проверке и в работе
- Возможность отката за минуты, а не за часы
Когда применять
Как только над кодом работают больше двух человек или выпуск делается чаще раза в месяц. До этого автоматизация не окупается; после — ручная сборка становится главным источником ошибок и задержек.
Два разных механизма
| Непрерывная интеграция | Непрерывная поставка | |
|---|---|---|
| Что делает | Собирает и проверяет каждое изменение | Готовит и выкатывает сборку в среды |
| Главная ценность | Конфликты и поломки видны за минуты, а не за недели | Выпуск перестаёт быть событием |
| Что нужно | Автотесты и одна общая ветка | Одинаковые среды и обратимость выкатки |
| Признак, что не работает | Сборка «красная» дольше часа и это норма | Выкатка требует ручных шагов по инструкции |
Правила, без которых конвейер мешает
- Основная ветка всегда рабочая. Сломанная сборка — задача номер один для всех, а не «поправим потом».
- Быстрая обратная связь: базовая проверка укладывается в десять минут, длинные тесты выносятся в отдельный этап.
- Одна и та же сборка проходит все среды. Пересборка под каждую среду обесценивает всё тестирование.
- Секреты и параметры — снаружи сборки, иначе она перестаёт быть переносимой и становится небезопасной.
- Откат проверяется так же регулярно, как выкатка. Невоспроизведённый откат не существует.
Что измерять
Четыре показателя из метрик DORA: частота выпусков, срок от коммита до продуктива, доля неудачных изменений и время восстановления. Они показывают, приносит ли конвейер пользу, тогда как «число сборок в день» не показывает ничего.
Где ломается
Конвейер без тестов. Автоматизирована доставка, но не проверка — тогда быстрее доставляются и дефекты.
Нестабильные тесты. Один падающий через раз тест приучает команду перезапускать сборку не глядя, и настоящие падения перестают замечать.
Ветки живут неделями. Смысл теряется: слияние снова становится событием, к которому готовятся.
- Тесты нестабильны. Падающие через раз проверки приучают команду перезапускать сборку не глядя — и настоящая поломка проходит незамеченной.
- Конвейер медленнее терпения. Сорок минут ожидания превращают частые выпуски в редкие крупные.
- Ручной шаг посередине. Одно согласование в середине конвейера убирает весь выигрыш в сроке.
- Разные среды. Если тестовая отличается от боевой, проверка даёт ложную уверенность.
