9 comments

[ 1.8 ms ] story [ 28.3 ms ] thread
> Use Javascript, a true programming language, no more YAML or Domain Specific language.

This appears to be a jab at Terraform but Terraform's declarative language is supposed to be a step forward from ad-hoc provisioning scripts. One of the issues with imperative scripts is you have to be mindful of intermediate state whereas Terraform allows the users to just think about the initial and final state.

Pretty much this. I don't know any DevOps engineers begging to make their configs even less readable
I must say that I prefer the declarative nature of terraform, but it's true that in many cases I've spend ages trying to create variables through loops, whereas in a regular programming language it would have taken me minutes. And sometimes I also face things impossible to do.
I use simple Bash or Python scripts while prototyping, then Terraform for anything that needs maintenance in production.
> declarative language is supposed to be a step forward from ad-hoc provisioning scripts.

The best config systems I've seen leverage a programatic framework to generate declarative JSON/YAML. Rather than needing to bolt one on top.

I must try this out, this graph thing might save me a lot of headaches trying to understand previous DevOps engineer
Seems like a potentially useful tool. Another related approach is https://github.com/GoogleCloudPlatform/terraformer ("reverse Terraform"), which might be better if your end goal is to build Terraform scripts for existing infra.

However I like the idea of using these visualizations to grok or monitor infra; say as a Platform or Security engineering team, you might want to keep an eye on specific classes of resource like storage buckets, load balancers, etc.

A while ago I started using the AWS CDK and never looked back, I can write all the infrastructure code in a real programming language with auto complete and proper IDE support, no more hacky YAML syntax for simple if statements!

Issue with using config for these things is that more complex structures don't scale that well, in code you can do abstractions to make everything easier to reason about.

https://aws.amazon.com/cdk/