The course is part of this learning path
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 email@example.com.
Congratulations! You’ve reached the end of this course on managing infrastructure with Terraform. Let’s review how you got here.
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.
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
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 firstname.lastname@example.org, or by connecting with me on Twitter where my handle is @LoganRakai.
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.
About the Author
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 Administrator (CKA), Certified Kubernetes Application Developer (CKAD), Linux Foundation Certified System Administrator (LFCS), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.