Navigating the cloud and #DevOps horizon is hard, things are moving quickly.
ThoughtWorks recommends HOLD on handwritten AWS CloudFormation in #TechRadar 2019 edition. Building a complex infrastructure in essentially huge YAML text file is doomed to fail thoughtworks.com/radar/tools/ha…
The same about templating in JSON, because YAML is JSON actually. Better to use real programming language instead. The dev in #DevOps
So Terraform is the ADOPT in #TechRadar 2019 and "sensible default" that addresses the shortfalls of AWS CloudFormation as stated here: thoughtworks.com/radar/tools/ha…
There are other options listed, including troposphere, sceptre, Stack Deployment Tool and Pulumi. Not sure if endorsed.
Terraform is on the #TechRadar since 2015 reaching ADOPT in 2019 only. Bear in mind that it supports many cloud and on-premise providers it is NOT an abstraction on those - you still call vendor-specific API.
Community adds latest cloud features. Evolved into stable product.
The issue with state file management can now be sidestepped by using what Terraform calls a "remote state backend." We've successfully used AWS S3 for that purpose. thoughtworks.com/radar/tools/te…
Prior to AWS S3 was Consul.
Another remedy to AWS CloudFormation excessive YAML usage (and Terraform alternative?) is AWS Cloud Development Kit (AWS CDK) that is TRIAL on #TechRadar 2019 thoughtworks.com/radar/platform…
AWS CDK supports programming language to build CloudFormation docs: #JavaScript#TypeScript
Given that AWS CDK has all the benefits of CloudFormation (state management, auto rollback) there's a big win over Terraform where you have to code it via AWS API calls yourself. Note that the Terraform code has to use AWS-specific APIs anyway, there's no abstraction.