A year ago I tried CDK using python and all commands ran incredibly slow. I'm curious if that was fixed, or if it's a problem with other languages too.
Did you start with CloudFormation and move onto CDK, or did you start with CDK?
The reason I ask is to determine whether you try to reconcile what's going on in CDK vs what's going on in CloudFormation.
Years ago I started with CloudFormation, then moved to Terraform because CloudFormation lacked a lot of features back then. About a year ago I tried CDK. My impression was that CDK makes it very difficult to know what's actually happening under the hood. It's bad enough to have to understand CloudFormation, but the CDK adds more complexity over CloudFormation with the intent of being "magic" enough that people don't need to know how it works.
And maybe that's fine. Perhaps people can be productive without knowing how something works. But that drives me insane. When technology is magic and something goes wrong then it's impossible to fix (fixes require understanding what went wrong). Also magic makes it difficult to predict the effect when you make changes.
- It provides a library in your favorite language to map objects -> CFN YAML
- It provides a command line to deploy that CFN YAML + any needed resources, like Lambda payloads. This is done with `cdk bootstrap` [0]
Mapping objects to YAML is straightforward -- every language has some way to serialize arbitrary objects to YAML. CDK provides level 1 constructs [1] with the allowed CFN types. I use TypeScript, so these types are _super_ helpful, especially with Intellisense. I'm not sure how helpful they are if you're using Python.
Once you have those level 1 constructs, you can build abstractions on top of them. That's what the more complicated L2/L3 constructs are.
Because the end result is CFN YAML, you do still need to understand CFN. CDK just makes the authoring experience significantly more pleasant by eliminating the need to write CFN YAML. You still need to know how to deploy CFN YAML.
A year ago I tried CDK using python and all commands ran incredibly slow. I'm curious if that was fixed, or if it's a problem with other languages too.
Did you start with CloudFormation and move onto CDK, or did you start with CDK?
The reason I ask is to determine whether you try to reconcile what's going on in CDK vs what's going on in CloudFormation.
Years ago I started with CloudFormation, then moved to Terraform because CloudFormation lacked a lot of features back then. About a year ago I tried CDK. My impression was that CDK makes it very difficult to know what's actually happening under the hood. It's bad enough to have to understand CloudFormation, but the CDK adds more complexity over CloudFormation with the intent of being "magic" enough that people don't need to know how it works.
And maybe that's fine. Perhaps people can be productive without knowing how something works. But that drives me insane. When technology is magic and something goes wrong then it's impossible to fix (fixes require understanding what went wrong). Also magic makes it difficult to predict the effect when you make changes.