Новую инфраструктуру следует подключать на этапе развертывания (Deployment) пайплайна. Её необходимо готовить заранее.
Основные причины для ранней подготовки инфраструктуры:
- Стабильность: Тестирование приложения на планируемой инфраструктуре на ранних этапах (тестирование, staging) выявляет несовместимости или проблемы конфигурации до продакшена.
- Скорость: Процесс создания инфраструктуры часто занимает неопределенное время. Готовность инфраструктуры до развертывания ускоряет релиз.
- Идемпотентность: Использование Infrastructure as Code (IaC) позволяет создавать или обновлять инфраструктуру детерминированным образом, минимизируя ручные ошибки.
- Безопасность: Заранее подготовленная инфраструктура проходит необходимые проверки безопасности и аудиты.
Этапы пайплайна и роль инфраструктуры:
- Build: Компиляция кода, создание артефактов (Docker-образы, бинарники). Инфраструктура сборки (CI/CD runner) уже должна быть готова.
- Test: Запуск Unit, Integration, End-to-End тестов. Для интеграционных/E2E тестов может понадобиться часть или полная целевая инфраструктура (тестовые базы данных, сервисы-зависимости). Это может быть временная или постоянная тестовая среда.
- Deploy (Staging): Развертывание артефактов на промежуточную (staging) среду, максимально приближенную к продакшену. На этом этапе целевая инфраструктура (staging) должна быть полностью готова.
- Deploy (Production): Развертывание на продакшен среду. **Целевая инфраструктура (pro