Gymterview
junior

Что такое CD (Continuous Delivery и Continuous Deployment)

CD (Continuous Delivery / Continuous Deployment) — это набор практик, расширяющих CI и обеспечивающих автоматизированную доставку программного обеспечения до конечных окружений. Аббревиатура CD имеет два значения, которые важно различать.

Continuous Delivery (непрерывная доставка)

Continuous Delivery — это практика, при которой код всегда находится в состоянии, готовом к развертыванию в продуктивную среду. Развертывание на production выполняется вручную по решению команды (нажатие кнопки).

Continuous Deployment (непрерывное развертывание)

Continuous Deployment — это расширение Continuous Delivery, при котором каждое изменение, прошедшее все этапы пайплайна (сборка, тесты, проверки), автоматически разворачивается на production без ручного вмешательства.

Аналогия: Continuous Delivery — это как собранная и упакованная посылка, стоящая на столе, которую отправляют по команде менеджера. Continuous Deployment — это автоматическая лента, которая сама увозит посылку на отправку, как только она собрана и проверена.

Сравнение Continuous Delivery и Continuous Deployment

Критерий Continuous Delivery Continuous Deployment
Деплой на production Ручной (по кнопке) Автоматический
Требования к тестам Высокие Очень высокие
Применимость Банки, enterprise, регулируемые отрасли Стартапы, SaaS, продуктовые компании
Контроль Больше контроля, возможность аудита Максимальная скорость доставки
Частота релизов По решению команды При каждом успешном коммите

Связь CI, Continuous Delivery и Continuous Deployment

Пример
CI                    Continuous Delivery          Continuous Deployment
[Build -> Test] ----> [Stage -> Approve] --------> [Auto-deploy to Prod]
                                 ^                            ^
                          Ручная кнопка              Полная автоматизация

Вывод

В банковской среде, как правило, используется Continuous Delivery, так как развертывание на production требует согласования, проверки compliance и ручного подтверждения. Continuous Deployment больше подходит продуктовым компаниям с высоким уровнем автоматизации тестирования.

На собеседовании: ключевой момент — уметь четко различать Continuous Delivery и Continuous Deployment. Часто задают вопрос: «Какой подход вы бы выбрали для банковского проекта и почему?» Правильный ответ — Continuous Delivery из-за регуляторных требований.