Code your Azure Deployments using Terraform

Code your Azure Deployments using Terraform

Using HashiCorp’s Terraform you can code almost every Azure Deployment. Having your entire infrastructure as source code makes it easy to spin up new environments in a couple of minutes. Terraform takes this approach a step further, having a single language and a single CLI allows you to describe deployments for almost every cloud vendor. With Terraform Execution Plans you can also inspect what will be deployed, changed or deleted in Azure without harming existing deployments. Join this talk by Thorsten Hans and learn how to write your deployments and quickly create different, independent environments such as Testing, Staging, and Production in Azure.


Thorsten Hans

November 27, 2018


  1. Code your Azure Deployments using Terraform Thorsten Hans @ThorstenHans Consultant

    @ Thinktecture AG
  2. The guy who’s talkin’ Consultant @ Thinktecture AG @ThorstenHans Thorsten Hans
  3. 1. What is HashiCorp Terraform 2. Let’s create a Azure

    Deployment, live! 3. References Talking Points
  4. What is HashiCorp Terraform

  5. Terraform Write, Plan, and Create 1 Code your Infrastructure 2

    Preview Changes before applying 3 Build reproducible infrastructure
  6. Code your Infrastructure • Can be stored in a version

    control system (git) • Change History / Change Tracking • Collaboration • Better documentation • Removes tribal knowledge (SPoF) • Predictable deployments • TDD deployments are possible Terraform - Write
  7. Preview Changes before applying • Execution plan will tell you

    which parts of the environment will be • Created • Modified • Deleted • Before making any changes to a environment • Think of git status Terraform - Plan
  8. Build reproducible infrastructure • One Terraform script can be applied

    million times • Configurable environments • Variables • Interpolation • Built-in functions Terraform - Create
  9. Write Code Terraform plan Verify Terraform apply Consume The Terraform

    Lifecycle Terraform Destroy
  10. HashiCorp Configuration Language • Declarative language used to code your

    infrastructure • Based on JSON but more focused • Simple but powerful type system • Strings, Maps, Lists, Booleans* • One language used for all targets • Azure, Azure Stack, VMWare, GCP, AWS, … Meet the HCL
  11. Let‘s create a Azure Deployment Live

  12. References Good stuff to dive deeper

  13. Essential Features • Modules • • Workspaces •

    • Terraform State • • Backends • Terraform Features
  14. Online and offline resources • Terraform Best Practices •

    • HashiCorp Youtube Channel • • The Terraform Book • • Terraform: Up and Running • Terraform Resources
  15. Q&A If you’ve further questions later on: shoot me a

    mail at / or tweet at @ThorstenHans slides at