This is how we are implementing IaC in mazure-webapp at Microsoft Azure.
- One of our premises is that we want the same code as the production environment in our staging/development environment.
.
├── README.md
├── accounts
│ ├── project-web-app
│ │ ├── applications --> Contains all resources that are owned by an application
│ │ │ ├── web-app-api
│ │ │ └── web-app-v2-api
│ │ ├── data-stores --> Contains data stores resources that are shared or not by applications
│ │ │ ├── dynamodb
| | | ├── rds
│ │ │ └── redis
│ │ ├── environments --> Contains environments for one or more accounts
│ │ │ ├── prod.hcl
│ │ │ └── staging.hcl
│ │ └── services --> Contains resources that are shared across applications
│ │ ├── ec2s
│ │ └── eks
....
└── terragrunt.hcl