3 ms·
I wholeheartedly agree with the Cloudformation take. Terraform is better in almost every way. If you use Cloudformation you'll end up writing a bunch of bash
by CSMastermind 6y ago
I wholeheartedly agree with the Cloudformation take.
Terraform is better in almost every way. If you use Cloudformation you'll end up writing a bunch of bash script wrappers or similar around it to make it actually do what you want.
Everyone who's tried both at scale has said the same thing.
- boredgamer2 6y agoTerraform is better in almost every way. I disagree. I spent time in Terraform a few years ago working with a client and Terraform had the ability to create but not tear down resources for some services. I was shocked -- check out the Github issues history. I ended up writing a "bunch of bash script wrappers or similar around it".
- noirbot 6y agoYea, this is exactly what I was talking about. It's not to say that Cloudformtation can't run into the same thing - deleting S3 buckets is difficult in any situation - but there's a lot of things Terraform doesn't/won't do, and often you're left with just making your own second layer of automation to work around.
- noirbot 6y agoTo be fair, that also happens a lot in Terraform. I'm taking over work at my org where people have wrapped Terraform in 2-3 different tools and templating engines. And then you have to work out how to robustly store and back up your TF states because piecing it back together if you lose your state, or someone else corrupts it, can be just as bad as the worst CF issues. Overall, I think Terraform is better if you're deploying a lot of inter-connected resources, but Cloudformation makes a lot of things "just work" in ways that Terraform doesn't. I think of it like ECS vs. EKS/Your Own Kube Whatever. ECS is full of gotchas and limitations, but if you play along with it you get a lot of things "for free".
- oneplane 6y agoIf you store your TF state on S3 and use versioning you'll never have that lost state problem.
- kolanos 6y agoFor anyone writing bash scripts to manage CloudFormation templates (eek), there are tools out there like Troposphere to make CF manageable [0]. [0]: https://github.com/cloudtools/troposphere https://github.com/cloudtools/troposphere
- tie_ 6y agoI'll chime in with https://tropostack.readthedocs.io https://tropostack.readthedocs.io (based on Troposphere)