Managing Infrastructure With Terraform

3m 28s

Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can help with multi-cloud by having one workflow for all clouds. The infrastructure Terraform manages can be hosted on public clouds like Amazon Web Services, Microsoft Azure, and Google Cloud Platform, or on-prem in private clouds such as VMWare vSphere, OpenStack, or CloudStack. Terraform treats infrastructure as code (IaC) so you never have to worry about you infrastructure drifting away from its desired configuration. If you like what you are hearing about Terraform then this lesson is for you!

In this lesson, we’ll learn Terraform from the ground up. While building a strong foundation for you to solve real-world challenges with Terraform, you'll learn about its core concepts including HashiCorp Configuration Language, providers, resources, and state. The lesson concludes with a demo to illustrate how Terraform can be used to manage a practical infrastructure for deploying development and production versions of a two-tier application in Google's Cloud using Cloud SQL, Google Kubernetes Engine (GKE), and Kubernetes. The Terraform configuration files used in the lesson are all available in the lesson's GitHub repository.

Intended Audience

This lesson is for anyone that is interested in managing infrastructure in public, private, or hybrid clouds. Some roles that fit into that category are:

  • DevOps Engineers
  • IT Professionals
  • Cloud Engineers
  • Developers

Learning Objectives

After completing this lesson, you will be able to:

  • Describe what Terraform is
  • Write Terraform configuration files
  • Understand how Terraform integrates infrastructure sources
  • Manage multiple infrastructure environments with Terraform


This is an intermediate-level lesson that assumes you have prior experience with a scripting or programming language.


Lesson Agenda

Lesson What you'll learn
Introduction   What will be covered in this lesson
What is Terraform?   Take a high-level look at what Terraform is and when to use it
Terraform Configuration   Understand the ins and outs of HashiCorp Configuration Language (HCL)
Providers   Discover how Terraform integrates various infrastructure sources
Resources   See how to configure parameters that are common to all resources
State   Learn how Terraform state connects your configuration with the real world
Two-Tier App Demo   See how to deploy a two-tier app in multiple environments with Terraform
Summary   Review the lesson and see what's next



If you have thoughts or suggestions for this lesson, please contact Cloud Academy at

About the Author
Logan Rakai, opens in a new tab
Lead Content Developer - Labs
Learning paths

Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.

LinkedIn, Twitter, GitHub

Covered Topics