How Does Terraform Compare to Cloud Vendor Provisioning Tools?

Dec 09, 2019

Terraform is multicloud-friendly, and uses a human-readable programming language, not a machine-readable data structure.


  • Sean Carolan

    Sean Carolan

    Solutions Engineer, HashiCorp

» Transcript

Each cloud vendor has its own tool for deploying resources and infrastructure, and these tools are all based on either JSON or YAML. JSON stands for JavaScript Object Notation, and YAML stands for Yet Another Markup Language, and each of these is a data exchange format. What that means is the format is designed for computers and not humans.

JSON is a large file that contains a lot of curly braces and brackets and so on and so forth, and it's the way that computers communicate with each other. The problem is that JSON files and YAML files can be a little bit hard and rigid for humans to edit.

» Terraform: A language designed for humans

Terraform is a programming language (It uses HCL as the domain-specific language) that makes it very easy for your human operators to build and configure infrastructure in the cloud. JSON files, on the other hand, are not a programming language; they're a data structure, so it makes it a little bit harder to build your infrastructure, because you're using a tool that really wasn't designed for the job.

If I need to pound a nail into a board, I could use a screwdriver or a rock, but the best tool for the job is a hammer. In the same way, Terraform was specifically designed to make it easy for your human operators to be able to deploy infrastructure on any cloud platform.

So the first reason you might think about using Terraform to deploy your infrastructure is ease of use. Your human operators will find it much easier to work with Terraform than they will JSON or YAML files.

» Terraform is multicloud-friendly

The second reason to think about using Terraform is that it's multicloud-friendly. You can use Terraform on Azure or AWS or Google Cloud or Oracle Cloud, and the language works exactly the same way. The implementation and code that you write might be a little bit different between each platform, but once you learn the language, it's very easy to use Terraform to deploy your infrastructure anywhere.

So you can go faster with Terraform. It's also more efficient, and Terraform can also help you reduce risk. Terraform is a lot easier to use, and simpler to work with than JSON or YAML. It's also multicloud-friendly, so you can use Terraform on any cloud platform, even inside your own datacenter. And Terraform is also easy to test, so once you have written all of your infrastructure provisioning code as Terraform, you can test that code, you can share that code, and you can use it across multiple teams within your organization.

To sum up, Terraform is a multicloud-friendly provisioning tool. It's easy for humans to understand, yet powerful enough to deploy all your applications and infrastructure wherever you decide to run them.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now