Terraform.IO

Talking about cloud orchestrators, that too open source - there seems to be only one dominating name in the market - Terraform.IO

I came across this tool, while in search of my cloud architecture journey and this has blown my mind. I had, the creation of a certain CLI tool which would help orchestrate the provisioning of cloud resources, on my mind. I had also thought about the array of IAAS platforms to target. If I had to actually do it, I would have definitely done it like Terraform.IO. It looks like the world needed this tool so bad!

This is a product by HashiCorp built on Go programming language and is completely open source. Please find the repo here. The learning curve is very quick. If you just want to use Terraform as tool, then you don’t need to know Golang. However, if you intend to extend it’s functionality, you are required to do so using Golang.

Terraform is the tool which follows the philosophy of Infrastructure-as-a-code. All you need to do is define your templates in the form of configuration files and then plan and apply these to provision new resources or change existing ones. The reason I highlighted “plan” and “apply” is that - those are the 2 main commands in Terraform CLI you would come across, if you happen to use it. These configuration files would take some time to getting around but nothing as compared to learning a new language altogether.

There are a few blog posts which curse the issue list in Github repo for Terraform - calling it not yet mature. But hey, it is still the best we have in open source and is constantly developing. Terraform is supported heavily by community and HashiCorp developers and as per my belief it is only going to go ahead.

Pricing: Being open source, you can always set it up on your local and use it to provision infrastructure-as-a-code. However, there is an Enterprise version present, where you would need to create an account with them and they would give you an ability to add organisations and add users to that organisation. They help you with migration from existing open source version to Enterprise as well.

Documentation: I have got to be gracious here - the documentation is absolutely superb. I have had 0 resistance searching for the stuff that I wondered about. It is very sleek and simple and most importantly very accessible. You would not have to struggle at all if you want to get your head around this tool.

All in all, looking forward to spend some more time on this. This has definitely got on my list of preffered tools in their area.