Карта / CI/CD / Pipeline

Pipeline

Pipeline — полная последовательность этапов от коммита кода до его попадания в продакшен. CI (Continuous Integration) — автоматическая проверка кода (тесты, сборка), CD (Continuous Delivery/Deployment) — автоматическая доставка проверенного кода до пользователей.

commit тесты build staging prod
Копнуть глубже

Continuous Delivery vs Continuous Deployment — частая путаница в терминах:

  • Continuous Delivery — каждое изменение готово к выкладке в прод в любой момент, но финальный шаг (нажать кнопку “Deploy”) делает человек.
  • Continuous Deployment — изменение, прошедшее все проверки, автоматически уезжает в прод, без ручного шага.

Staging-окружение — копия продакшена для финальной проверки перед реальным выкатом — позволяет поймать проблемы, которые не видны в тестах (интеграция с реальными внешними сервисами, конфигурация окружения), не рискуя реальными пользователями.

Откат (rollback) — обязательная часть зрелого pipeline: если новая версия в проде сломалась, должен быть быстрый автоматизированный способ вернуться к предыдущей рабочей версии — обычно через повторный деплой предыдущего образа/тега, без необходимости разбираться и чинить вживую под давлением инцидента.

Чем больше автоматизации в pipeline — тем быстрее и безопаснее доставка изменений. Ручные шаги — источник ошибок (“забыли прогнать тесты”, “задеплоили не туда”) и медленнее автоматизированных — поэтому зрелые команды стремятся автоматизировать весь путь от коммита до прода, оставляя человеку только финальное решение “выкатывать сейчас или нет”.

🎤 Закрыл тему, если можешь объяснить:
• из каких этапов состоит типичный pipeline;
• разницу Continuous Delivery и Continuous Deployment, и зачем нужен staging (если дошёл до 2-го слоя).