5 ms·
My opinion from doing both these ports and greenfield is this: None of the tools that say they help you move faster matter after the first 3 months. It's true
by jpgvm 3y ago
My opinion from doing both these ports and greenfield is this:
None of the tools that say they help you move faster matter after the first 3 months.
It's true they take less code and pieces to get started with. No k8s manifests, no Dockerfiles (usually) but if you don't hate your future self you will still use IaC to create the API Gateways/function contexts/DynamoDB/whatever, so you will still be dicking around with at least one of Terraform/Pulumi/similar.
The thing is the setup cost of a traditional lang + pg + k8s setup amortised over 3 months is essentially nothing and yet you have a setup that will last you effectively forever.
If your company wasn't going to die because of being a few days slower in that initial 3 month period you have came out ahead. You have a forever architecture and you avoided a whole bunch of costs and technical debt in the process.
Maybe the calculus is different if you don't have the same depth of infrastructure experience I do but for me it's obvious this is a faster and better way of delivering a prototype that gives it proper room to grow into production software.
- emodendroket 3y agoI am more of a generalist than you are but I have worked with a Kubernetes setup and I've also worked with going all-in on Lambda and other AWS services managed by CDK and I don't share your intuition. Besides the initial setup, the former also has other ongoing maintenance things that are harder to deal with. It does give you more flexibility if whatever you're doing isn't a good fit for those tools, though (though obviously nothing stops you from provisioning EC2 instances or whatever through other tools).
- Aeolun 3y agoI have a hard time imagining anyone doing anything non trivial with CDK and walking away happy.
- emodendroket 3y agoWhy? Do you have something specific to say about why you dislike it? I think it’s pretty good.
- re-thc 3y agoCross region/account usage is terrible. It's also 1/2 baked. Some things have higher level constructs but some don't. Lots of things have to be "escaped" to get it to work. If you're just on a single region/account then yes it's better than alternatives.
- scubbo 3y agoI suspect that you're not deploying with a CDK-defined Code Pipeline (starter article[0], in-depth example[1]), which makes cross account/region deployments so ludicrously smooth and simple that it often has newbies refuse to believe that it can have worked _that_ easily. It is true that _some_ resources don't have L2 constructs, but there's pretty damn good coverage of the most popular services - and, even when you have to drop back to L1, that's still better than hand-written CFN templates or abandoning IaC entirely! [0] https://docs.aws.amazon.com/cdk/v2/guide/cdk_pipeline.html https://docs.aws.amazon.com/cdk/v2/guide/cdk_pipeline.html [1] https://pipelines.devops.aws.dev/ https://pipelines.devops.aws.dev/
- scubbo 3y agoOddly I'm not able to reply directly to re-thc, so I hope you don't mind me commenting here that - I suspect that they're not deploying with a CDK-defined Code Pipeline (starter article[0], in-depth example[1]), which makes cross account/region deployments so ludicrously smooth and simple that it often has newbies refuse to believe that it can have worked _that_ easily. It is true that _some_ resources don't have L2 constructs, but there's pretty damn good coverage of the most popular services - and, even when you have to drop back to L1, that's still better than hand-written CFN templates or abandoning IaC entirely! [0] https://docs.aws.amazon.com/cdk/v2/guide/cdk_pipeline.html https://docs.aws.amazon.com/cdk/v2/guide/cdk_pipeline.html [1] https://pipelines.devops.aws.dev/ https://pipelines.devops.aws.dev/
- emodendroket 3y agoIf the reply link doesn't appear you can still reply by clicking on the timestamp. I don't know why it works that way.
- nostrebored 3y agoThe IAC piece is the same across both. Except with k8s you’re managing infrastructure across cloud, k8s, potentially frameworks like helm, etc. And on a large team there’s very little likelihood that everyone understands the different configuration layers. There’s very little likelihood that people understand the scope that changes to configuration might touch either. But when you work with CDK, it’s one tool to understand. Faster and better way to grow into production ignores team level problems and team level constraints. At 10, 20, 100 engineers this is fine. But when you have dozens of teams you’re almost certainly losing efficiency by being prescriptive. I find that this type of pedantry really surrounds the k8s ecosystem. I think k8s is an enterprise scale tool that has uses in enterprise applications. But the idea of suggesting it to everyone is lunacy