August 10th, 2021

AzureFunBytes Episode 50 – Intro to @BicepLang with @adotfrank

Jay Gordon
Senior Program Manager

AzureFunBytes is a weekly opportunity to learn more about the fundamentals and foundations that make up Azure. It’s a chance for me to understand more about what people across the Azure organization do and how they do it. Every week we get together at 11 AM Pacific on Microsoft LearnTV and learn more about Azure.

AzureFunBytes animation

This week on AzureFunBytes we flex some Azure muscle with Bicep. Bicep is a language that allows you to use a declarative syntax to codify your Azure infrastructure deployments. Bicep is an Azure native Domain-Specific Language (DSL) that promotes a cleaner syntax, improved type safety, and better support for modularity and re-use of code. Bicep is a transparent abstraction over Azure Resource Manager (ARM) templates that gives you the ability to create nearly any required resource within Azure. Bicep has a playground that allows you to start using existing ARM Template Quickstarts right away. Or if you choose to build them from scratch, the snippets with the VS Code Bicep extension will be a huge help.

Bicep to JSON

I was lucky enough to get one of the experts on Bicep to join us this week! We’ll welcome Microsoft Program Manager Alex Frankel to the show to give us greater insight into how to use Bicep to create our infrastructure. I’ll ask Alex your questions, we’ll look at some Bicep basics, discuss best practices, and even kick off some deployments. Don’t miss this incredible opportunity to learn about building your Infrastructure as Code (IAC) with Bicep!

Our Agenda:

  • Why we are investing in Bicep in the first place
    • ARM Templates are by far the most popular declarative tool for deploying to Azure, want to improve the experience for those customers
    • Clarify that Bicep is just one of many great options
  • Key differences between Bicep and ARM templates
    • Modules, richer intellisense, auto DependsOn, richer type safety
  • How the language is designed and the importance of tooling
    • In terms of language design (not complexity), Bicep shares more DNA with C# and TypeScript than traditional “scripting” languages like HCL or Chef
    • Tooling is built alongside the language, so our syntax decisions are always driven by our ability to build tooling to go with it
  • Benefits of being “Azure native”
    • Day zero support for all resource types
    • No state management without losing the ability to perform what-if (“tf plan” equivalent) and manage lifecycle (“tf destroy” equivalent)
    • Works with other platform capabilities like Template Specs, Azure Marketplace, etc.

Full details of how the Bicep language works can be found in the Bicep documentation and there is a rich library of examples to help you get a jumpstart.

Alternatively, you can try the Bicep Playground or use the VS Code Devcontainer/Codespaces repo to get a pre-configured environment.

If you have an existing ARM Template or set of resources that you would like to convert to .bicep format, see Decompiling an ARM Template.


Learn about Azure fundamentals with me!

Live stream is normally found on Twitch, YouTube, and LearnTV at 11 AM PT / 2 PM ET Thursday. You can also find the recordings here as well:

AzureFunBytes on Twitch
AzureFunBytes on YouTube
Azure DevOps YouTube Channel
Follow AzureFunBytes on Twitter

Useful Docs:

Get $200 in free Azure Credit
Microsoft Learn: Introduction to Azure fundamentals
Microsoft Learn: Deploy and manage resources in Azure by using Bicep
Bicep Documentation
Quickstart: Create Bicep files with Visual Studio Code
Bicep Playground
ARM template documentation
Bicep on Twitter
Install the Azure CLI
Best practices for Bicep
What is Infrastructure as Code?
About Domain-Specific Languages

Author

Jay Gordon
Senior Program Manager

Jay Gordon is a Senior Program Manager with Azure Cosmos DB focused on reaching developer communities. Jay is located in Brooklyn, NY.

0 comments

Discussion are closed.