AWS has introduced a major release of its popular Cloud Development Kit. AWS CDK v2 is now generally available for use with AWS Construct Hub.
Ken Exner, general manager of AWS developer tools, called CDK v2 "a major version release." *CDK v2, an open source framework to configure cloud resources using programming languages C#, TypeScript, Java, Python and Go, has exited the developer preview stage, where it was tested and tweaked, and is now generally available.
*CDK v2, unveiled at the recent AWS re:Invent 2021, is a 2.0.0 release and stems from a process that signals to the developer that this is a major software update and includes significant changes, Exner explained.
Construct Hub, a shared code library for building CDK applications, was also in an experimental phase and it joins CDK v2 for general release.
With the new releases generally available, Construct Hub can enable free sharing of open source construct libraries with the broader cloud development community.
V2 focuses on productivity
CDK v2 focuses on productivity improvements for developers, and siloed construct libraries have been consolidated into a single package. This was done in response to user feedback, at least in part, Exner said.
Ken ExnerGeneral manager, AWS Developer Tools
"It's ironic because we thought we were being smart to [have developers] consume a la carte, but people wanted all the packages together," he said, of the consolidation for v2.
This simplifies dependency management in CDK applications and when publishing construct libraries. It also makes working with CDK projects that reference constructs from multiple services more convenient, the company stated.
DevOps has blurred the line between runtime code and infrastructure code, and it's no surprise that engineers want to write both in the same language, AWS pointed out, which is why it created CDK in the first place. Regular users include Audi, VMware and Liberty Mutual. Based on feedback from such customers and thousands of other CDK users, AWS realized it had to produce a second version.
Customers such as Audi use AWS Lambda, which enables the developer to run code without provisioning or managing infrastructure, in which a user writes and uploads code as a zip file or container image, according to the company.
Matt Coulter, technical architect for global risks solutions at Liberty Mutual, said in his talk at re:Invent, "Every single line of code must have business value."
In 2019, when Liberty Mutual adopted the first iteration of CDK, it was time for the company to go through an evolution. "But like with everything else in life, we needed to start slow before we could gain some speed, and then optimize on best practices," Coulter said. He wrote a custom-authorized Lambda function, which reduced more than 1,500 lines of CloudFormation code to just 14 on CDK.
In conversation with SearchSoftwareQuality, Coulter -- an AWS DevTools hero -- seemed bullish on the new version, and while he could not quantify any more savings, he did say CDK v2 will free up more time for developers. "You build it once and then you deploy the same artifact; now you can technically do anything."
He added that because it is a developer tool, its size doesn't really matter. In its initial phase, CDK "was built like it was something you were going to deploy" when it was only meant to be installed once.
With v2, it's not that the experimental aspect of the tool is gone altogether, but those bits are clearly labeled to inform the developer. Coulter said: "The stable stuff's all bundled by default, and the experimental stuff you have to explicitly pull in."
AWS' Exner said the bundling was required to make a significant overhaul to even bring a second "bump" to the market. With CDK v2, users now have a way to "distinguish between experiments and those based and refined," he said.
"In the world of SDKs and libraries, a version 2 or breaking change" cannot be taken lightly, he said. "You can't simply upgrade to the newer version without changes."
*This story has been updated to make clear CDK v2 is generally available and was a major software release.