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.
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
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.
|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 firstname.lastname@example.org.
Welcome to Managing Infrastructure with Terraform! This course is designed to give you everything you need to solve real world infrastructure challenges with Terraform. You’ll be able to manage infrastructure across multiple clouds using a single tool, Terraform.
I’m Logan Rakai and I’ll be your instructor for this Course. I’m a content researcher and developer here at Cloud Academy. I’ve contemplated the best way organize this course so that you can continuously build upon a strong foundation that will leave you empowered to solve your infrastructure challenges with Terraform. I have over ten years of experience in software research and development including five years in the cloud. I’m an AWS Certified DevOps Engineer Professional and a Microsoft Certified Solutions Expert: Cloud Platform and Infrastructure. You can connect with me on LinkedIn or on Twitter.
Who this course is for
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
In order to get the most out of this course, you should have some experience with a scripting or programming language. Terraform uses configuration files and a command-line tool to manage infrastructure. This course will teach you everything you need to know to work effectively with Terraform but some prior experience will make several topics easier to digest.
You can follow along with the course examples, and I’d encourage you to.
You’ll need a Google Cloud Platform account. If you don’t have one, you can create one for free with hundreds of dollars of credits. The demos in this course cost just 40 cents of the free credits for me to produce.
You should create a separate GCP project for the course to isolate what you’ll be building.
I’ve put resources that I use for the demos on GitHub. A clickable link is available at the bottom of the transcript for this lesson. The demos in this Course include writing configuration files and entering Terraform commands on the command-line. I’ll be using a Mac but Terraform is cross-platform and everything would work the same on Linux or Windows. For editing files, I’ll be using Visual Studio Code. It’s also cross-platform and includes a handy extension for syntax Terraform configuration highlighting and other perks. But you could use whatever you are comfortable with.
This course has lessons on the following topics:
1. The first lesson gives a high-level review of what Terraform is and why you should use it.
2. Then we’ll get into the details of how to write configurations in Terraform
3. Next, we’ll discuss details of providers, which integrate infrastructure sources into Terraform.
4. After that, we’ll explore the configuration details of the infrastructure components that Terraform manages, called resources.
5. Next, we’ll learn about Terraform state and how it connects configurations to real-world infrastructure.
6. Most of the lessons have examples and demos embedded within them, but the demo in this lesson aims to give a practical example of using Terraform to manage infrastructure.
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
As a sneak peak, you’ll use all that you learn throughout the course in the final demo to build the following infrastructure with Terraform. You’ll manage both a development and production environment for it as well.
I’m happy to hear from you. I make content for you and I want it to be as good as it can be. If you have any feedback, please get in touch with me by emailing email@example.com, or by connecting with me on Twitter where my handle is @LoganRakai.
https://cloud.google.com/free/ Free Google Cloud account
https://github.com/cloudacademy/managing-infrastructure-with-terraform GitHub repository for course resources
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.