Veltos.Tech

Разработка

CI/CD

Также называют: непрерывная интеграция и доставка, сиай сиди, автоматический деплой

Определение

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

Разберём аббревиатуру. CI, непрерывная интеграция, — это про то, что изменения каждого разработчика вливаются в общую ветку часто, и каждое вливание автоматически проверяется: сборка, юнит-тесты, линтеры, проверка типов, иногда сканирование зависимостей на уязвимости. CD, непрерывная доставка или развёртывание, — про то, что прошедшая проверки сборка автоматически уезжает дальше: на стенд для приёмки либо сразу в продакшн. Между этими двумя вариантами и проходит граница между «доставкой» и «развёртыванием».

Ценность для бизнеса измеряется не «современностью процессов», а частотой и стоимостью релизов. Когда выкладка занимает четыре часа ручной работы и делается по ночам, она случается раз в месяц, а значит правки копятся, релиз становится большим и рискованным, а откат — болезненным. Когда выкладка занимает десять минут и запускается кнопкой, релизы становятся мелкими, ошибки находятся быстрее, и любая правка доезжает до пользователя в день, когда её сделали. Это напрямую влияет на скорость реакции на рынок, а не только на комфорт команды.

Минимально полезная конфигурация для коммерческого проекта выглядит скромнее, чем принято думать: сборка на каждый пул-реквест, набор автотестов на критичные сценарии (оплата, регистрация, оформление заказа), отдельный стенд для приёмки, миграции базы в том же конвейере и возможность откатиться на предыдущую версию одной командой. Главная ловушка — конвейер без тестов: он ускоряет доставку в продакшн ровно так же надёжно, как и доставку ошибок туда же. Вторая — секреты и ключи в репозитории, которые вместе с автоматизацией разъезжаются повсюду.

Смежные термины

Услуги по теме

Почитать подробнее

Нужна помощь с этим на практике?

Мы не только объясняем термины, но и делаем это руками. Опишите задачу — разберём и пришлём смету по этапам.