Most people start with Azure using the Azure Portal – but if you want to scale, if you have a big deployment or you want to have continous control over your environment, you should have a look into Azure Resource Manager aka ARM Templates.
What is the Azure Resource Manager?!
There is an important difference between Azure Resource Manager and the ARM Templates. Sometime people are mixing this up, this is why I want to cover this first.
The Azure Resource Manager is the Deployment and Management Service that is running in Azure. It is the layer between all management tools and ways, like PowerShell, CLI, Portal, SDKs, etc., and the Resources in Microsoft Azure.
The Resource Manager is a globally scaled API, available at management.azure.com which is used to control Azure. If you want to check this, just do an easy lookup and you will find out that the ARM API is a global scaled setup of Cloud Services, using Traffic Managerand multiple layers of abstraction:
Having seen this, no we have the open question: What is the difference to ARM templates? Or, where do they fit in?
Easy answer … the Azure Resource Manager can be used without Templates, e.g. via the Portal. But ARM Templates have to be processed by the Azure Resource Manager. So ARM Templates are another way of input.
Why use ARM Templates?
ARM Templates or Azure Resource Manager Templates are input into the Azure Resource Manager. While you are generating a lot of PUT actions to the API, while using the Azure Portal or running PowerShell commands one after each other, with ARM Templates you create a single call with all information at once.
The benefit of this is that out of the Template the Resource Manager will orchestrate all necessary actions. So if it is possible to deploy resources at the same time, it will be done. So instead of waiting for loops in a PowerShell script you could create hundreds of services at once.
Another good thing is, that all ARM Templates are validated before execution. So if there is a missing dependency, a problem with Policies or any other issue, the deployment wont start. Compared to sequential deployments with PowerShell or CLI where resources are created one by one and it fails at a later point without cleaning up, that is pretty nice.
There are many more pros of using templates, like repeatable deployments, change tracking in file, etc.
But to be honest … it is also not that easy to get started with the declarative form of ARM.
How to get started with ARM Templates?
If you want to create a template deployment, one way could be a Template Deployment from the Azure Portal:
Here you start with a blank file, that only gives the basic structure of the Template. As you can see templates are written in an JSON notation.
You can also go to the Quickstart Templates where can find many different precreated templates.
Another way to get into contact with Templates, is to have a look into existing Resources in Azure. There are actually two options to get ARM Templates out of them. One option is the “Template Export” which will show an ARM Template for the current state. Unfortunately in most cases not everything inside a resource group can be exported in a template.
Another option is a look into the deployments section. Here you can find a deployments that have been executed to this Scope. The good thing about the Deployments section is, that it states the input at the time of initiation. No matter what happened in the portal afterwards. The export would include those changes, the Deployment does not:
When you open the Deployment you can find the original template and parameters. So this can also be used to figure out any changes made afterwards.
Also this week there were many news around Microsoft Azure! Here as always the overview for you: Public preview: SAP S/4HANA events are now available on Azure Event Grid Forrester Total Economic Impact study: Azure Arc delivers 206 percent ROI over 3 years General availability: Azure Sphere OS version 22.10 Generally available: Azure Communication Services…
Also this week there were many news around Microsoft Azure! Here as always the overview for you: Generally available: SFTP support for Azure Blob Storage Leverage SFTP support for Azure Blob Storage to build a unified data lake Azure Virtual WAN simplifies networking needs General availability: Azure Premium SSD v2 Disk Storage General availability: OpenTelemetry…
Also this week there were many news around Microsoft Azure! Here as always the overview for you: Generally available: Kusto Trender Public preview: Enhanced soft delete for Azure Backup Public preview: Multi-user authorization for Backup vaults Public preview: Immutable vaults for Azure Backup General availability: Azure NetApp Files application volume group for SAP HANA Generally…
Also this week there were many news around Microsoft Azure! Here as always the overview for you: Scalable management of virtualized RAN with Kubernetes Cost optimization using Azure Migrate Public preview: Azure Firewall Basic Generally available: Query Store hints Azure SQL Database, Azure SQL Managed Instance Azure Firewall Basic now in preview Microsoft and INT…
Also this week there were many news around Microsoft Azure! Here as always the overview for you: Public preview: Policy analytics for Azure Firewall General availability: ExpressRoute FastPath support for Vnet peering and UDRs Strengthen your security with Policy Analytics for Azure Firewall Ensure zone resilient outbound connectivity with NAT gateway Azure SQL—General availability updates…
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here:
Cookie Policy
2 Comments
[…] we have discussed in the last [CODE] post, it is pretty awesome to work with Azure Resource Manager Templates. But besides downloading or […]
[…] go into the question if ARM Templates are the right thing to learn … I will give it a clear […]