Free — no signup required

Introduction: The Heart of Terraform

2 min read

The "Map" of Your Infrastructure

Think of building a house. The blueprints tell the contractor what to build, but the contractor also keeps a detailed log of what has actually been built so far — which walls are up, which pipes are laid, which permits have been filed. Without that log, the contractor would have to walk through the entire house every single day just to figure out where they left off.

Terraform works the same way. Your .tf configuration files are the blueprints. The state file (terraform.tfstate) is the contractor's log — a precise record of every real-world resource Terraform has created, and how each one maps back to a block of code.

Terraform is stateful by design. Before every plan or apply, it reads the state file to understand what already exists, then compares that against your code to determine what needs to change. Without state, Terraform would have no way to know whether a resource needs to be created, updated, or left alone.

Why State Management is Hard

When you are working alone on a hobby project, state is easy. A local file on your laptop works fine. But in a team environment, local state is a disaster waiting to happen.

  1. Collaboration: How do five engineers share the same map? Emailing the file around? Committing it to Git? Both approaches break down quickly.
  2. Concurrency: What happens if Engineer A and Engineer B both run terraform apply at the same moment? They each read the same state, make overlapping changes, and the last one to write wins — corrupting the state and potentially destroying resources.
  3. Security: State files often contain sensitive data (like database passwords) in plain text. Leaving them on laptops or in version control is a serious security risk.
  4. Blast Radius: If your entire company's infrastructure lives in one giant state file, a single mistake — a mistyped resource name, an accidental terraform destroy — could cascade into a company-wide outage.

This topic covers the strategies needed to manage state safely and scalably in the real world: remote backends, locking, state layering, drift detection, importing legacy resources, and handling sensitive data.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free