Terraform Learning Path

Everything Everywhere All as Code
“Everything as Code” Definition Everything as Code is a philosophy for managing IT infrastructure where all components of infrastructure are created, managed, and deleted using code. This applies to container definitions, cloud infrastructure, on-premise server...
Open Source driftctl Alternatives
What is driftctl? driftctl is an OSS CLI tool that enables users to identify Terraform drift as well as unmanaged resources within a cloud environment. It is a quite popular tool and has collected over two thousand stars on GitHub. Why Would We Want a Replacement?...
Why We Are Not Supporting OpenTF
Background On August 10, HashiCorp changed the license to their previously “Open Source” projects to a Business Source License (BSL), making them now “source available” for all future releases. We discusssed in detail reasons and motivations for this change here. On...
Terraform Drift: The Bad, the Ugly and the Black Swan
What is Terraform Drift? What problems does it cause? And how can we fix it? So you’re using an Infrastructure as Code (IAC) solution like HashiCorp’s Terraform. You have at least some cloud resources deployed via Terraform. You’ve noticed that sometimes when you go...
The Reese’s Cup of DevOps: Terraform + GitOps
Two definitions What is GitOps? We like the definition that GitLab gives for GitOps: “GitOps is an operational framework that takes DevOps best practices used for application development such as version control, collaboration, compliance, and CI/CD, and applies them...
Managing Terraform Modules in a Monorepo
Motivation Our organization uses a Monorepo. Chances are, if you have found this article, you use a Monorepo as well. While building out our cloud infrastructure modules in Terraform, we realized that we wanted to preserve our Monorepo, while at the same time build...
Terraform 1.5.x’s Import Block
Motivation It is a common occurence for DevOps teams without rock-solid best practice usage of Terraform: A user or application has created a cloud resource through the AWS console or the gcloud CLI, and now we want to bring that resource under Terraform control. For...
Who Changed Our Cloud Environment? Identifying Root Causes of Terraform Drift
Best Practice: Terraform as the Single Source of Cloud Truth Best practice usage of Terraform includes having it serve as the single source of truth for what is in you organization’s cloud environment. This means that all cloud resources are accurately captured within...
Terraform Variable Management
We've previously discussed the syntax for creating variables within Terraform configuration. While this helps us with syntax, it leaves open questions about how variable values are actually passed into our Terraform workflow. CLI Specification When running terraform...
What is Terraform? How Does Terraform Work?
What is Terraform? Terraform is the leading Infrastructure as Code (IaC) tool (see our article for a review of IaC). It is fully open-sourced, and managed by HashiCorp. Over 1000+ different infrastructure providers can be controlled via Terraform, and new providers...
Quickstart: Writing Terraform
In this article we discuss how the basics of writing organized Terraform infrastructure configuration. Specifying Terraform's Configuration We recommend keeping a given Terraform module's requirements within their own versions.tf file. Within versions.tf, you can...
5 Ways to Run Your Terraform Workflows
Once you have some Terraform configuration written within a directory, you can run CLI commands to provision your infrastructure with Terraform. The combination of these commands to provision, change, and delete remote cloud resources via Terraform is referred to as a...
Choosing the Right Infrastructure as Code (IaC) Tool – A Flow Chart
Which Infrastructure as Code (IaC) Tool Should Your Organization Use? So your organization has decided to get started with Infrastructure as Code (IaC), but you have not yet decided on which tool to use. There are several leading options to consider:...
What is Infrastructure as Code? Why Should We Use It?
Cloud Computing: Revolutionary Innovation Cloud computing was, and is revolutionary for a lot of organizations. It enables virtually infinite scalability, spending on IT infrastructure on a pay-as-you-go basis, and abstracts away the need to manage physical servers...
How To Import Resources into Terraform Control
Bringing uncontrolled resources into Terraform control requires running an “import” state migration command.