Print this page

Тупой вопрос №1. Что такое CI/CD

11 February 2025

CI означает Continuous Integration — «Непрерывная интеграция», CD — Continuous Delivery/Deployment — «Непрерывная доставка/развертывание». В этой статье разберёмся, что скрывается за этими терминами и как CI/CD меняет подход к разработке и деплою.


Что такое CI/CD

CI/CD — подход, позволяющий регулярно сливать код, автоматически собирать, тестировать и разворачивать приложение. Это превращает длинные и медленные релизы в непрерывный, автоматизированный процесс.

Раньше — вручную

До CI/CD релизы выглядели так: программисты заливали код на DEV-сервер, тестировали, собирали пакет. Админы переносили пакет на STAGING, проводили финальное тестирование, и только потом вручную клонировали пакет на PRODUCTION, настраивали мониторинг и деплой. Всё это занимало много времени и было сложно сопровождать.

CI — непрерывная интеграция

Когда ты пушишь код в репозиторий, запускается автоматическая сборка и тесты, которые проверяют, не сломал ли ты что-то. Это даёт уверенность, что новый код интегрируется корректно.

CD — непрерывная доставка / развертывание

В CD части, после того, как твоя фича успешно интегрировалось с основным кодом, вся эта БАЛАЛАЙКА начинает автоматически разворачиваться там, где нужно - будь то тестовые серваки или продакшн. Если все хорошо, идет развертывание в STAGING. И ВОТ ТУТ в процесс подключаются, либо НЕ подключаются админы. В случае, если подключаются, то они тестируют как новое приложение работает на STAGING, если все "ОК", то нажимаю кнопочку "DEPLOY" и идет развертывания в PRODUCTION.  Это будет  Continuous DELIVERY. То есть тут мы ДОСТАВЛЯЕМ нашу фичу, до конечного пользователя. Да-да, та самая Delivery в CD.

Если админы НЕ включаются в эту схему, то все происходит от программистов до PRODUCTION, то это будет Continuous DEPLOYMENT. То есть, если полностью весь процесс автоматизирован, то это будет РАЗВЕРТЫВАНИЕ. Когда код или приложение доставляется на конечные сервера.

 

Pipeline — конвейер задач

Pipeline — это цепочка этапов: сборка → тесты → деплой. Как только ты пушишь в нужную ветку, весь процесс запускается автоматически. Можно настроить как простое, так и продвинутое: с проверками, условиями, откатом, отправкой уведомлений и пр.

Популярные инструменты

Часто используют GitLab CI/CD — встроенный CI/CD у GitLab, что удобно, особенно если код уже в GitLab. А ещё есть Jenkins, Travis CI, CircleCI, GitHub Actions — все они позволяют настраивать свои пайплайны под нужды проекта.

Зачем это вообще

CI/CD ускоряет разработку и деплой, снижает ручной труд, минимизирует риск сломать продакшн, позволяет часто и безопасно выпускать фичи. Если правильно настроить — релизы станут лёгкими и предсказуемыми.