Azure Resource Groups are a logical containers to keep related resources for an application or group of applications together.

You can decide how to assign your resources to resource groups based on what is the most appropriate for you and your organization and this decision is very pragmatic and is up to your team.

Here are some tips that you should consider when making the decision of the Resource Groups that you need and which Resources you want to put in a which Resource Group:

  • You should have in mind that all the resources in a group should have the same life-cycle.
  • An Azure Resource can only be assigned to one Azure Resource Group.
  • A resource can be added to or removed from an Azure Resource Group. Something to keep in mind is that each Resource should belong to an Azure Resource Group, so if you remove it from one Resource Group, you should add it to another one.
  • Almost all types of resource can be moved to different resource groups any time you want.
  • Regions are not going to restrict you. i.e.: resources in a resource group can be in different Azure regions.
  • One of the best things you get out of Azure resource groups is: you should use resource groups to control access to your resources.

After you get more familiar with Azure Resource groups you will have a more complete list of how you create and organize your Resource Groups that makes the most sense for your needs.



Microsoft Azure team has a hand full of guidelines to help you get the most out of the Azure 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). Using a template allows resources to be deployed in parallel, making it much faster than using a script executed sequentially.
  • Automate as much as possible by leveraging templates. You can include configurations for various extensions like PowerShell DSC and Web Deploy. This way, you don’t need any manual steps to create and configure the resources.
  • Use PowerShell or the Azure CLI to manage the resources, such as to start or stop a virtual machine or application.
  • Put resources with the same life cycle in the same resource group. In our example, above, what if the database is used by multiple applications? If that’s true, or if the database is going to live on even after the application is retired or removed, you don’t want to re-create the database every time you redeploy the application and its components. In that case, put the database in its own resource group.

You can find more Best Practices for creating Azure Resource Manager templates in this page:


Hope these tips will help you when working with Azure Resource Manager (ARM).