Loading comparison...
Loading comparison...
A domain-specific language for deploying Azure resources declaratively. Simpler alternative to ARM templates.
Bicep is a domain-specific language (DSL) created by Microsoft in 2020 for declaratively deploying and managing Azure cloud resources. It serves as a transparent abstraction over Azure Resource Manager (ARM) JSON templates, offering dramatically cleaner syntax while compiling down to the same ARM template JSON that Azure's deployment engine processes. Bicep was created to address the verbosity and complexity of raw ARM templates, which could run thousands of lines of deeply nested JSON for even moderately complex deployments. The language features a concise, type-safe syntax with first-class support for resource declarations, parameter definitions, variable assignments, module references, and output values.
Bicep provides automatic dependency management between resources, eliminating the need for explicit dependsOn declarations in most cases. The Bicep compiler validates resource types and properties against Azure resource provider schemas at compile time, catching configuration errors before deployment. Modules enable reusable infrastructure components that can be shared via Azure Container Registry or template specs. The tooling ecosystem includes a VS Code extension with IntelliSense, real-time ARM template preview, and a decompiler that converts existing ARM templates to Bicep.
Bicep integrates natively with Azure CLI (`az deployment`), GitHub Actions, and Azure DevOps pipelines. Microsoft actively develops Bicep as the recommended language for Azure infrastructure-as-code, positioning it alongside Terraform as a primary IaC option for Azure-centric organizations. The language is open-source and hosted on GitHub with an active community.
Bicep changes directly control Azure infrastructure deployments, where a parameter type change or resource property modification can trigger resource recreation or data loss. Module version updates may introduce breaking changes to dependent infrastructure.
Comparing Bicep files is critical before running deployments to catch unintended resource deletions, overly permissive role assignments, and configuration changes that affect cost or availability. Teams reviewing pull requests need clear diffs to validate infrastructure modifications across environments.
UtraDiff diffs Bicep files using Bicep syntax highlighting, rendering resource declarations, parameters, modules, and output definitions in distinct colors. Side-by-side view aligns resource blocks and module references across panels. The whitespace ignore toggle suppresses az bicep format differences.
Alt+Arrow navigation jumps between changed resources. Language-aware tokenization distinguishes API version changes from property modifications, highlighting deployment-breaking Azure resource configuration changes.
Supported extensions: .bicep