HashiCorp’s open-source project Terraform is increasingly becoming more popular as organizations look for new ways to create and maintain infrastructure. Terraform is designed to write, plan and create infrastructure as code. In Thoughtworks’ latest technology radar, the company dubbed it the “de facto choice for creating and managing cloud infrastructures by writing declarative definitions.”
While most cloud platforms offer their own solution for managing servers, HashiCorp explained Terraform can be used across clouds and is often chosen over those other solutions. “At ThoughtWorks and the kind of clients we work with, a lot of them, some do use those tools. But a lot of companies, even ones that are using a single cloud provider will still use Terraform even though they may not necessarily be thinking so much about going across clouds,” explained Kief Morris, principal cloud technologist at ThoughtWorks. “I think that probably has to do with [the fact that] the language is quite good and easy to work with, and also because the traction means there’s lots of documentation and resources out there so it’s easy to find stuff on how to use Terraform.”
Morris also explained that Terraform was really the first solution to “get it right,” which has contributed to its popularity.
The infrastructure-as-a-service solution turns configuration files into APIs that can be shared with team members and be treated as code to be edited, reviewed, and versioned. According to Terraform’s website, the solution allows organizations to utilize one workflow across providers. This ensures that operators are able to safely and predictably make infrastructure changes. Operators can also map resource dependencies before executing a change, which ensures that they understand how a relatively minor change could have cascading effects across the infrastructure.
“Now, rather than configuring a server by hand, you have some code and you can write some automated tests for that and then you can like automatically spin up a test environment, run tests against it, and so that gives you a better way of doing change management and change control. A more rigorous way of doing testing,” explained Morris.
Recently, the company announced a major update to the product: Terraform 0.12, adding first-class expression syntax, a generalized type system, iteration constructs, structural rendering of plans, and context-rich error messages.