Does anyone even use AWS CDK?

I saw something about CDKv2 getting released and immediately made up my mind about it and just want to validate my opinion.

I'm having a hard time thinking of a case where I would need to use yet another layer of bullshit to deploy cloud infra.

It's bad enough with terraform(which I far prefer over cloud formation). But now you can use python or node? What's next, deploying with XSLT?

I'm partially ranting, because I know someone on my team is going to show this as the "new thing" and I'll be stuck maintaining my code...as code--and that really pisses me off.

I'm also legitimately curious on how many of you have run across this being used successfully and for what problem did it solve?

  • 3
    I kinda liked it (when I used it), mostly it just reduces the number of languages you need to use in one stack, also makes it easier to do dependencies, hook stuff up together etc.

    That said, people don't use it particularly well. I've also seen people trying to write tests that are like "create an ec2, confirm that an ec2 was created", so close to testing getter/setter crap.
  • 2
    I also only really used it for lambda/sqs/sns/s3
  • 3
    Using it. When your team is small and everyone dealing with infra is a dev first and foremost, having it defined in something as familiar as TS or Python pays dividends. I much prefer it over dealing with CloudFormation templates or ClickOps. Haven’t bothered to update to v2 yet, so I haven’t really formed my opinion on that yet.

    For a team like ours its either being locked into a static infra that people are afraid to alter or CDK, which empowers the team to develop it. Besides that it has the additional benefit of serving as documentation understandable to your avg dev.
  • 2
    There is definitely value in using normal code over cloudformation. But I only know if things like troposphere and pulumi.
  • 1
    Terraform for the win
    Terraform is the most mature out of all of them
  • 0
    @100110111 I'm in a similar situation, small team. I have tried to get everyone to at least look at terraform since we're multi-cloud(AWS and Azure).

    90% of the team still wants to manage infra manually from the web consoles.

    Even had one dev become self-aware enough they started to script aws-cli out with bash. That was an unholy disaster.

    It all seems fruitless though. Sure you don't need to learn a new language, but you're still learning how it all fits together. IMO it all ends up as cloud formation(at least it should be) so why not separate infra code from application code? I personally hate cloud formation because it's vendor lock-in, but terraform/Morpheus/Ansible/etc is platform agnostic. Same can be said for "CDK solutions", but something about it just feels dirty.
  • 1
    @sariel horses for courses, if you ask me.

    Terraform does make more sense if you are multi-cloud. Good thing is (for us) is AWS CDK seems to be pretty easy to translate to Terraform CDK if ever needed, despite for now not foreseeing absolutely any reason to go multi-cloud in the foreseaable future.

    But seriously, I don’t get why any (dev) would want to manage infra the ClickOps way… makes no sense to me
  • 1
    @100110111 completely agree. It's like managing mysql through phpmyadmin.
  • 1
    Doesn't terraform end as cloud formation files anyway? Or am I confusing it with something else.
  • 1
    @ars1 all IaC for AWS does. Don’t know what’s the format for other cloud vendors tho.
Add Comment