HashiCorp, a company that builds software to simplify DevOps, has unveiled Terraform, a tool designed to make it easier to run services and applications by assembling all the necessary components and dependencies between different hosted services.
According to a blog post this week from HashiCorp, Terraform provides a high-level syntax for describing how cloud resources and services should be created, provisioned, and combined. In other words, with just a few lines of code, it can easily create and manage infrastructure resources while avoiding conflicts.
Terraform can infer dependencies between applications, and combine resources from multiple services providers. In an example, Terraform is used to create a DigitalOcean virtual server (or “droplet”) and then use the IP address of this droplet to add a DNS record to DNSimple that links it to a domain name.
It currently supports Amazon Web Services, CloudFlare, Consul, DigitalOcean, DNSimple, and Heroku, as well as nearly any service with an exposed API. Its flexible, plugin-based model also allows it to potentially support many providers and provisioners.
Terraform is different than configuration management tools like Chef which install and manage tools on a machine that already exists. Instead, Terraform focuses on the higher-level abstraction of the datacenter and associated services, while also allowing Terraform users to use configuration management tools when needed.
Instead of focusing on individual resources, Terraform helps bridge the gap between multiple service providers. It can, for instance, communicate what components are necessary to run an application on a cloud computing platform like Heroku.