Built on top of CloudFormation it provides organizations the ability to write code that is lightyears beyond what they can do with traditional IaC tools like CloudFormation and Terraform.
I've designed this course for developers who have become familiar with the CDK but are looking to take their skills to the next level. I have leveraged over 4 years of experience in building CDK code every single day to put together this course. I hope you enjoy it!
Apps
You've probably written apps before. But did you know you can have multiple apps in the same repo? I'll show you how to set things up and why you'd want to do this.
Stacks
Stacks are abundant. You're going to build a lot of them. I'll cover how to build muilti-stack systems, how to handle circular dependencies, and what happens when you find yourself needing to refactor stacks you've already deployed.
Constructs
Building constructs is the core of the CDK. I review best practices for building them as well as how to modify constructs you don't control through escape hatches.
Testing
Unlike most IaC systems, the CDK allows you to test it in multiple ways.
I'll cover unit tests, both fine-grained assertions and snapshot tests. Then you can graduate to integration tests that catch more bugs. Finally, I'll cover how you can build full end-to-end tests for your applications.
Projen
Projen is an offshoot project from the AWS CDK and provides a lot of benefits when it comes to building CDK applications.
I'll teach you how to create new CDK projects with it, how to create reusable JSII constructs with it, and how it can help you in your testing process.
Reading the Documentation
The AWS CDK documentation is quite extensive and can be daunting and hard to understand.
I'll explain how to read it, where the best parts of it is, and what all those "IWhatever" things are.
Aspects
Aspects are an often overlooked feature of the AWS CDK.
I'll dive into what they're useful for and show you some examples of how you can leverage them to handle some aspect oriented programming concerns.
and more...
I plan on extending this course over time including:
Examples
Using external data
How importing works.