Continuous integration — это только первый шаг большого автоматизированного конвейера. Разработка тут ведется в своих отдельных (локальных) ветках, затем все изменения вливаются в основную ветку. Все сборки и тестирования запускаются автоматически и занимают не больше 10 минут. Остальное развертывание запускается вручную.
Кроме этого шага есть еще:
Continuous delivery — непрерывная доставка. Здесь процесс непрерывной интеграции полностью автоматизирован. Как и процесс сборки релиза. А вот развертывание в продакшн происходят вручную.
Continuous deployment — непрерывное развертывание. В этом случае предыдущие два этапа (Continuous integration и Continuous delivery) полностью автоматизированы. А также автоматизирован процесс развертывания версии продукта на компьютере клиента или виртуализированной операционной системе. Чтобы ее мог оценить клиент.
Этот конвейер облегчает процесс слияние только что законченного кода с основной кодовой базой (тем, что было написано раньше и уже работает). Также он запускает различные тесты развертывания.
Концепция Ci/Cd используется в большей или в меньшей степени абсолютно во всех проектах.
Процессы Continuous integration, Continuous delivery и Continuous deployment не исключают друг друга. По своей структуре они больше напоминают матрешку.
- Continuous integration — это самая маленькая, нижний уровень.
- Continuous delivery — средняя.
- Continuous deployment — самая большая матрешка, внешний уровень.
Главная цель всех этих процессов — повысить надежность разработки, сделать релизы более стабильными и уменьшить время разработки.