Azure Automation with Python and Terraform


This demonstration will show how easy it is to utilize the Azure Application Programming Interface (API) and automation features. The demonstration features a customized Python Command Line Interface (CLI) for deploying cloud infrastructure using Terraform and the underlying mechanism for provisioning the Azure cloud.

This demo will show how easy it is to deploy Azure infrastructure using automation. With automation, we will:

  1. Provision Azure with Virtual Networks, Subnets, Route Tables, Public Azure Load-balancers & Network Security.
  2. Instantiate Web Apps with Dot Net framework and Slots for Test, Dev and Staging.
  3. With this automated deployment you will see complex systems provisioned and made ready for operational management such as Azure Virtual Network Gateways and Virtual Machines that run F5 Web Application Firewall (WAF) software.
The deployment is handled by defining a list of JSON objects that includes all of the properties for the infrastructure. Python is used to compile the JSON definitions into Terraform files, next it will execute Terraform in order to build the environment within two Azure regions. 

Terraform is a great solution when: 

  • I need to deploy infrastructure in a public or hybrid/multi cloud environment and maintain a consistent deployment model. 
  • I need the agility and flexibility to accommodate quick deployments of infrastructure in a codified fashion. 
  • I want to minimize the amount of custom code I develop so I can focus on a declarative language type that has a wide array of vendor support.