Ответ
В типичном проекте используются следующие среды (стенды), выстроенные в pipeline доставки:
Основные среды:
- Development (Dev) — среда для активной разработки. Разработчики разворачивают и тестируют новые фичи и исправления. Часто нестабильна.
- Quality Assurance (QA) — выделенная среда для тестировщиков. Содержит стабильную сборку для проведения функционального, интеграционного и регрессионного тестирования.
- Staging / Pre-production — среда, максимально приближенная к Production (конфигурация, данные, инфраструктура). Используется для:
- Финального приемочного тестирования (UAT).
- Проверки миграций и развертывания.
- Performance-тестирования на реалистичных данных.
- Production (Prod) — боевая среда для реальных пользователей.
Вспомогательные среды:
- Preview / Feature Branch — временные среды для проверки конкретных pull request'ов или веток.
- Hotfix — изолированная среда для срочной разработки и проверки критических исправлений.
Пример конфигурации в CI/CD (GitLab CI):
stages:
- build
- test
- deploy
deploy:dev:
stage: deploy
environment: dev
script: ./deploy.sh dev
deploy:qa:
stage: deploy
environment: qa
script: ./deploy.sh qa
only:
- main
Почему такая структура? Она обеспечивает изоляцию изменений, снижает риски при выпуске в Prod и дает возможность тестировать на разных этапах.