A deployment of App Service-hosted workloads typically experiences a separation of duties and lifecycle management in the area of prerequisites, the host network, the App Service plan, and finally the workload itself. This reference implementation is similar. Also, be aware our primary purpose is to illustrate the topology and decisions of a baseline cluster. We feel a “step-by-step” flow will help you learn the pieces of the solution and give you insight into the relationship between them. Ultimately, lifecycle/SDLC management of your cluster and its dependencies will depend on your situation (team roles, organizational standards, tooling, etc), and must be implemented as appropriate for your needs.
While the code here is located in one folder in a single repo, the steps are designed to mimic how an organization may break up the deployment of various Azure components across teams, into different code repos or have them run by different pipelines with specific credentials.
The code here is purposely written to avoid loops, complex variables and logic. In most cases, it is resource blocks, small modules and limited variables, with the goal of making it easier to determine what is being deployed and how they are connected. Resources are broken into separate files for future modularization or adjustments as needed by your organization.
This section is organized using folders that match the steps outlined below. Make any necessary adjustments to the variables and settings within that folder to match the needs of your deployment.
Clone this repo, install Azure CLI, install Bicep.
# Pass parameters values in parameters.azuredeploy.json
ResourceGroupName=ResourceGroupName
ResourceGroupLocation='West Europe'
az group create --name $ResourceGroupName --location $ResourceGroupLocation
az deployment group create --name $ResourceGroupName-deployment --resource-group $ResourceGroupName --template-file azuredeploy.bicep --parameters parameters.azuredeploy.json
This is a manual step that is required to complete the private endpoint connection.
az network front-door frontend-endpoint show --front-door-name <front-door-name> --name <front-door-frontend-endpoint-name> --resource-group <front-door-resource-group>```
The steps above assume that you will be creating the Hub and Spoke (Landing Zone) Network and supporting components using the code provided, where each step refers to state file information from the previous steps.
To deploy App Service into an existing network, use the App Service for Existing Cluster folder. Update the “existing-infra.variables.tf” file to reference the names and resource IDs of the pre-existing infrastructure.