Pipeline
Pipeline — полная последовательность этапов от коммита кода до его попадания в продакшен. CI (Continuous Integration) — автоматическая проверка кода (тесты, сборка), CD (Continuous Delivery/Deployment) — автоматическая доставка проверенного кода до пользователей.
Копнуть глубже
Continuous Delivery vs Continuous Deployment — частая путаница в терминах:
- Continuous Delivery — каждое изменение готово к выкладке в прод в любой момент, но финальный шаг (нажать кнопку “Deploy”) делает человек.
- Continuous Deployment — изменение, прошедшее все проверки, автоматически уезжает в прод, без ручного шага.
Staging-окружение — копия продакшена для финальной проверки перед реальным выкатом — позволяет поймать проблемы, которые не видны в тестах (интеграция с реальными внешними сервисами, конфигурация окружения), не рискуя реальными пользователями.
Откат (rollback) — обязательная часть зрелого pipeline: если новая версия в проде сломалась, должен быть быстрый автоматизированный способ вернуться к предыдущей рабочей версии — обычно через повторный деплой предыдущего образа/тега, без необходимости разбираться и чинить вживую под давлением инцидента.
Чем больше автоматизации в pipeline — тем быстрее и безопаснее доставка изменений. Ручные шаги — источник ошибок (“забыли прогнать тесты”, “задеплоили не туда”) и медленнее автоматизированных — поэтому зрелые команды стремятся автоматизировать весь путь от коммита до прода, оставляя человеку только финальное решение “выкатывать сейчас или нет”.
• разницу Continuous Delivery и Continuous Deployment, и зачем нужен staging (если дошёл до 2-го слоя).