4 ms·
CloudFormation covers all AWS features in full detail. OTOH, you end up reading and editing tons and tons of JSON that were never meant for human consumption. I
by Florin_Andrei 10y ago
CloudFormation covers all AWS features in full detail. OTOH, you end up reading and editing tons and tons of JSON that were never meant for human consumption. I don't know what goals Amazon had when they came up with CF, but if human readability was one of them, then they've failed that goal.
I've seen a lot of people start writing their own CF management systems, in Python or whatever, and end up with a lot of infrastructure defined in the logic of the homegrown management tool - like a badly written PHP page where presentation and logic are all mixed up. You see that once, you never want to go there again.
Terraform does not cover all AWS features, but the exceptions are few and tend to be lesser used features. The file format is human readable (this is subjective to some extent), and can be composed and modularized easily.
https://opencredo.com/terraform-infrastructure-design-patterns/ https://opencredo.com/terraform-infrastructure-design-patter...
https://github.com/hashicorp/best-practices https://github.com/hashicorp/best-practices
https://atlas.hashicorp.com/help/intro/use-cases/multiple-environments https://atlas.hashicorp.com/help/intro/use-cases/multiple-en...
https://www.terraform.io/intro/getting-started/modules.html https://www.terraform.io/intro/getting-started/modules.html
https://www.terraform.io/docs/state/remote/index.html https://www.terraform.io/docs/state/remote/index.html
I'm not a big fan of buzzwords and soundbites, but Terraform comes pretty close to fulfilling the ideal of "software-defined infrastructure" in a way that is accessible, easy to use, easy to expand, and just makes sense - in the way a good programming language just makes sense.
- babo 10y agoJust a note, even Cloudformation is not covering all AWS features. It's more complete but not 100%.
- passiveincomelg 10y agoHave you seen https://github.com/bazaarvoice/cloudformation-ruby-dsl https://github.com/bazaarvoice/cloudformation-ruby-dsl and do you consider it an instance of this PHP-like stuff?