Automating Cloud Deployments


Home » Courses » Networking in Public Cloud Deployments » Automating Cloud Deployments

You have to be registered for this online course, or have this course selected as part of an active Expert Subscription to access all course materials.

Automating Cloud Deployments

Migrating to cloud infrastructure won't increase the speed- or reliability of application deployment if you continue to use the traditional manual processes, or configure one-off environments with GUI.

This module will describe the principles of automated workload deployment and commonly-used tools, and introduce infrastructure-as-code concepts.

2:17:08 Automating the Cloud

Ned Bellavance described cloud deployment automation using infrastructure-as-code tools. His presentation included:

  • Infrastructure-as-code concepts and tools;
  • Terraform basics;
  • Using Terraform with Azure;
  • Terraform and server configuration management;
  • Automating Terraform
Introduction 4:14 2020-03-05
Infrastructure as Code Concepts 24:47 2020-03-05
Infrastructure as Code Tools 13:05 2020-03-05
Introducing Terraform 34:07 2020-03-09
Using Terraform with Azure 22:36 2020-03-05
Terraform and Config Management 15:16 2020-03-05
Automating Terraform 23:03 2020-03-05
Slide Deck 2.3M 2020-02-25

40:09 Free items Configuration and State Management Tools

Most traditional state management and tools and automation frameworks can be used to automate cloud deployments.

This section briefly describes the architecture of three most common automation tools (Chef, Puppet, and Ansible), and introduces the concepts of version control and reviews.

Configuration and State Management Tools 13:38 2016-10-18
Automation Frameworks 13:44 2016-10-18
Version Control and Review Systems 12:47 2016-10-18
Slide Deck 2.4M 2016-09-30

1:40:40 Free items Git and GitHub

Git is the source-control tool of choice not only for most open source project, but also for extremely large teams like Facebook or Microsoft Windows development team. It seems a bit convoluted when you start, but you’ll quickly discover its benefits in this Getting started with Git tutorial by Scott Lowe.

If you’re familiar with another version control tool, or want to learn more about Git, I’d highly recommend reading the Pro Git book. I would also suggest you invest more time in understanding Git concepts than trying to remember a few quick recipes and move on.

Using Git and GitHub 545K 2017-01-17
Git and GitHub 100:40 2017-01-20

Hands-on exercises

Practice Your Git 205K 2017-08-14
Git Recipe Explained 3.4K 2020-10-17

Git books and other online courses

Git Magic

Simple and humorous introduction to Git basics

Pro Git book

A must-read book for everyone aiming to master Git

Git Immersion (recommended by Bruno Wollmann)
Git in 15 minutes
GitHub on-demand training

Git branching strategies

Gitflow (a commonly used branching approach)
Patterns for Managing Source Code Branches (Martin Fowler)
Git branching guidance (
Comparing Git workflows (
Git Feature Branch Workflow (

Using Git

Using Git branches in NetDevOps (Leslie Carr, RIPE 71)
GitOps: A Path to More Self-service IT (Tom Limoncelli, ACM Queue)
How to find stuff in Git
Recipes-of-last-resort for the times when nothing else works

57:45 PowerShell Introduction

You could use PowerShell instead of Linux CLI to automate Azure deployments.

If you want to go down that path, and are not familiar with PowerShell, you might find this introductory presentation useful.

Introduction to PowerShell 26:17 2017-05-29
Hands-on PowerShell 19:24 2017-05-29
Using REST API with PowerShell 12:04 2017-07-04

Additional Resources

Slide Deck 1.7M 2017-02-11
Source code for Mitja's PowerShell demos

19:12:00 Ansible for Networking Engineers

Ansible includes numerous AWS, Azure and GCP management modules, and if you plan to use it in your other automation projects you might as well try to use it to automate your cloud deployments (although you might find other tools like Terraform easier to use).

1:00:18 Safely Managing Automation Secrets

In this presentation David Barroso focused on two important automation aspects:

  • How to manage and consume secrets safely in our automation platform; from traditional methods like encrypted files to modern systems like Hashicorp Vault
  • How to leverage modern platforms to dynamically provision certificates and SSH keys so we can keep communications with our devices secure.
Introduction 5:13 2020-02-05
DOs and DONTs 4:05 2020-02-05
Intro to GnuPG 3:28 2020-02-05
Encrypted environment 8:43 2020-02-05
Encrypted inventory 4:43 2020-02-05
HashiCorp Vault 101 8:56 2020-02-05
Storing Secrets in HashiCorp Vault 10:53 2020-02-05
Building a PKI with HashiCorp Vault 12:06 2020-02-05
Summary 2:11 2020-02-05

Automating Cloud Infrastructure Deployments

You might find the following sections even more useful when you'll start automating network- and security infrastructure. Revisit them while working on the hands-on exercises in the following modules.

1:57:43 Automating AWS Deployments

AWS API has numerous idiosyncrasies: it's a strict Create/Read/Update/Delete API, you need multiple API calls to create an object, objects can be referenced by IDs, but not by names...

This section explains the peculiarities of AWS API, and describes how to use bash scripts, Ansible playbooks, CloudFormation templates, and Terraform configuration files to create, update, or delete anything from a single AWS object to a full-blown application stack.

AWS Automation Principles 18:03 2020-04-13
Creating and Updating a Single Object 19:21 2020-04-13
Example: Create a Single Object with Multiple Automation Tools 11:55 2020-04-13
Creating an Object Hierarchy 18:26 2020-04-13
Using Ansible AWS Modules 11:29 2020-04-13
Example: Use Automation Tools to Create an Object Hierarchy 14:37 2020-04-13
Example: Full Infrastructure Stack Deployment with Ansible 23:52 2020-04-13

New AWS Features

Tag EC2 Resources on Creation

Source Code for Automation Examples

Bash scripts
Ansible playbooks
CloudFormation templates
Terraform configuration files

1:12:31 Automating Azure Deployments

It's a pleasure to work with Azure API: objects have names, you can refer to them by names, and the API uses create-or-update approach, making automation scripts or playbooks extremely easy to develop or understand.

This section explains the principles of Azure API, and describes how to use bash scripts, Ansible playbooks, Terraform configuration files, and Resource Manager Tempaltes to create, update, or delete networking- and compute infrastructure.

Azure Automation Principles 17:34 2020-05-11
Creating and Updating Azure Objects 15:33 2020-05-11
Dealing with Object Hierarchy 14:19 2020-05-11
Creating Azure Virtual Machines 3:59 2020-05-11
Using Ansible Azure Modules 7:11 2020-05-11
Azure Resource Manager Templates Overview 13:55 2020-05-11

Source Code for Automation Examples

Bash scripts
Ansible playbooks
Resource Manager templates
Terraform configuration files

Hands-On Exercises

Select an Infrastructure-as-Code Tool

In this assignment you'll select a public cloud provider you'd like to work with, create your public cloud account, select an IaC tool of your choice, and create some simple public cloud infrastructure with that tool.

Hands-on assignment: select an infrastructure-as-code tool 3.6K 2020-01-03
Submit your homework
Overview: Submitting Hands-On Exercise Solutions

More to Explore

Additional Resources

This section contains links to external blog posts, podcasts... that you might find useful after mastering the basics of public cloud automation.

Lessons learned running Terraform in large-scale AWS production
You started this section on %started% Mark completed