The AWS CDK solves an important problem by providing a true software language interface to AWS CloudFormation. AWS CloudFormation has limitations that are better solved in a programming language. Infrastructure as code has been around for a few years now, but is AWS CloudFormation really code? How do you share a standard AWS WAF configuration with your company? The answer is, you can’t do this well because AWS CloudFormation is more configuration and less code.
With the AWS CDK, developers can now:
- Version and release infrastructure code to the same repositories as application code (Nexus, NPM, PyPi, RubyGems, Artifactory, NuGet, GitHub).
- Use CDK support for programming languages, so code constructs like functions, inheritance, or conditional flow are no longer an odd notation in YAML or JSON, but are in the actual programming language the developers are using for application code. CDK supports TypeScript, .NET, Java, and JavaScript today. More languages are coming, and expect to see Golang, Python, and Ruby join the list.
- Reuse and consume CDK components, known as constructs, by using the dependency management tools already native to the developer’s programming language of choice.
These features really enable a company to finally compose reusable AWS CloudFormation components that are tailored to the specific business needs of the company.
Intuit Principal Engineer, Mike Cowgill shares his takeaways, contributions, and challenges with the AWS CDK on the AWS blog.