В чем отличие между непрерывной интеграцией (CI) и непрерывной доставкой (CD)?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Непрерывная интеграция (CI) — это методология, при которой разработчики часто интегрируют изменения кода в общий репозиторий, после чего выполняются автоматизированные сборки и тесты. Основная цель CI — быстро выявлять и устранять проблемы интеграции.
Основные этапы CI:
- Разработчики фиксируют код в централизованный репозиторий.
- Запускается автоматизированная сборка проекта.
- Выполняются автоматизированные тесты (модульные, интеграционные).
- В случае успеха формируется готовый артефакт сборки.
- При возникновении ошибок члены команды уведомляются.
Непрерывная доставка (CD) — это расширение CI, при котором изменения кода, прошедшие CI и дополнительные автоматизированные тесты, готовы к развертыванию в продакшн в любое время. Развертывание в продакшн все еще требует ручного одобрения.
Основные этапы CD (добавляются после этапов CI):
- После успешного прохождения тестов в среде CI, артефакт готов к развертыванию.
- Выполняются дополнительные автоматизированные тесты (например, функциональные, нагрузочные) в промежуточных средах.
- Система готова развернуть артефакт в продакшн по требованию, как правило, нажатием кнопки.
Ключевое отличие:
| Аспект | Непрерывная интеграция (CI) | Непрерывная доставка (CD) |
|---|---|---|
| Основная цель | Интеграция и тестирование кода | Готовность к развертыванию в продакшн |
| Фокус | Разработка и тестирование | Развертывание в промежуточные и продакшн среды |
| Развертывание | Как правило, в тестовые/интеграционные среды | Готовность развернуть в продакшн |
| Автоматизация | Сборка и тесты | + Процесс подготовки к развертыванию |
| Одобрение | Не требует для каждого изменения | Требует ручного одобрения для продакшна |
Непрерывное развертывание (Continuous Deployment) является еще более продвинутой формой CD, где каждое изменение, прошедшее все автоматизированные этапы, автоматически развертывается в продакшн без ручного вмешательства. Это высшая степень зрелости процесса доставки.