3 ms·
The new use case for Terraform is IT departments using it as an IaC policy control system for self-service. Rather than push teams through a web interface, you
by wayoutthere 5y ago
The new use case for Terraform is IT departments using it as an IaC policy control system for self-service. Rather than push teams through a web interface, you just expose Terraform via Terragrunt to the dev teams and run their files through a policy-driven linter before executing. And make it so that Terraform is the only way you can push to prod.
I think people get into trouble with Terraform when they try to use it to do more than provision infrastructure. Things that should probably be part of build scripts, CI/CD pipelines or config management. Terraform isn’t good at those things; but it is very good at provisioning cloud infra in a cloud-agnostic fashion.
- pvtmert 5y agoI agree most of your comment but the cloud-agnostic part. Heck, I never get how terraform can be cloud-agnostic... If everybody thinks having a same language (HCL) is equalivent to cloud agnostic, YAML exists... It is literrally impossible to create a simple VM in 2 different cloud providers without defining them twice with their own specific parameters. If you use AWS provider, resources start with aws_, if it's GCP it starts with gcp_ and so on. It is not possible to have a "resource vm { name = ... provider = aws }"
- jen20 5y agoTerraform provides the same _workflow_ across clouds, not the same resource model (which would be dumb, since it would necessarily provide only a lowest common denominator representation). > It is not possible to have a "resource vm { name = ... provider = aws }" It actually is via modules. It’s a lot of work with basically no benefit though, so in practice people don’t do this. Pulumi is better at specifically this kind of thing however, since you can implement a common interface which can be specialised for each available cloud.