Azure Resource Manager and ARM Templates

🏢 Root management group 📁 MG: Production 📁 MG: Development 🔑 Sub: Web🔑 Sub: Data🔑 Sub: Dev 📦 rg-web📦 rg-api📦 rg-test 🖥️🗄️🌍🖥️🧪 Policy set here… 📜 Policyis inherited byeverything below Management groups → subscriptions → resource groups → resources
Every request, from portal, CLI or template, goes through Azure Resource Manager, the head chef.

😟 THE PROBLEM

Resources made in different tools end up inconsistent and hard to control.

😊 THE SOLUTION

Rely on Azure Resource Manager and declarative templates.

  • Different tools, different results✓ All go through ARM
  • Access checked inconsistently✓ ARM enforces RBAC and Policy
  • Redeployments create duplicates✓ Idempotent templates
🛠️ Solved with: Azure Resource Manager · ARM templates
Try it yourself in the Azure simulator No Azure account needed. Cloud Shell: deploy a web app ⌨️ Try it ❯
Module 3: Management & Governance ⏱ 6 min read Updated 11 Nov 2026

Quick answer

Azure Resource Manager (ARM) is the deployment and management service for Azure. Every request, from the portal, CLI, PowerShell, SDKs or templates, goes through ARM, which authenticates and authorises it and then creates, updates or deletes resources. ARM templates are declarative JSON files that describe the resources to deploy. Bicep is a simpler language that compiles to ARM templates.

Exam objective: 3.3.5 Describe Azure Resource Manager (ARM) and ARM templates. (Skills measured as of July 20, 2026)

Start with a question

You click Create in the portal and a teammate runs az vm create. Who actually builds the VM?

Azure Resource Manager builds both. Every tool talks to the same front door.

Explain it like I’m 10

The technical explanation

  1. 1 Tools

    Portal, Azure CLI, Azure PowerShell, SDKs, REST, templates.

  2. 2 Azure Resource Manager

    Authenticates (Entra ID), authorises (RBAC), checks Azure Policy.

  3. 3 Resource providers

    Microsoft.Compute, Microsoft.Storage, Microsoft.Network…

  4. 4 Resources

    Created, updated or deleted consistently.

Every request goes through Azure Resource Manager

Real-world business scenario

Enterprise

A SaaS start-up

The problem
Environments were inconsistent because some resources were made in the portal and others by script.
What they used
ARM templates (later Bicep) for every environment, deployed by pipeline.
Why that choice
Declarative, idempotent templates processed by ARM give identical results.
The result
Dev, test and production finally matched.

When to use it and when not to

✓ Use it when…

  • Use templates for repeatable, reviewable deployments.

✕ Think twice when…

  • Hand-writing large ARM JSON for new projects (prefer Bicep).
Ready for more?The full lesson adds the technical explanation, when to use it, interview questions and revision notes.

Interview preparation

Say your answer out loud first, then open the model answer. Interviewers care more about your reasoning than the exact words.

Beginner What is Azure Resource Manager?

Model answer

The layer that handles every request to create, change or delete Azure resources, whichever tool I use. It checks who I am and whether I'm allowed, then makes the change.

Intermediate What are the benefits of Azure Resource Manager?

Model answer

Manage infrastructure with declarative templates; deploy, manage and monitor resources as a group; redeploy consistently; define dependencies so resources deploy in the right order; apply access control through RBAC; apply tags; and see costs by tag.

Experienced developer ARM templates or Bicep for new projects?

Model answer

Bicep. It has the same capabilities as ARM templates (it compiles to them) but with cleaner syntax, modules, type safety and better tooling. Existing ARM JSON can be decompiled into Bicep.

Test yourself with exercises

3 original practice questions in the AZ-900 style. Pick your answers, then check them. You will see why each option is right or wrong. Score 75% or more and this topic is marked complete.

Question 1

Question 1 of 3

Which service is the deployment and management layer for all Azure requests?

Question 2

Question 2 of 3

ARM templates are written in which format?

Question 3

Question 3 of 3

You deploy the same ARM template twice. What happens the second time if nothing changed?

Quick revision

Key points

  • ARM processes every Azure management request.
  • Provides consistent authentication, RBAC, policy and tagging.
  • ARM templates = declarative JSON.
  • Templates are idempotent and handle dependencies.
  • Bicep compiles to ARM templates.

Important terminology

Azure Resource Manager
The deployment and management layer that processes every Azure management request.
ARM template
A declarative JSON file that defines Azure resources and their configuration.
Idempotent
Deploying the same template many times gives the same result.

Common mistakes

  • Thinking the portal and CLI use different back ends. They both use ARM.

Exam tips

  • "Deployment and management service for Azure" = Azure Resource Manager.
  • "Declarative JSON template" = ARM template.

Five quick revision questions

  1. 1.Which service processes all Azure management requests?Show

    Azure Resource Manager.

  2. 2.In what format are ARM templates written?Show

    JSON.

  3. 3.Are ARM templates declarative or imperative?Show

    Declarative.

  4. 4.What does idempotent mean?Show

    Deploying the same template repeatedly gives the same result.

  5. 5.Which language compiles to ARM templates?Show

    Bicep.

Official references

Make it stick: play a quick gameSort It, Match the Pairs, Lightning Round and Who Am I? Earn XP and badges. Play ❯

Finished this lesson? Tick it off. Your progress is saved in this browser.

Next up: Azure Advisor