Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Cloud Development Kit 101

AWS Cloud Development Kit 101

The Infrastructure as Code landscape seems to be dominated by declarative approaches such as CloudFormation or Terraform (YAML, JSON or HCL). While that’s perfectly fine for describing your infrastructure as the desired state, it’s just not a lot of fun to stare at 1,000s of lines of YAML. Let alone all the missing features and tooling around imperative languages such as proper dependency management, composable abstractions and testing support.

Let’s explore what the AWS Cloud Development Kit (CDK) and its emerging ecosystem has to offer to make defining cloud resources a first class citizen in the software engineering world. We’ll take an example and follow from the first initial steps all the way to a production deployment. Along the way, we’ll take the opportunity to discover essential concepts of the CDK and how it enables you to define your Infrastructure in Typescript, Python, Java or C#.

https://twitter.com/skorfmann

Sebastian Korfmann

July 16, 2020
Tweet

More Decks by Sebastian Korfmann

Other Decks in Programming

Transcript

  1. AWS CLoud Development Kit • Built by AWS Team •

    Established 2017 (Public Release 2018) • Making it fun & easy to define Cloudformation resources • Intent driven API • Stdlib for AWS Services
  2. JSII - Everything boils down to JS / TS jsii

    allows code in any language to naturally interact with JavaScript classes
  3. AWS CDK • Synthesizes our Code to Cloudformation • Handles

    Assets • Orchestrates the Deployments • Primary Interface
  4. CDK Gotchas • Synchronous only (no easy way to do

    async / await / Promises in Constructs) • Package version alignment -> With 2.0 likely a single package • Refactoring with existing state still not straightforward
  5. AWS CDK Benefits • Imperative Programming • Composable Constructs •

    Standard Library for AWS Services • Proper Dependency Management • Emerging Ecosystem
  6. Ecosystem • cdk8s - CDK for Kubernetes (by AWS) •

    Terrastack - CDK for Terraform (Proof of Concept by myself) • ... ?