CI/CD (Continuous Integration / Continuous Deployment) — это набор практик автоматизации, направленных на минимизацию ручного вмешательства в процесс выпуска программного обеспечения. Continuous Integration (CI) отвечает за автоматическую сборку и тестирование кода при каждом коммите в репозиторий. Continuous Deployment (CD) обеспечивает автоматизированную доставку изменений на тестовые или продуктовые серверы.
Процесс работает через конвейеры (pipelines). Когда разработчик выполняет git push, запускается агент (например, GitLab Runner или Jenkins Agent), который изолированно собирает проект, запускает линтеры и unit-тесты. Если тесты проходят успешно, артефакт в виде Docker-образа или бинарного файла передается на следующий этап для развертывания.
Как работает
Применение CI/CD необходимо в командах с высокой частотой релизов. Это исключает ошибки ручного переноса данных и позволяет находить баги на ранних этапах. Вместо ручного копирования файлов по SSH, система использует декларативные файлы конфигурации, такие как .gitlab-ci.yml или Jenkinsfile.
Статистика показывает, что внедрение CI/CD сокращает время цикла (lead time) от написания кода до продакшена с недель до нескольких часов. В компаниях уровня Amazon количество автоматических деплоев может достигать тысячи раз в сутки.