How to setup an infrastructure and routing for each environment

For Poq development and release cycle we use 3 types of environments: Development, Staging, Production. Development - environment for actual work in progress. Staging - environment for acceptance testing. Poq Staging is usually connected to Client Production, this allows minimizing risks of breaking an App in production as this way we eliminate potential Staging vs Production mismatches in Client end. Production - environment used to serve requests from live Applications.

As you can recall from How is BFC API hosted? section, generic Dev infrastructure looks as follows:

BFC API Infrastructure
BFC API Infrastructure

Staging has the same type of infrastructure as Dev, while Production infrastructure is usually cross regional. We use infrastructure as a code approach and Terraform is our tool for that. Which means that to add/update any instance in Azure you need to do that via a script.

With that said let us proceed with infrastructure setup for different environments: