Azure is Microsoft’s cloud computing platform for PAAS, IAAS and SAAS.
If you are a Dev or an IT Pro you can be productive with MS Azure using Azure’s integrated tools, pre-built templates, and managed services. It makes it easier to build your applications faster, using skills developers and IT professionals already have and technologies they already know.
Azure groups services into categories in the Management Portal. The Management Portal is what you use to manage most (but not all) services in Azure. Just to give you an idea I have highlighted some of the services available. By no means these are all the services. What we are going to be focusing today is the Compute section and specifically virtual machine.
Why Azure Resource Manager
Azure Resource Manager (ARM) provides an easy interface for users to provision resources in Azure where you can manage everything related to the services you are offering. Regardless of the interface you’re using to manage resources, it’s important to understand the ARM architecture, so that you can be more effective in your work.
ARM is a big topic and to understand it, we will have a series of blog posts that will explain each component of ARM and what you need to do to create and manage your Azure resources.
Firstly, let’s define the terminology, so we are all on the same page.
- Resource – An item that you manage through Azure. Some resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more.
- Resource group – A container that holds related resources for an Azure solution. The resource group can include all the resources for the solution, or only those resources that you want to manage as one group. You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization.
- Resource provider – A service that supplies the resources you can deploy and manage through Resource Manager. Each resource provider offers operations for working with the resources that are deployed.
Benefits of ARM
Everything you create as a resource will pretty much be in ARM, because there are so many benefits to use ARM to manage your work. It makes it so much easier to view and control your solution in one place. Some of the benefits are:
You can deploy, manage, and monitor all your resources as a group, rather than handling each resource individually.
You can manage your infrastructure through templates rather than scripts.
You can define the dependencies between resources so they are deployed in the correct order.
You can repeatedly deploy your solution throughout the development lifecycle and have confidence your resources are deployed in a consistent state.
You can assign individuals to manage your resource group rather than giving permissions to manage your entire Azure tenant.
You can get granular billing and usage reports for your resource groups and resources. This is a great feature and always helps me to decide how to make configuration changes to balance the billing cost vs. performance.
The following tips help you better implement a Resource Manager:
- Define and deploy your infrastructure through the declarative syntax in Resource Manager templates, rather than through commands.
- Define all deployment and configuration steps in the template, no more manual steps are needed.
- Run imperative commands to manage your resources, such as to start or stop an app or machine.
- Arrange resources with the same lifecycle in a resource group. Use tags for all other organizing of resources.