What is Azure Resource Manager and why it is so importance

Azure Resource Manager is one of the principal backbones in Azure. This is the place where all the deployments(deploying new and update resources) happen. Let’s talk a little bit about before Resource Manager. It was introduced back in 2014 that means before that azure doesn’t have any other deployment model? yes, there was/is another model which is classic deployment. Then why Azure had to come up with a new model?

In the Classic deployment model, we have no way to group all the resources to a single container. Each resource which provisioned act as single management. This makes very difficult to manage the resources. If you want to deploy resources, We have to create through the portal or automated script to finish the job. for delete the resources also you have to do individually. if we have fewer resources we can manage manually. what if we have hundreds of resources. Take an example, your organization got a new project and you deployed all the resources like hundreds. now you have to manage and monitor all individually and even for billing also it is difficult. And to delete all the resources related to that project you have to search through hundreds. To eliminate all these pain points Azure came with Azure Resource Manager Concept.

The Azure Resource Manager is a deployment and management service. Fancy observation isn’t ‍♂️. But what that means. you can think of the middle layer between your request and AZURE service. when you send any request through portal, CLI, Powershell, APIs, or any other SDKs the request first will go to Resource Manager as JSON file then the requested operation will execute.

Benefits of Azure Resource Manager:

we can manage our resources as a template(ARM Template in JSON) which is very easy to read and write. we can tag the resources as a group (think of a container) which helps a lot for monitoring, managing, and billing. we can apply access control to all the resources based on RBAC which is integrated with the Resource manager. we can include our template to the deployment pipeline so that resources will deploy automatically in an order which we defined. Even we can define dependencies in between. Means while deploying VM we mark the VM to a specific network subnet then it will wait until the network subnet deployed then again it starts to deploy the VM. But remember before it starts to deploy, it will check the authentication and authorization (whether you have a role to deploy or modify the resource).

To understand what I said earlier. when you creating any resource from the portal before submitting a request look for the “download a template for automation” look at the below screenshot for reference. if you click on that it will take you to the JSON template where you can see all the dependencies, parameters. you can look here for more example ARM templates.

In the same way, Powershell, CLI, SDKs also talk to Resource Manager to do the job. If you still in a confusion state please refer to Microsoft Page.

Recent Posts