Словарь

CI/CD/CD. Continuous Integration / Continuous Delivery / Continuous Deployment

Непрерывная интеграция (CI), непрерывная доставка (CD) и непрерывное развёртывание (CD) — devops-подход к разработке и апгрейду программного обеспечения, подразумевающий непрерывное, конвейерное тестирование, сборку, доставку и развёртывание обновлений. Возможно как отдельное применение компонентов этого подхода (CI или CI + CD), так и их последовательное использование в рамках единого процесса (CI + CD + CD).

Непрерывная интеграция (CI)

Непрерывная интеграция (CI) — первичный, базовый процесс обновления ПО, в рамках которого все изменения на уровне кода вносятся в единый центральный репозиторий. Такое внесение принято называть слиянием. После каждого слияния (которое проходит по несколько раз в день) в изменяемой системе происходит автоматическая сборка (часто приложение упаковывается в Docker) и тестирование (проверка конкретных модулей кода, UI, производительности, надёжности API). Таким образом разработчики страхуются от слишком поздних обнаружений проблем в обновлениях.

Непрерывная интеграция, каждый этап запускается и выполняется автоматически
Непрерывная интеграция. Каждый этап запускается и выполняется автоматически

Непрерывная доставка (CD)

Непрерывная доставка (CD) — CI + CD. Следующий после CI уровень. Теперь новая версия не только создаётся и тестируется при каждом изменении кода, регистрируемом в репозитории, но и может быть оперативно запущена по одному нажатию кнопки развёртывания. Однако запуск развёртывания всё ещё происходит вручную — ту самую кнопку всё же надо кому-то нажать. Этот метод позволяет выпускать изменения небольшими партиями, которые легко изменить или устранить в случае необходимости.

Непрерывная доставка с ручным запуском
Непрерывная доставка. Развёртывание выполняется автоматически, но запускается вручную

Непрерывное развёртывание (CD)

Непрерывное развёртывание (CD) — CI +CD + CD. После автоматизации релиза остаётся один ручной этап: одобрение и запуск развёртывания в продакшен (злосчастная кнопка). Практика непрерывного развёртывания упраздняет и это, не требуя непосредственного утверждения со стороны разработчика. Все изменения развёртываются автоматически.

Непрерывное развёртывание
Непрерывное развёртывание. Все этапы запускаются и выполняются автоматически

Как правило, под CI/CD подразумеваются только непрерывная интеграция и доставка.

Пользуясь настоящим сайтом, вы даете свое согласие на использование файлов cookies