Opinion on technology: Terraform

I recently started checking out Terraform

Anyone have any opinions comments on the technology? :slight_smile:

1 Like

I have used it in a very weird or niche use case - to interact with a CRUD REST API.

Terraform under the hood is a bit complex but is a well known software to “provision” infrastructure - that is, create infrastructure. From a user perspective, it’s not so complex usually. It internally uses REST API of cloud services to create VMs or provide infrastructure for any of the popular services out there. Example - VMs in AWS, GCP, Azure, Digital Ocean, or even other services like AWS S3, GCP GKE etc. If you want to create a resource in a cloud and be able to do it with code and reuse it, then terraform is an option. People usually do such stuff with the cloud Web UI - easier when it’s gotta be done only once. Ideally, in work environments, you would do it multiple times and also want to keep track of every change in infrastructure. Terraform can help with it, along with version control systems like git.

One thing to note is - terraform works with REST APIs and there’s support out there for popular cloud service providers (AWS, GCP, Azure etc). If you use a less known cloud service provider, or a private cloud and don’t have support for terraform, you would have to first write something called a terraform provider, a custom one, which will be code to interact with your cloud’s REST APIs to create resources, using http client libraries and terraform libraries.

It’s a good tech at the moment, gets lots of updates, is well adopted and has a big community. It’s agnostic of cloud providers (big bonus) so learning terrarform skills apply to different tech stacks. Also check out the newly released CDK which allows you to write TF in typescript / python. If you like Terraform, also check out Pulumi (but IMO Terraform is far superior).

I’ve written about Terraform quite a lot, any questions, send them my way!

1 Like