Infrastructure as Code (IaC) is a way to describe architecture components textually using executable software code that is managed in version control. Being executable means it can be fed through an execution engine to generate infrastructure in a consistent and repeatable manner. Being written in human consumable form and stored in a version control system just like any other piece of software enables teams to collaborate on the evolution of their architecture's infrastructure reviewing and approving changes alleviating the knowledge silos of traditional provisioning methods.
Several implementations of IaC have been introduced such as Terraform, Ansible, CloudFormation, and Chef and most have grown to significant popularity due to their ability to capture the benefits described earlier. A consistent challenge of the previously mentioned IaC technologies is the need to learn a domain specific language which to various extents are generally restrictive to declarative configuration style syntax. However, there has been an emergent technology called Cloud Development Kit (CDK) offered by Amazon Web Services (AWS) which has shown significant promise extending the benefits of IaC.
AWS CDK empowers developers to use one of several familiar programming languages like Typescript, Python, Java, and C# along with powerful Object-Oriented Programming paradigms and patterns. Together the use of these familiar high-level programming languages and patterns allow for composing reusable and extendable constructs that produce enterprise level cloud architecture with surprisingly small amounts of well-crafted CDK IaC code utilizing opinionated defaults ensuring security and consistent provisioning.
In this talk we’ll explore the key concepts of AWS CDK focusing on the abstractions and patterns it utilizes to go beyond the standard benefits of IaC to provide a highly productive framework for provisioning robust and scalable cloud architectures.