Bicep language

Late 2020 I got acquainted with the Bicep language when it was announced as “ready for production” with version 0.3. Immediately I started using it for a job at a customer and off the bat found the experience very pleasant. I was amazed at the ease and rate at which I could produce complex resource configurations.

Workshop

Over the past year I have given a few workshops for both colleagues at Microsoft and some of our customers to introduce bicep into their lives. For that I’ve created a workshop scenario you can find on my Github called A lap around bicep. Have a look if your looking for an introduction into the language and have prior experience building ARM templates.

ARM template development

Before bicep, I had been working extensively with ARM templates to configure Azure resources. Mostly I found the experience cumbersome. Even in VSCode when using the extensions for ARM and the visualizations for resources, it was still easy to make trivial mistakes. That of course results in slow feedback loops, only being able to validate during deployment (or what-if ) when allowed to use AzureCLI. Also having to rely on the ARM template reference docs to find the correct properties, where they are located in the resource definition and to know if a property can actually be set is time consuming to say the least. Bicep in VSCode has changed all of this!

Reduced cognitive load

The key reason why I think bicep is such a great tool for the job is that it reduces cognitive load. The language allows to refactor resource definitions into modules and provides “syntactic sugar” to easily glue all the pieces together. It does this in a way that is way less verbose than the json format of the ARM templates. This all adds power to the developer experience.

VSCode extension

The tool set of bicep comes with an extension for VSCode which provides excellent support for editing bicep files. Amongst intellisense for properties, snippets, lining and validation, the developer gets a lot of feedback on the fitness of the resource being defined.

Read the book

For those who’d like to dive deeper into bicep to get a complete picture of how to use it and integrate it into the way of working with Infrastructure as Code for Azure, an excellent guide is being written by Henry Been, Eduard Keilholz and Erwin Staal. Order it here from Manning books

Advanced scenarios

I’ll be posting more on the use of bicep later. My advice is get acquainted first with the basic language constructs, then later dive into the more advanced features. There is so much to learn and a lot of new pieces are still evolving.