Review - Getting started with Bicep: infra as code on Azure
Last month, I wanted to Learn more about Azure bicep and in that context I started looking for interesting content. One of the resources that I found is the book "Getting started with Bicep: infra as code on Azure" (link) The goal of this post/review is provide you with a overview of the book written by Freek Berson . (This review should be seen more as a recommendation though!)
If you want to know which other Bicep-related-sources I used in my learning process, then I really encourage you to look at my blog post on getting started with Azure Bicep, which you can find here .
Azure Bicep is hot! After years of (tedious) manipulating of ARM templates (in json), Microsoft has come up with a more than decent alternative: A domain specific language (DSL) that allows its users to automate Infrastructure As Code (IAC) deployments. As with any DSL, Bicep has its specifics and its very important that you get a clear understanding of these specifics to get the most out of this language.
Freek Berson is a Cloud Solutions Architect / Technical Specialist with a specialization in Application and Desktop delivery using remoting technologies. He has a long track record in the Remote Desktop Services (RDS) space and has been awarded Microsoft Most Valuable Professional (MVP) since 2011. He advises customers on providing secure access to Desktops and Applications from any location using any device. He mostly focusses on Azure Virtual Desktop (AVD) and Remote Desktop Services with a strong focus on the Azure Cloud.
extract from: Berson, Freek. Getting started with Bicep: Infrastructure as code on Azure . Kindle Edition.
In this book, Freek took the time and put in the effort to guide the reader into the world of Azure Bicep. He has been involved actively in the development from the early start and has been an active contributor and advocate of Bicep and what it is becoming.
The book is structured very well and offers the reader a steep, but very manageable learning path to get started. It starts with explaining the reasoning behind Bicep and does that in the context of the bigger scheme of things in the Azure context. References to ARM (Azure Resource Manager) and ARM Templates are present from the early start and this really helps to understand the "why" and "how" behind Bicep. (to me, this really adds value)
The book then helps you to get started with the setup of your development machine (installation of the language and the nescesarry development tools) After that, based on a simple example of a storage account, al lot of the Bicep concepts are introduced. Each chapter broadens the reader's "Bicep-understanding" and gives an answer to a lot of the typical questions that one has when working in an development (and IAC) context:
- basic structure
- how to deploy
- parameters (and decorators) ➡️ making the template environment-independent
- outputs (returning values)
- Reuse with modules and working with already existing resources
- scopes ➡️ deploying to resource groups/subscriptions/management groups
- code snippets
With these elements, the book offers thus a very decent "Bicep toolbox" which helps the reader with it's first steps in the world of automated Azure Bicep resource deployment. This toolbox provides the reader with the necessary tools to do all the plumbing that is needed in an Azure IAC deployment.
Comparisons to ARM are provided throughout the book with each Bicep example and these really are an added value if you have been actively working with ARM in the past. If you haven't, then there is no shame in skipping those ARM samples as they will teach you little. But it is at least interesting to note the difference between the Bicep and ARM templates where a lot of improvements are added wrt complexity and code length.
what this book isn't
Even though this book is a very good introduction into Azure Bicep, it should be clear to the reader that it's aim is not to go into details on the Bicep specifics for all the Azure services. To me, that is a very good thing!
If you need more info on Bicep specifics for these services ➡️ A lot of the Azure services are constantly evolving and have their own documentation pages (which also contain references to concrete examples). These resources are kept up to date as the services evolve and help the reader (you) to find their way when trying to accomplish something.
This book is really a "go-to-resource" if you are keen to get started with Azure Bicep and are looking for structured guidance in your first steps of understanding the DSL. After you have finished the book, you should be able to start on an automation project and apply everything that you have learned in this book on Azure resources that you automatically want to deploy.
hope it helps!