auto

Building in the Cloud with Bicep

Chris Ayers

Chris Ayers

Senior Customer Engineer
Microsoft

Twitter: @Chris_L_Ayers
Mastodon: @Chrisayers@hachyderm.io
LinkedIn: - chris-l-ayers
Blog: https://chris-ayers.com/
GitHub: Codebytes

Agenda

  • What is IaC?
  • What is Bicep?
  • What is Azure Resource Manager?
  • Demos

What is IaC?

Infrastructure as Code (IaC) is the managing and provisioning of infrastructure through code instead of through manual processes.

IaC Styles

Imperative

  • Do what I want
  • Do X in the system
  • List of commands
  • Manage your own dependencies
  • Polling to handling timing

Declarative

  • What I want
  • Make the system look like X
  • List of resources / configuration
  • System knows the dependencies
  • System knows how to handle timings

Popular IaC Technologies

Native

  • ARM / Bicep
  • AWS Cloud Formation
  • Google Cloud Deployment Manager

Non Native

  • Terraform
  • Pulumi
  • Vagrant
  • Chef
  • Puppet
  • Ansible
  • SaltStack

ARM / Bicep / Terraform

Feature ARM Bicep Terraform
Format Json DSL DSL - HCL (HashiCorp Language)
Target Azure Azure Multi-Cloud or On-Prem through providers
Support Native

Day-0

Native

Day-0

Support can lag with AzureRM

Day-0 with AzApi

State Azure Azure State File via files, Blob, or Terraform Cloud

Bicep Features

Simpler Syntax. No JSON noise

Declarative Syntax

Modularity

Built for tool-ability

Convert existing templates

Bicep and ARM

ARM Templates

Json & Bicep

Azure Resource Manager (ARM)

Azure Resource IDs

Parameter Design

File Layout

Demos

Questions

Resources

Chris Ayers

Twitter: @Chris_L_Ayers
Mastodon: @Chrisayers@hachyderm.io
LinkedIn: - chris-l-ayers
Blog: https://chris-ayers.com/
GitHub: Codebytes