Terraform: Administer Your Clouds from the Command Line

Terraform is a command line tool that is rapidly gaining popularity among cloud developers. This tool was created by Mitchell Hashimoto who is also credited with developing Vagrant. You might recall that Vagrant is a popular tool used for rapidly staging development environments in the cloud. Terraform builds upon Vagrant’s principles of making administration of your cloud fast, simple and easy. The Terraform tool works on all clouds regardless of vendor. In Hashimoto’s demo code posted on his website, he shows how he is able to administer DigitalOcean droplets from the command line versus logging into the web based GUI interface on DigitalOcean’s website.

Hashimoto mentions on the Hashicorp blog, “Terraform is configured using a high-level, expressive configuration syntax to describe the resources that make up your infrastructure.” In demonstrating the code, Hashimoto said, “Terraform automatically infers dependencies and uses this information to parallelize the creation of your infrastructure as much as possible.”

The command line code that Hashimoto demos on his blog shows how he is able to create a DigitalOcean droplet and utilize the droplet’s IP address to push the DNS record to DNSimple. Hashimoto writes, “This sort of infrastructure composition from code is new and extremely powerful.”

Terraform is built using the Go programming language. Implementing Terraform could lead to some pretty sophisticated, automated tasks that would ultimately happen across multiple public cloud providers. Terraform seems to have a promising future due to its simplicity and ease of use.

Based on the demos posted on Hashimoto’s website, the code structure resembles your typical command line codes and the structure is straight forward meaning there would be very little learning curve for someone wanting to quickly pickup the basics of this cloud command line administration tool. Terraform is already generating buzz in cloud development circles.