
How ARM works (control/management plane)
When you submit a management operation from the Azure Portal, Azure CLI, Azure PowerShell, REST API, or an SDK, the request follows this path:- The client sends the request to Azure Resource Manager.
- ARM authenticates and validates the request, applies Role-Based Access Control (RBAC) checks, and enforces policy.
- ARM orchestrates calls to the appropriate resource providers to create, update, or delete resources.
- ARM maintains consistency, dependency resolution, and idempotency for deployments.
Key capabilities ARM provides:
Previously, Azure used the Azure Service Management (ASM or “classic”) model. ASM lacked many ARM features such as resource groups, RBAC, locks, and tags. ARM is the modern, recommended resource management model.
ARM templates: declarative infrastructure as code
ARM templates are JSON-based, declarative files that describe the resources you want to deploy and their configuration. You define the desired state, and ARM takes care of creating or updating resources to reach that state. Important characteristics of ARM templates:- Declarative: Describe what you want, not the steps to create it.
- Idempotent: Running the same template repeatedly produces the same result.
- Parameterized: Accept inputs to reuse templates across environments.
- Composable: Support linked templates and nested deployments for complex scenarios.
- Deployment scopes: Resource group, subscription, management group, and tenant.
$schema: URI that defines the template schemacontentVersion: Template versionparameters: Inputs to customize the deploymentvariables: Derived or constant values used within the templateresources: The resource definitions to create or updateoutputs: Values returned after deployment
How to deploy ARM templates
You can deploy ARM templates from multiple tools and scopes. Common commands:Bicep — a concise authoring experience
While ARM templates are JSON-based, Microsoft provides Bicep, a domain-specific language that offers a more concise and readable syntax and compiles to standard ARM JSON templates.ARM is the control/management plane. Data plane operations (for example, storage data reads/writes) use separate service endpoints and authentication models; ARM controls resource creation, configuration, and permissions.
Summary
Azure Resource Manager is the central management plane for Azure. It validates and authorizes management requests, enforces RBAC and policies, and orchestrates resource provider operations to create, update, or delete resources. ARM templates (or Bicep) let you define those resources declaratively so you can automate, version, and reuse your infrastructure deployments.Links and references
- Azure Resource Manager overview: https://learn.microsoft.com/azure/azure-resource-manager/management/overview
- ARM template structure and reference: https://learn.microsoft.com/azure/azure-resource-manager/templates/overview
- Bicep overview: https://learn.microsoft.com/azure/azure-resource-manager/bicep/overview
- Azure CLI: https://learn.microsoft.com/cli/azure/
- Azure PowerShell: https://learn.microsoft.com/powershell/azure/overview