What is Azure Resource Manager?One of the basic concepts of the ARM model is Resource group. ARM or Azure Resource Manager provides a logical way to group Azure services. ARM makes it easy to manage Azure Resources created by us or someone who has access to the Azure Portal.
Earlier, Microsoft Azure used Azure Service Management (ASM) to do the same, currently refer as Classic Deployment model. Now ARM Model has replaced ASM in the Microsoft Azure portal.
When you create a Resource in Azure Portal, you will be asked to select a deployment model i.e. Classic Model or Resource Manage.
You should choose Resource Manager to create all your new Resources in Azure as this is the new deployment model.
On next step, you will be asked to either create new Resource Group or use an existing Resource group.
It is up to you whether you want to create a new group or want to use an existing group if it is related to that group.
What is a Resource Group?Any manageable item which is available through Azure is considered as a Resource. A Resource Group is the place where you can put your Azure resources. Any Azure services or resources can be logically stored in a resource group. You can create a Resource Group in Azure dashboard and in that Resource Group you may create multiple resources like Virtual Machines.
In Azure portal, we may have multiple components like Virtual Machine, Storage, Database, Web App and other services. We don't put these services separately, instead, ARM provides us with a facility to create a Resource Group and keep all Azure elements in a Resource Group.
We can create multiple Resource Group and each Resource Group may have their own Azure elements to full fill different business requirements.
Why use Resource Manager?There are several benefits of using Azure Resource Manager (ARM).
Here are some of the other major advantages to the Resource Manager model:
1. One of the benefits is quick deployment process.
The deployment is faster with ARM because resources can be deployed in parallel rather than sequentially.
2. Deploy resources together and easily repeat deployment tasks.
3. Deployment using templates - You no longer have to create a Virtual Machine in the portal, and wait for it to finish, and then create the next Virtual Machine, and so on. You can create a reusable (JSON) template that can be used to deploy all of the resources for a specific solution. You may also create multiple versions of a resource by using a template i.e. one for staging and another one for production or UAT.
4. You may define dependencies between resources to deploy them in the correct order.
5. Categorise resources to clarify billing and management.
Maximize the benefits of using Resource ManagerMicrosoft has several suggestions which will help you to maximize the use of the Resource Manager model when working with your applications and components.
Use templates rather than using scripting like PowerShell or the Azure Command-Line Interface (CLI). Templates allow to create multiple versions of a resource and deploy it parallelly.
Migration from Classic Model i.e. Azure Service Management to Azure Resource Model (ARM) is possible. You can migrate your assets from the classic model to the Azure Resource Manager deployment model.
For storage accounts, you can use AzCopy to copy blobs, files, and tables to a new Azure Resource Manager storage account. Note that tables must be exported from the classic account and then imported into the Resource Manager account.
For virtual machines, you can shut them down and copy their VHD file to a new Resource Manager and then use the VHD file to re-create the VM.
Azure Resource Manager Provides following four roles
Owner - can manage everything, including access
Contributor - can manage everything except access
Reader - can view everything, but can't make changes
User Access Administrator - can manage user access to Azure resources
If you are new to Microsoft Azure, then read this blog - What is Azure?