Terraform

Terraform was announced by Mitchell Hashimoto on the HashiCorp blog on July 28, 2014, described as “a tool for safely and efficiently building, combining, and launching infrastructure.” The announcement framed Terraform as a way to describe a complete infrastructure as code, spanning everything from physical servers and containers to hosted SaaS products.

A defining feature from the start was multi-provider composition. The launch post explained that a single Terraform configuration could create resources across multiple service providers at once - for example servers from AWS, DNS from CloudFlare, and a database from Heroku - and build them in parallel. This let teams treat an entire heterogeneous stack as one versioned definition.

Terraform’s other signature feature was the execution plan. Before applying any change, Terraform shows exactly what it intends to create, modify, or destroy, so changes to running infrastructure are predictable rather than surprising. The current documentation summarizes the tool as “an infrastructure as code tool that lets you build, change, and version cloud and on-prem resources safely and efficiently,” using declarative configuration files that “describe the end state of your infrastructure” and working with virtually any platform that exposes an API.

Terraform effectively defined the modern infrastructure-as-code category, and its provider model and plan-and-apply workflow became widely imitated. The tool was later relicensed away from an open-source license, which prompted the community OpenTofu fork to continue under open terms.