iac-bicep
Installation
SKILL.md
Bicep / ARM
Bicep is Azure's first-party IaC language. It compiles to ARM JSON, which is what Azure Resource Manager actually deploys. If your stack is Azure-only, Bicep is usually the better choice than Terraform: same-day support for new resource types, no state file to manage, native what-if, and tighter integration with Azure Policy and deployment stacks.
When not to choose Bicep:
- Multi-cloud — Bicep only does Azure.
- You need 3rd-party providers (GitHub, Datadog, Cloudflare, etc.) — Terraform's ecosystem is much richer.
- The team is already heavy on Terraform and the Azure-only sub-portion isn't worth a second tool.
How Bicep relates to ARM
ARM is the underlying API and template format. Bicep is a transpiler that produces ARM JSON. There's no runtime Bicep engine in Azure — just a more pleasant authoring experience that compiles down. This means:
- Anything you can do in ARM, you can do in Bicep (and almost everything is more concise).
- Bicep has no state file. ARM tracks deployments per scope (RG/sub/MG); the "state" is the live state of resources in Azure.
- You can decompile existing ARM to Bicep (
bicep decompile) — useful but the output usually needs cleanup.