Delivery vs Deployment
Две расшифровки CD: непрерывная доставка (релиз кнопкой) и непрерывное развёртывание (автоматом в прод).
Одна аббревиатура, два смысла
CD расшифровывают двумя способами, и на собеседовании любят спросить
разницу:
- Continuous Delivery — непрерывная доставка,
- Continuous Deployment — непрерывное развёртывание.
Разница ровно в одном: кто нажимает кнопку выкатки в прод, человек или автоматика.
Общая часть: всё, что до прода
И Delivery, и Deployment строятся поверх CI и делают одно и то же вплоть до продакшена:
коммит -> CI (сборка + тесты) -> упаковка артефакта
-> деплой на staging -> приёмочные тесты
-> [готово к продакшену]
На этом этапе у тебя есть проверенный артефакт, который можно выкатить в любой момент. Дальше пути расходятся.
Continuous Delivery: релиз — решение человека
Артефакт готов и протестирован, но в прод он едет, когда человек нажмёт кнопку. Автоматизировано всё, кроме самого финального решения "выкатываем".
Когда так делают:
- релиз привязан к бизнес-событию (маркетинг, расписание, окно),
- нужен ручной апрув (релиз-менеджер, ответственный, регуляторика),
- прод критичен и команда хочет осознанный момент выката.
Суть: технически можно выкатить в любую секунду, но жмёт человек.
Continuous Deployment: кнопки нет
То же самое, но финальный шаг тоже автоматический. Прошёл все проверки и сам уехал в прод, без ручного апрува.
Когда так делают:
- команда зрелая, тестам доверяют,
- изменения мелкие и частые,
- есть быстрый откат и хороший мониторинг (если что-то не так, заметим и откатим за минуты).
Суть: человек вообще не участвует в выкатке. Смержил MR, и через несколько минут это уже в проде.
Мнемоника
Delivery — можем выкатить в любой момент (кнопкой). Deployment — выкатываемся сами, без кнопки.
Continuous Deployment — это Continuous Delivery без последнего ручного шага. Поэтому Deployment "сильнее": он требует Delivery как фундамент плюс достаточно доверия к автоматике.
Что для этого нужно
Чтобы безопасно выкатывать автоматически (или часто кнопкой), команде нужны страховки:
- быстрый откат, чтобы вернуть прошлую версию за секунды,
- мониторинг и алерты, чтобы заметить деградацию сразу,
- стратегии безопасного выката: blue-green (две среды, переключаем трафик), canary (катим на 5% пользователей, смотрим, потом на всех), feature flags (код есть, но выключен).
Без этих страховок Continuous Deployment превращается в "автоматически ломаем прод". Поэтому многие команды осознанно остаются на Delivery.
Что важно запомнить
CD = либо Delivery, либо Deployment. Разница в том, кто жмёт кнопку выката.
Delivery: артефакт всегда готов, релиз в прод запускает человек.
Deployment: прошло проверки -> автоматически в прод, без ручного шага.
Deployment = Delivery без последней кнопки + доверие к тестам, откату и мониторингу.
Безопасный выкат держится на откате, мониторинге и стратегиях blue-green / canary.
В следующем уроке разбираем анатомию пайплайна: stages, jobs, runners, артефакты, секреты.
Дрилл · вопросы как на собесе
Проверь себя без подсказок
Сформулируй ответ вслух или письменно, потом раскрой и честно отметь: знал или нет.
Что нужно, чтобы безопасно делать Continuous Deployment?
CICD-021Чем Continuous Delivery отличается от Continuous Deployment?
CICD-020Что такое blue-green и canary деплой?
CICD-022Прошли материал до конца? Отметьте урок пройденным.
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс