Do you want to make management of Azure Resources more efficient? Actually, you can deploy many Azure Resources such as:
- Virtual Machine,
- SQL Database,
- Or whatever component you need to deploy
So you deploy and configure each of these Azure Resource individually. It can be quite complicated in order to manage many resources in the Azure web interface. If you want fast and more repeatable deployments, you have to make sure that you coordinate all of that information together. That’s the main goal of Azure Resource Manager. Let’s see what is ARM!
Azure Resource Manager
The Azure Resource Manager (ARM) is really the replacement for the old Azure Service Manager (ASM). For those of you who are new in Azure, you are using the new Azure portal https://portal.azure.com and you probably don’t know the old Azure portal https://manage.windowsazure.com. This portal can be built using Windows Azure Pack as well.
The Azure Service Manager (ASM) was very limited and not easy in order to manage Azure Resource. ASM provided only the classic deployment model. In this model, each resource existed independently. To deploy a solution, it was not easy because you had to create each resource individually through the classic portal in the correct order. To remove a solution, you had to delete each resource individually. As you can imagine, there was no easy way to group resources together. That’s the reason why Microsoft introduced the concept of “Resource Group”.
In 2014, Azure introduced Resource Manager, which added the concept of resource group. As a sysadmin, you probably want to make sure that all your Azure Resources work fine. So how to make sure that you can deploy a set of resources in the correct order, how can you monitor these resources, how can you set permissions on the collection, and finally how your resources communicate?
Resource group allows you to place all of your resources in a “container”. Let’s imagine that you want to deploy a webshop using Azure. You will have multiple components to deploy such as for example: a database, a load balancer and a webserver. Instead of creating these components individually, you will create them inside a resorce group in Azure. Now, all the required resources will be managed as a group and this logical unit will save time and effort. You will define dependencies between resources, and your resources will be tagged in order to clarify billing and costs on your subscription.
Let’s take a look at the Resource Group in the portail. You just need to go to https://portal.azure.com
Now you can easily create your first Resource Group. Click “Resource Groups” and click “Add”. Next, you must type the Resource Group name, select your Azure subscription and the location. Your Azure Resources can live in the same Resource Group but they don’t have to live in the same location.
In my case, I have multiple Resource Groups. So let’s examine the “RG002” Resource Group. What you can notice is that you have all the Resources in the same group. There are VM, network, Public IP Address, …
Let’s imagine that I want to move a Resource from one Resource Group to another Resource Group, I just have to click “Move” and I can easily organize my resource.
Another great advantage coming from ARM is the ability to create templates which can then be used to for repeat deployment. These Templates are built as a JSON file that declaratively defines the deployment and configuration of all the Azure Resources within a single Azure Resource Group. All the resources declared in the template go under one resource group.
If you can’t create your own templates, there are many templates already created by the community. So you can use them: https://azure.microsoft.com/en-us/resources/templates/
Here I want to deploy a Web App with a SQL Database. I just click on “Deploy to Azure”:
Next, I can see that the template includes 9 resources. I must select a Resource Group, and I also can edit the template before starting the deployment:
Now, I can easily modify the JSON file to suit my needs:
More information about ARM Templates: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authoring-templates
Finally, Azure Resource Manager and the concept of Resource Groups not only simplify the provisioning of Azure Resources. ARM added few benefits such as:
- Organize All Azure Resources into a single group
- Manage and monitor Azure Resources together
- Use ARM templates to define your deployments
- Use RBAC in order to secure access
- Add tags to each Azure Resource inside a Resource Group
- Clarify your organization’s billing
For more information about Azure Resource Manager, check this blog: https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview