Skip to main content

Terraform

Terraform is an infrastructure as code (IaC) tool (infrastructure automation) from HashiCorp for defining, provisioning, and managing cloud and on-premises (on-prem) resources through declarative configuration files and an execution plan–based workflow.

  • Declarative infrastructure as code language for resources across cloud and on-prem (infrastructure automation).
  • Execution plan, resource graph, and apply lifecycle for predictable provisioning and change management (infrastructure orchestration).
  • Provider and plugin model to integrate with many cloud platforms, Software-as-a-Service (SaaS) services, and on-prem systems (integration and extensibility).
  • State management to track real-world infrastructure, enable updates, and support collaboration workflows (configuration management).
  • Support for modules, workspaces, and policy integration for reusable, governed infrastructure patterns (platform engineering).

More About Terraform

Terraform is an infrastructure as code (IaC) tool (infrastructure automation) from HashiCorp that allows platform and operations teams to define infrastructure resources in declarative configuration files and manage their lifecycle through a consistent workflow. It is designed to work across public clouds, private clouds, and on-prem environments so that enterprises can express infrastructure topology, dependencies, and configurations in version-controlled code.

At its core, Terraform uses a declarative configuration language (infrastructure as code) where users describe the desired end state of resources such as compute instances, networks, storage, and managed services. Terraform builds a resource graph (infrastructure orchestration) to understand dependencies between these resources and then generates an execution plan that describes the actions required to reach the desired state. The apply step executes this plan to create, update, or destroy resources in a controlled manner.

Terraform’s provider and plugin architecture (integration and extensibility) enables it to interact with many platforms and services by mapping configuration blocks to remote APIs. Providers are responsible for translating Terraform configurations into Application Programming Interface (API) calls for specific platforms, such as cloud infrastructure, networking, security services, or SaaS applications. This model allows enterprises to standardize infrastructure workflows while using heterogeneous underlying platforms.

Terraform maintains state (configuration management) that records the mapping between configuration resources and real-world infrastructure objects. This state file is used to determine changes between the current configuration and actual infrastructure, enabling Terraform to plan updates and avoid unintended modifications. In enterprise environments, remote state backends and locking mechanisms are commonly used to enable collaboration, auditability, and controlled access to infrastructure definitions.

Terraform modules and workspaces (platform engineering) support reuse and environment separation. Modules allow teams to package infrastructure patterns, such as a network baseline or an application stack, into reusable components. Workspaces and related constructs help manage multiple environments, such as development, staging, and production, from shared configurations while keeping state isolated.

Enterprises integrate Terraform into Continuous Integration and Continuous Deployment (CI/CD) pipelines and broader DevOps workflows (DevOps tooling) to automate infrastructure provisioning alongside application delivery. Policy frameworks from HashiCorp, such as Sentinel, can be used with Terraform in certain editions to enforce governance and compliance controls over infrastructure changes. Within an enterprise taxonomy, Terraform is typically categorized under infrastructure automation, infrastructure as code, and multi-cloud orchestration due to its role in codifying, provisioning, and managing infrastructure resources across diverse platforms.