The Azure IaC Workshop
A self-paced, interactive tour of the three ways to describe Azure infrastructure as code: ARM Templates, Bicep, and Terraform / OpenTofu (plus the azapi provider and a head-to-head comparison).
Every module mixes four things:
- Slides — click ▶ Present slides at the top of any module to turn its content into a full-screen deck (arrow keys or the on-screen buttons to move, Esc to exit). Useful for following along in a live session, or just for skimming the highlights.
- Docs — the same content, as a normal scrolling reference page you can search and link to.
- A lab — a small in-browser code editor with a real (if narrow) task and instant feedback. Nothing you type is sent anywhere or executed against a real Azure subscription — checks run entirely in your browser against the text you wrote.
- A quiz — a handful of multiple-choice questions with an explanation on every answer.
There’s no login and nothing is saved between visits — refreshing a page resets its lab and quiz, so feel free to retry as many times as you like. Modules are numbered in a suggested order, but every page stands on its own if you want to jump straight to one tool.
Modules
Module 0
Why IaC
Pros, cons, and the vocabulary (declarative, idempotent, drift) the rest of the workshop assumes.
Module 1 · optional
ARM Templates
Azure's native JSON format — what everything else compiles down to. Short on time? Skip to Bicep.
Module 2
Bicep
Microsoft's DSL for Azure, and the limits of its what-if previews.
Module 3
Terraform
Multi-cloud, state files, and why
terraform plan is so well regarded.Module 4
OpenTofu
The MPL-licensed, Linux Foundation-governed fork of Terraform.
Module 5
azapi Provider
Day-0 Azure coverage inside Terraform, straight from the ARM API.
Module 6
Comparison
The full feature matrix and the same storage account, deployed four ways.
Module 7
Capstone
One resource, every tool, one mixed final quiz.