1. Home
  2. Training Library
  3. DevOps
  4. DevOps Courses
  5. Managing Infrastructure With Terraform



Course Introduction
What is Terraform?
Terraform Parts
8m 12s
7m 58s
4m 35s
2m 27s
Start course
1h 10m

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 course is for you!

In this course, 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 course 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 course are all available in the course's GitHub repository.

Intended Audience

This course 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 course, 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 course that assumes you have prior experience with a scripting or programming language.

Course Agenda

Lesson What you'll learn
Introduction What will be covered in this course
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 course and see what's next


If you have thoughts or suggestions for this course, please contact Cloud Academy at support@cloudacademy.com.


Congratulations! You’ve reached the end of this course on managing infrastructure with Terraform. Let’s review how you got here.


Course Review

 We began the course with a high-level overview of Terraform and the space that it occupies. We reviewed the benefits of infrastructure as code and learned about the various infrastructure integrations available in Terraform.


We then became acquainted with Terraform configurations, in particular with HashiCorp Configuration Language. We also discussed how to organize configurations with multiple files and modules.


Next, we dove into more details of providers including the plugin architecture that Terraform uses for providers and how to constrain the version of provider plugins that Terraform uses.


We also dove into more details of resources. We learned about the meta-parameters available to all resources and when you should use them.


To get a fuller picture of how Terraform works, we discussed state. State connects your configurations with the real world. We also saw the options available for state backends and how to use workspaces as containers for state.


The previous lesson put everything together and deployed a two-tier application in Google Cloud Platform. The configuration used workspaces to deploy separate development and production environments.


Learning Outcomes

By completing this course you have achieved the following learning outcomes:

·      You can describe what Terraform is

·      You are able to write Terraform configuration files

·      You understand how Terraform integrates infrastructure sources

·      You have what it takes to manage multiple infrastructure environments with Terraform


Learning More

To continue on with your journey with Terraform,

I’d encourage you to try out other Terraform content on Cloud Academy. There are several Labs that give you hands-on experience with Terraform in different scenarios and with different cloud providers.


The Terraform documentation is also an essential tool for understanding how to configure various providers and resources.


The public Terraform module registry is a great place to find modules that might already exist for your infrastructure needs.


Lastly, I’d recommend checking out Terraform’s GitHub repository. You can participate in various ways by contributing to discussions about issues, voting for new features, and maybe even creating a pull request to fix an issue with the code or documentation.



I’m happy to hear from you. I make content for you. If you have any feedback, please get in touch with me by emailing support@cloudacademy.com, or by connecting with me on Twitter where my handle is @LoganRakai.


Thank you

Thanks for coming on this journey through Terraform with me! I’ve really enjoyed creating the course and hope that it has equipped you with everything you need to take on real infrastructure challenges with Terraform.


Until next time, I’m Logan Rakai with Cloud Academy.



Course Introduction

What is Terraform?

Terraform Configuration




Two-Tier Application Demo

About the Author
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.

Covered Topics