Skip to content

CI/CD

Важные методики, активно применяющиеся в практиках devops. Как CI/CD, так и DevOps фокусируются на автоматизации процессов интеграции кода, тем самым ускоряя процессы, посредством которых идея (например, новая функция, запрос на улучшение или исправление ошибки) переходит от разработки к развертыванию в производственной среде, где она может представлять ценность для пользователя.

ci_cd

Continuos Integration

Процесс CI (Continuous Integration) - процесс непрерывной сборки разрабатываемого кода, с автоматизированной проверкой, тестированием, слиянием годного кода и подготовкой к дальнейшему развертыванию приложения.

Непрерывная интеграция (CI, Continuous Integration) — это практика разработки программного обеспечения, при которой изменения кода с высокой частотой интегрируются в общий репозиторий и проверяются с помощью автоматической сборки.

Непрерывная интеграция нацелена на ускорение и облегчение процесса выявления проблем, возникающих в процессе разработки программного обеспечения. При регулярной интеграции изменений единовременный объем проверок уменьшается. В результате на отладку тратится меньше времени, которое можно перераспределить на добавление новых функций. Также возможно добавить проверку стиля кода, цикломатической сложности (чем ниже сложность, тем легче тестировать) и другие виды контроля. Это упрощает рецензирование кода (code review), экономит время и улучшает качество кода.

Continuos Integration упрощает процесс совместной работы разработчиков в одном репозитории, за счет автоматизации процесса тестирования, сборки и слияния различных веток разрабатываемого проекта.

Continuous Delivery

Процесс CD (Continuous Delivery) - процесс непрерывной доставки продукта, в котором происходит компиляция продукта, установка на тестовые среды и тестирование.

Непрерывная поставка обычно означает, что изменения разработчика в приложении автоматически тестируются на наличие ошибок и загружаются в репозиторий (например, GitHub или реестр контейнеров), где они затем могут быть развернуты в рабочей среде операционной группой. Цель непрерывной поставки — иметь кодовую базу, которая всегда готова к развертыванию в производственной среде, и гарантировать, что развертывание нового кода требует минимальных усилий.

Continuous Deployment

Процесс CD (Continuous Deployment) - процесс непрерывного развертывания (установки) продукта в продакшн среде реального использования. Часто запускается вручную, из-за рисков положить поставляемый сервис. Установкой может быть прогон playbook'ов Ansible, запуск контейнеров Docker. Так же в Continuous Deployment входит процесс получения обратной связи от потребителей развернутого продукта: ошибки, производственные метрики.