Термин

CI/CD

Автоматическая сборка, тестирование и развёртывание софта после каждого изменения кода. Снижает риск, что правка в одной части системы тихо сломает другую.

Обновлено

Что это значит

CI означает, что после каждого изменения кода проект автоматически собирается и прогоняются тесты. CD добавляет автоматическое развёртывание: сначала на staging, после одобрения - в продуктив.

Выигрыш не в скорости, а в том, что ошибка находится через минуты после изменения, пока автор ещё помнит контекст. Без автоматизации она находится через неделю, когда изменений уже двадцать.

Буква D в сокращении означает две разные вещи. При непрерывной доставке каждая версия готова к развёртыванию, но в продуктив её выпускает человек. При непрерывном развёртывании в продуктив автоматически уходит каждое изменение, прошедшее тесты. Для систем, связанных с учётной программой или выставлением счетов, обычно безопаснее первый вариант с ручным одобрением.

Как это работает на практике

В проектах на заказ, таких как CRM или интеграция через API, это условие поддерживаемости. Один разработчик справится и без этого, команда из трёх - уже нет.

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

При интеграциях с учётной системой, например при выгрузке счетов из интернет-магазина, в автотесты входят и реальные случаи из практики: кредит-нота, счёт в иностранной валюте, несколько ставок НДС в одном документе, округление. Иначе ошибка в одном из них проявится только при месячном закрытии, когда суммы не сходятся и приходится искать, какая версия её внесла.

На что обратить внимание

Разворачивать автоматически без тестов хуже, чем вручную: ошибка доезжает до клиентов быстрее. А если красные тесты привыкли прокликивать, они перестают быть сигналом и становятся техническим долгом.

Автоматическому развёртыванию нужен и путь назад. Если новая версия испортит данные, недостаточно откатить код, нужно уметь восстановить и базу. Для этого нужно резервное копирование данных перед каждым изменением структуры базы и порядок восстановления, который хотя бы раз действительно проверили, а не только описали.

Нужно объяснить термин на вашей конкретной ситуации? Консультации от 55 € / час без НДС, в зависимости от темы и сложности.