Terraform is an infrastructure-as-code tool that provisions and manages resources through declarative configuration. You describe the infrastructure you want in HCL; Terraform compares that description against recorded state, works out the difference, and applies only what changed. The distinction from imperative scripting matters: a shell script says how to create a server, while Terraform says what should exist and lets the tool determine the steps.
State is the concept that separates people who use Terraform from people who fight it. Terraform records what it created in a state file, and every plan is a three-way comparison between configuration, state and reality. Once state is understood, the behaviour that otherwise looks arbitrary — resources being replaced, drift appearing, imports being necessary — becomes predictable. In a team, that state has to move to a remote backend with locking, or two engineers running apply at once will corrupt it.
The provider model is what gives Terraform reach. Rather than knowing about any particular cloud, Terraform loads providers that translate resource declarations into API calls, so AWS, Azure, GCP, Kubernetes, GitHub and hundreds of other systems are managed through one workflow. Modules package that configuration for reuse, and the registry distributes it.
Why this skill matters now
Clicking through a cloud console does not survive contact with an audit, a second environment, or staff turnover. Infrastructure as code has become the default expectation for anything running in production, and Terraform is the tool most organisations standardise on because it works across providers rather than locking to one.
The skill gap is rarely syntax. Most engineers can write a resource block within an hour. What causes production incidents is state management — remote backends, locking, workspace strategy — along with module design that does not collapse under reuse, and the lifecycle meta-arguments that decide whether a change updates a resource in place or destroys and recreates it. That last one has taken down more environments than any syntax error.
Demand also comes from the compliance side. Infrastructure defined in code is reviewable, diffable and attributable, which is why regulated organisations increasingly mandate it, and why Terraform skills appear in platform, cloud and security engineering roles alike.