Examine Azure Resource Manager templates

Completed

Azure Resource Manager supports a declarative deployment methodology, based on deployment templates. A template is a JSON-formatted file that defines a collection of resources that you intend to provision together in the same resource group or a subscription. The resulting deployment populates the target resource group or the subscription according to the template’s content.

Templates offer some unique benefits comparing with traditional deployment methods that rely on the GUI or scripting and programming languages. Like scripts, they facilitate deployment of multicomponent solutions in an automated manner. However, unlike scripts, they don't explicitly specify individual steps required to provision these solutions. Instead, they simply define their intended end state. This way, they rely on the intelligence built into the Azure platform to deploy all necessary resources in the most optimal way. This results in minimized deployment time and reduces the potential for errors. If needed, you have the option to define dependencies between resources to control the resource-provisioning sequence.

Deployment templates are ideal if you need to provision multiple solutions with the same general design. For example, you can deploy the same template to separate resource groups, representing development, test, quality assurance, and production environments. To account for any potential differences between them, you can replace specific values in the template with parameters, and then assign values to these parameters at the deployment time.

Templates are idempotent, which means that you can deploy them multiple times to the same resource group with the same outcome. This is useful when you want to recreate an original deployment or remediate any issues resulting from post-deployment changes.

Templates support VM extensions, which allow you to configure operating systems within Azure VMs as part of their deployment. These extensions include configuration management services, such as PowerShell Desired State Configuration, Chef, or Puppet.