3.5 Azure Blueprints, ARM Templates, and Bicep

Key Takeaways

  • ARM (Azure Resource Manager) templates are JSON files that define Azure infrastructure as code for repeatable, consistent deployments.
  • Bicep is a domain-specific language (DSL) that simplifies writing ARM templates with cleaner, more readable syntax.
  • Azure Blueprints (being deprecated July 2026) packages role assignments, policy assignments, ARM templates, and resource groups into a single deployable definition.
  • Template Specs and Deployment Stacks are replacing Azure Blueprints for governance-as-code scenarios.
  • Infrastructure as Code (IaC) enables version control, repeatability, and automation of Azure deployments.
Last updated: March 2026

Azure Blueprints, ARM Templates, and Bicep

Quick Answer: ARM templates (JSON) and Bicep (simplified DSL) define Azure infrastructure as code. Blueprints package policies + roles + templates for repeatable governance (being deprecated in July 2026 — replaced by Template Specs and Deployment Stacks).

Infrastructure as Code (IaC)

Infrastructure as Code (IaC) is the practice of managing and provisioning infrastructure through machine-readable definition files rather than manual configuration.

Benefits of IaC:

  • Consistency — Deploy identical environments every time
  • Repeatability — Reuse templates across dev, staging, and production
  • Version control — Track changes to infrastructure in Git
  • Automation — Deploy and update infrastructure in CI/CD pipelines
  • Documentation — The template itself documents what is deployed
  • Validation — Test infrastructure changes before applying them

ARM Templates (JSON)

ARM templates are JSON files that define the resources to deploy in Azure. They are declarative — you specify WHAT you want, and Azure Resource Manager figures out HOW to deploy it.

ARM Template Structure

SectionPurpose
$schemaLocation of the JSON schema that describes the template version
contentVersionVersion of the template (e.g., "1.0.0.0")
parametersValues provided at deployment time (e.g., VM name, region)
variablesValues constructed from parameters for reuse in the template
resourcesThe Azure resources to create or update
outputsValues returned after deployment (e.g., IP address of created VM)

Key features:

  • Declarative — Define the desired state; ARM handles the how
  • Idempotent — Running the same template multiple times produces the same result
  • Parallel deployment — ARM deploys independent resources simultaneously
  • Validation — Templates are validated before deployment begins
  • What-if — Preview changes before applying them

Bicep

Bicep is Microsoft's domain-specific language (DSL) that provides a cleaner, more readable alternative to ARM JSON templates. Bicep files (.bicep) are compiled into ARM templates before deployment.

Advantages of Bicep over ARM JSON:

FeatureARM JSONBicep
SyntaxVerbose JSONConcise, clean syntax
File sizeLargeTypically 50-75% smaller
ModulesComplex linked templatesSimple module system
IntellisenseLimitedFull VS Code support
Type safetyMinimalStrong type validation
Learning curveSteeperEasier to learn

On the Exam: You do NOT need to write ARM templates or Bicep code. You need to know WHAT they do (define infrastructure as code), that ARM templates use JSON, that Bicep compiles to ARM templates, and that they enable repeatable deployments.

Azure Blueprints (Deprecating July 2026)

Azure Blueprints is a service that packages multiple governance artifacts into a single, versionable, deployable definition. It is being deprecated on July 11, 2026 — Microsoft recommends migrating to Template Specs and Deployment Stacks.

What Blueprints Include

ArtifactPurpose
Role assignmentsRBAC roles to assign
Policy assignmentsAzure Policies to enforce
ARM templatesResources to deploy
Resource groupsResource groups to create

Migration to Template Specs and Deployment Stacks

FeatureBlueprints (Deprecated)Template Specs + Deployment Stacks
Template packagingBlueprint artifactsTemplate Specs
Deployment managementBlueprint assignmentsDeployment Stacks
Resource protectionBlueprint locksDeployment Stack deny settings
VersioningBlueprint versionsTemplate Spec versions

Azure Management Tools Summary

ToolPurpose
Azure PortalWeb-based GUI for managing Azure resources
Azure CLICross-platform command-line tool (bash syntax)
Azure PowerShellPowerShell module for Azure management
Azure Cloud ShellBrowser-based shell (supports Bash and PowerShell)
ARM TemplatesJSON-based infrastructure as code
BicepSimplified DSL that compiles to ARM templates
TerraformThird-party IaC tool (supports Azure and other clouds)
Azure Mobile AppManage Azure resources from your phone

On the Exam: Azure Cloud Shell is available in the Azure portal and provides both Bash and PowerShell. It requires an Azure Storage account for persisting files. No local installation needed.

Test Your Knowledge

What format are 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

What is the main benefit of Infrastructure as Code (IaC)?

A
B
C
D