Terraform

terraform.io

Infrastructure-as-code language for provisioning and managing cloud resources declaratively.

Overview

Terraform is an infrastructure as code (IaC) tool created by HashiCorp that enables teams to build, change, and version infrastructure safely and efficiently. It supports provisioning across multiple cloud providers and services, from low-level components like compute instances and storage to high-level components like DNS entries and SaaS features.

The Terraform ecosystem includes the open-source CLI tool for local infrastructure management, HCP Terraform (a hosted collaborative platform for teams), and Terraform Enterprise for organizations with advanced security requirements. Teams can use Terraform to automate infrastructure provisioning, manage remote state, enforce policies, and share reusable modules through the Terraform Registry.

Key features

  • Infrastructure as code with HCL configuration language
  • Multi-cloud and multi-provider support
  • State management and remote state sharing
  • Version control integration
  • Policy as code (Terraform Policy)
  • Private module registry
  • Team collaboration and access controls
  • Automated workflows and CI/CD integration
Pros
  • Declarative syntax for clear infrastructure definitions
  • Broad provider ecosystem for multiple cloud platforms
  • Strong community and extensive documentation
  • Free open-source CLI available
  • Collaborative features with HCP Terraform
  • Reusable modules reduce code duplication
Cons
  • Steep learning curve for beginners
  • State file management complexity
  • Requires understanding of cloud provider concepts
  • Enterprise features require paid plans
Use this if
You need to manage infrastructure across multiple cloud providers, want to version control your infrastructure, require team collaboration on infrastructure changes, or need policy enforcement and governance capabilities.
Skip this if
You prefer imperative infrastructure management, need a simpler tool for single-cloud deployments, or lack experience with infrastructure concepts and configuration languages.

Best for

Multi-cloud infrastructure provisioningInfrastructure automation and version controlTeam collaboration on infrastructure changesPolicy enforcement and governanceReusable infrastructure modules

Alternatives

CloudFormationPulumiAnsibleChefPuppetAWS CDK

Compare Terraform alternatives

More Devtool

Compare all
View Deno
Deno

Secure TypeScript/JavaScript runtime with built-in tooling, permissions, and npm compat.

View Nuxt Studio
Nuxt Studio

Visual content editor for Nuxt Content with live preview and team workflows.

View matlab
matlab

Matrix-based language and environment for engineering, signal processing, and simulation.

View Emacs
Emacs

Powerful, extensible text editor that supports various programming languages and file types.