3.5 Azure Blueprints, ARM Templates, and Bicep

Key Takeaways

  • ARM (Azure Resource Manager) templates are declarative JSON files that define infrastructure as code for repeatable, idempotent deployments.
  • Bicep is Microsoft's domain-specific language that compiles down to ARM JSON with cleaner syntax, modules, and type safety.
  • Azure Blueprints packages policies, role assignments, ARM templates, and resource groups; it is deprecated on July 11, 2026.
  • Template Specs and Deployment Stacks are the recommended replacements for Blueprints governance-as-code scenarios.
  • AZ-900 tests WHAT these tools do, not how to write them; you must know ARM uses JSON and Bicep compiles to ARM.
Last updated: June 2026

Quick Answer: ARM templates (JSON) and Bicep (a cleaner DSL that compiles to ARM) define Azure infrastructure as code for repeatable, idempotent deployments. Azure Blueprints bundles policies, roles, and templates but is being deprecated on July 11, 2026 in favor of Template Specs and Deployment Stacks.

Infrastructure as Code (IaC)

Infrastructure as Code (IaC) means provisioning and managing infrastructure through machine-readable definition files instead of clicking through portals. The same file deploys the same environment every time.

BenefitWhy it matters
ConsistencyDev, test, and prod come from one source of truth — no drift.
RepeatabilityRedeploy an identical environment in minutes after a disaster.
Version controlStore templates in Git for history, review, and rollback.
AutomationRun deployments inside CI/CD pipelines with no manual steps.
DocumentationThe template is the documentation of what exists.

ARM Templates (JSON)

ARM templates are JSON files that declare the resources to deploy. They are declarative — you state the desired end state and Azure Resource Manager works out the order and the API calls.

Template sectionPurpose
$schemaThe JSON schema describing the template language version.
contentVersionYour version string (e.g., 1.0.0.0).
parametersInputs supplied at deploy time (VM name, region).
variablesReusable values built from parameters.
resourcesThe resources to create or update.
outputsValues returned after deployment (e.g., a public IP).

Key properties: ARM is idempotent (re-running yields the same result, not duplicates), deploys independent resources in parallel, validates the template before any change, and offers what-if to preview changes.

Bicep

Bicep is Microsoft's domain-specific language (DSL) for Azure. Bicep files (.bicep) transpile (compile) into ARM JSON before deployment, so the runtime is identical — Bicep just makes authoring far easier.

AspectARM JSONBicep
SyntaxVerbose JSONConcise, declarative
File sizeLargeTypically much smaller
ModulesLinked templates (complex)Native module system
ToolingLimited IntelliSenseFull VS Code support, type checking
Learning curveSteeperGentler

On the Exam: You will NOT write template code. Know that ARM templates are JSON, Bicep compiles to ARM, both are declarative IaC, and both give repeatable deployments.

Azure Blueprints (Deprecating July 11, 2026)

Azure Blueprints packages several governance artifacts into one versioned, deployable definition so an entire compliant environment can be stamped out repeatedly. Microsoft has confirmed Blueprints will be deprecated on July 11, 2026; new work should use Template Specs and Deployment Stacks.

Blueprint artifactWhat it provides
Role assignmentsRBAC roles to grant
Policy assignmentsAzure Policies to enforce
ARM templatesResources to deploy
Resource groupsContainers to create
CapabilityBlueprints (deprecated)Replacement
Packaging templatesBlueprint definitionTemplate Specs
Managing a deployment as a unitBlueprint assignmentDeployment Stacks
Protecting deployed resourcesBlueprint locksDeployment Stack deny settings

Azure Management Tools Summary

ToolRole
Azure portalWeb GUI for managing resources
Azure CLICross-platform command line (az, Bash-friendly)
Azure PowerShellPowerShell module (Az)
Azure Cloud ShellBrowser shell with Bash AND PowerShell; needs a storage account to persist files
ARM templates / BicepNative IaC
TerraformThird-party multi-cloud IaC

On the Exam: Cloud Shell runs in the browser with no local install and supports both Bash and PowerShell, but it requires an Azure Storage account (file share) to persist your files between sessions.

Choosing the Right Tool — A Scenario

A team needs to stand up an identical three-tier web app in dev, test, and production with zero configuration drift. The portal is wrong here because manual clicks are not repeatable; the CLI and PowerShell are imperative scripts that can drift over time. The right answer is declarative IaC: author the resources once in Bicep, store the file in Git, and deploy it through a pipeline to all three environments. Because the deployment is idempotent, re-running it to apply a patch updates only what changed rather than creating duplicates, and what-if previews the impact before anyone commits.

Now suppose the same team must also stamp out, for each new business unit, a resource group plus the policies and role assignments that keep it compliant. Historically that was Azure Blueprints, which packaged all of those artifacts together. With Blueprints deprecating on July 11, 2026, the team should instead store the templates as Template Specs and deploy them through Deployment Stacks, using the stack's deny settings to protect the deployed resources the way Blueprint locks used to.

Common Traps

  • ARM is JSON, Bicep is a DSL that compiles to ARM — they are not rivals, Bicep sits on top of ARM.
  • Terraform is third-party and multi-cloud; ARM and Bicep are Azure-native.
  • Blueprints is being retired — if a question offers it as a new recommendation, prefer Template Specs and Deployment Stacks.
  • Cloud Shell still needs storage even though it is browser-based and install-free.
Test Your Knowledge

What file format are Azure Resource Manager (ARM) templates written in?

A
B
C
D
Test Your Knowledge

What is the relationship between Bicep and ARM templates?

A
B
C
D
Test Your Knowledge

Microsoft is deprecating Azure Blueprints. Which services are the recommended replacements?

A
B
C
D
Test Your Knowledge

Which statement about Azure Cloud Shell is correct?

A
B
C
D