Microsoft’s Azure Bicep language is a domain-specific language used to deploy Azure resources. Bicep uses a declarative syntax which means you essentially describe what you want to create. Within your Bicep file you define the resources that you want to deploy into Azure. This Infrastructure-as-Code (IaC) approach means that resources can be deployed programmatically with consistency and remove human error.
Advantages of using Bicep
The advantages of using bicep over over methods, such as Terraform, are:
- Support for API and Resources types – All resources that are generally available or in preview are support for deployment using Bicep.
- User friendly – Unlike Azure Resource Manager (ARM) templates, which are JSON files, Bicep files are much easier to work with, its declarative and requires no previous programming knowledge.
- Modular – Bicep files can be broken down into parts for simplified management using modules.
- Automation and orchestration – Due to the way that Azure Resource Manager operates, it orchestrates the deployment, making sure that resources are deployed in the correct order.
- Azure service integration – Bicep integrates with Azure services, templates and blueprints.
- Cost – Bicep is open source and fully supported by Microsoft.
If, like me, you hate using JSON files for deploying Azure resources, then I think you will like using Azure Bicep. It reduces the complexity of these JSON files and improves the deployment experience. The syntax that Bicep uses makes it more human readable and reduces the number of lines of code required to deploy resources compared to a JSON template. Over the coming weeks I will be starting to look at Azure Bicep myself and hopefully get to grips with this IaC deployment language. As I become more familiar I will post my findings and thoughts.