Infrastructure as Code on Azure Deep Dive
This course will teach you how to work with Infrastructure as Code (IaC) on Azure. You will learn about Bicep ARM Templates (which replace JSON ARM Templates), Terraform, and Pulumi--three popular IaC choices on Azure--and how to choose between them.
What you'll learn
In this course, Infrastructure as Code on Azure Deep Dive, you’ll learn about the three most used languages for Infrastructure as Code on the Azure platform. You will learn the language, toolchain, and the pros and cons of all three alternatives. All three of them come with an example project that you can download and review or build yourself while you follow along with the course.
This course is made up of four main sections. For the bulk of this course you will be using Azure Bicep – the new Azure-native IaC language – for defining an application infrastructure that is ready for serving your web application, its supporting messaging system, and a SQL database. You will start with a minimal, working and deployable example and then step-by-step improve that together and visit all important Bicep language features that way. You will also take a look under the hood and learn what the Azure Resource Manager is, how Bicep templates are compiled to the traditional JSON ARM Templates, and what that means for you. After that, you will switch gears a bit and talk about how to write templates that are ready to be reused. Let’s say you have a default VM configuration that you want to share with your team, or even other teams – how would you go about that? You will cover the various approaches available to you in Azure: A Bicep Registry, and Template Specs. After building some reusable templates, you will continue using Bicep, but now to build a minimal Azure landing zone, following Microsofts Cloud Adoption Framework. You will see how to combine Azure DevOps and Bicep to deploy your management groups, and subscriptions. This is how many organizations deploy what are called landing zones. You will then follow along with a smaller-scale example that mimics this architecture in resource groups to deploy two landing zones that you will use in the next two modules. You will then take a first look at how to use Terraform, and Pulumi in combination with Azure. You will learn about the differences between Bicep, Terraform, and Pulumi: their pros and cons; and how to choose between them.
Table of contents
- Starting with Bicep 2m
- Demo: Let's Dive In 7m
- Demo: Adding More Resources 8m
- Demo: Making Templates Reusable 7m
- Demo: Deploying Parameter Files 5m
- Demo: Working with Variables and Functions 8m
- Demo: Referencing Existing Resources 6m
- Exploring the Bicep Data Types 7m
- Demo: Adding User-defined Data Types 7m
- Review 3m
- Bicep: Advanced Topics 2m
- Demo: Reusing Templates as Modules - Part I 6m
- Demo: Reusing Templates as Modules - Part II 8m
- Demo: Deploying Resources Conditionally or in Loops 6m
- Demo: Adding Extension Resources 6m
- Looking under the Hood of the Azure Resource Manager 4m
- Demo: Manually Transpiling and Decompiling Templates 6m
- Working Together with Others 3m
- Demo: Working with Git on Your Local Computer 7m
- Demo: Storing Infrastructure as Code in GitHub Source Control 6m
- Demo: Deploying Infrastructure as Code Using Github Actions 10m
- Demo: Storing Infrastructure as Code in Azure DevOps Control 4m
- Demo: Deploying Infrastructure as Code Using Azure Devops 9m
- Review 1m