CDK differs from “traditional” IaC in many ways. Two characteristics in particular are enablers for optimal Platform Teams: encapsulation and composition.
CDK Constructs naturally enable encapsulation, and their class based paradigm allows for easy composition.
“Team Topologies” is becoming the standard for scaling engineering teams that deliver value. In team topologies a Platform team enables several “Stream Aligned Teams” to deliver value to customers.
For a platform team to work well, best practice and governance need to come as a net benefit to other teams - packaged up as an enabling toolkit. CDK constructs (e.g. for an API endpoint with correct WAF, limits and observability) can be created by the Platform team, and provided as a construct to Stream Aligned Teams to consume.
In such an approach we don’t end up with static monolithic repo templates (like we’ve all seen with other IaC solutions), and instead build a range of encapsulated constructs that encode best practices/learnings and can be combined together to build fully fledged services.
In this talk we'll look at the characteristics of CDK that enable Platform teams, real world examples of constructs created by platform teams and best practices for structuring your teams & code sharing.