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 practices 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 that 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.