The AzureCAT team actively assists customers with the largest, most complex projects built on the Azure platform. In addition to the super work the team does helping Azure customers the AzureCAT team have released a set of ARM templates which can be used as building blocks for ARM deployments. The team have made these templates available on GitHub and have also released a set of reference architectures that use these ARM building blocks.
What’s really nice, is that the ARM building blocks the AzureCAT team have created, are based on the work they have done with real customers. This means these templates are road tested and have a huge amount of customer learnings and good practices ‘baked in’ to them.
The AzureCAT team has made extensive use of nesting and arrays within their ARM templates to reduce some of the complexity inherent in ARM.
Even if you don’t use the templates directly, they are a great place to start when building your own templates and offer an interesting insight into learnings the AzureCAT team has gained over the last two years.
Current building blocks released are:
Building block | Link | Description |
---|---|---|
Virtual network | vnet-n-subnet | Used to create a virtual network with any number of subnets |
Network security groups | networkSecurityGroups | Used to create any number of NSGs, and link them to any number of NICs and/or subnets |
User defined routes | userDefinedRoutes | Used to create any number of UDR tables, and link them to any number of subnets |
Gateway connection | vpn-gateway-vpn-connection | Used to create a VPN or ExpressRoute gateway and necessary connections to another network |
Virtual machines | multi-vm-n-nic-m-storage | Used to create any number of VMs, each with any number of NICs, and any number of data disks |
Load balanced workload | loadBalancer-backend-n-vm | Used to create a load balancer with a collection of VMs in the backend |
DMZ | dmz | Used to create a DMZ between an Azure VNet and any other network, or the Internet |