Introduction
When you want to create and manage resources in Azure, you need a way to describe what you want. ARM templates, Bicep, and Terraform are tools that help you do this. Choosing the right one depends on your needs and comfort with each tool.
When you want to use a Microsoft-supported tool that works directly with Azure and prefer JSON format, use ARM templates.
When you want simpler, cleaner code than ARM templates but still want to stay within Azure's native tooling, use Bicep.
When you want to manage resources across multiple clouds or prefer a tool with a large community and simpler syntax, use Terraform.
When you want to reuse and share infrastructure code easily with others, Terraform offers modules and a big ecosystem.
When you want to avoid writing complex JSON and prefer a language that compiles to ARM templates, Bicep is a good choice.