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 CarolanSolutions Engineer, HashiCorp
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.