In 2016, the AzureCAT patterns & practices team created a set of Azure Resource Manager template building blocks with the goal of simplifying resource deployment. Each building block contains a set of pre-built templates that deploy sets of resources specified by separate parameter files.
The building block templates are designed to be combined together to create larger and more complex deployments. For example, deploying a virtual machine in Azure requires a virtual network, storage accounts, and other resources. The virtual network building block template deploys a virtual network and subnets. The virtual machine building block template deploys storage accounts, network interfaces, and the actual VMs. You can then create a script or template to call both building block templates with their corresponding parameter files to deploy a complete architecture with one operation.
While developing the building block templates, p&p designed several concepts to extend Azure Resource Manager template functionality. In this series, we will describe several of these concepts so you can use them in your own templates.
These articles assume you have an advanced understanding of Azure Resource Manager templates.