Skip to main content

Multi-Environment Strategy

TL;DR — Use one ARM template with environment-specific parameter files. Promote from dev → staging → prod with the same security and compliance guarantees.

Environment Layout​

File Structure​

.azure/deployments/order-api/
├── template.json # Shared template
├── parameters.dev.json # Dev overrides
├── parameters.staging.json # Staging overrides
├── parameters.prod.json # Prod overrides
└── metadata.json

Parameter Differences​

ParameterDevStagingProd
environmentdevstagingprod
skuNameY1 (Consumption)EP1 (Premium)EP2 (Premium)
minInstances013
maxInstances102050
geoRedundancyfalsefalsetrue

Promotion Workflow​

  1. Dev — deploy freely, test features
  2. Staging — mirrors prod SKUs, integration tests
  3. Prod — requires PR approval + environment protection rules

GitHub environment protection rules enforce the gate:

EnvironmentRequired ReviewersBranch Restriction
azure-devNoneAny branch
azure-staging1 reviewermain only
azure-prod2 reviewersmain only