What is terraform

Last updated: April 1, 2026

Quick Answer: Terraform is an open-source Infrastructure as Code tool created by HashiCorp that enables developers to define, provision, and manage cloud infrastructure using declarative configuration files instead of manual processes.

Key Facts

Overview

Terraform is an open-source Infrastructure as Code (IaC) tool developed by HashiCorp that allows developers and operations teams to define, preview, and deploy infrastructure across multiple cloud providers. Using declarative configuration files written in HCL (HashiCorp Configuration Language), Terraform enables consistent, repeatable infrastructure provisioning without manual console interactions or scripting.

Core Concepts and Workflow

Terraform operates on three main commands: init (initialize working directory), plan (preview changes), and apply (execute changes). Users write configuration files describing desired infrastructure state, then Terraform calculates the difference between current and desired states, showing a plan for review before applying changes. This workflow prevents surprise infrastructure modifications and enables thoughtful infrastructure management.

Multi-Cloud Support

A major advantage of Terraform is its multi-cloud capability. The same Terraform configuration patterns work across AWS, Azure, Google Cloud, DigitalOcean, and hundreds of other providers. This abstraction layer enables organizations to avoid vendor lock-in and migrate infrastructure between cloud providers by modifying configuration rather than complete rewrites.

State Management

Terraform maintains state files recording the current infrastructure configuration. These state files enable Terraform to understand existing resources and calculate necessary changes. State files can be stored locally or remotely (in S3, Azure Storage, or Terraform Cloud), enabling team collaboration and safe concurrent infrastructure management. Proper state file management is critical for preventing accidental infrastructure destruction.

Version Control and Collaboration

Because Terraform configurations are text files, they integrate seamlessly with version control systems like Git. Teams can review infrastructure changes through pull requests, maintain audit trails of modifications, and collaborate on infrastructure design. This practice brings DevOps discipline to infrastructure management, treating infrastructure code with the same rigor as application code.

Modularity and Reusability

Terraform supports modules—reusable configuration packages that encapsulate infrastructure patterns. Organizations develop libraries of modules representing common architectures (web servers, databases, networks), enabling rapid standardized deployments. Module composition allows teams to build complex infrastructure from reliable, tested building blocks.

Related Questions

What is the difference between Terraform and CloudFormation?

Terraform is cloud-agnostic and works across multiple providers using HCL, while AWS CloudFormation is AWS-specific using JSON or YAML. Terraform's multi-cloud support and consistent syntax across providers make it preferable for multi-cloud environments, though CloudFormation integrates more deeply with AWS services.

Is Terraform free to use?

Terraform core is completely free and open-source. HashiCorp offers Terraform Cloud as a paid service for remote state management, team collaboration, and governance features, but basic Terraform usage requires no payment.

How does Terraform prevent configuration drift?

Terraform regularly compares defined configuration against current infrastructure state. Running 'terraform plan' shows changes needed to match desired state. This drift detection helps identify unauthorized manual changes and enables corrective actions to restore infrastructure consistency.

Sources

  1. Terraform Official Website Copyright - HashiCorp
  2. Wikipedia - Infrastructure as Code CC-BY-SA-4.0