Привет, сталкивался с двумя подходами в CI/CD для программирования инфраструктуры:
- Когда в одном репозитории создаются несколько branch’ев, каждый их которых управляет отдельным окружением (средой/environment). Например dev, uat, qa, prod и т.п. Каждый из этих branch’ев обновляется независимо от других.
- Когда в одном репозитории есть один master/main branch, а разделение на окружения делается с помощью переменных, т.е. отдельный файл с переменными для окружения dev, другой файл для qa и т.д. При этом код инфраструктуры один.
Вопрос, какой подход какие имеет недостатки и достоинства, в каких случаях что лучше использовать, какие есть best practices? Как между ними выбирать, если программируешь инфраструктуру с нуля?