{"id":2210,"date":"2018-11-15T11:14:22","date_gmt":"2018-11-15T19:14:22","guid":{"rendered":"http:\/\/intuitblog.com\/?p=2210"},"modified":"2022-11-10T09:26:16","modified_gmt":"2022-11-10T17:26:16","slug":"contributing-to-the-aws-cloud-development-kit","status":"publish","type":"post","link":"https:\/\/www.intuit.com\/blog\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/","title":{"rendered":"Contributing to the AWS Cloud Development Kit"},"content":{"rendered":"<p>The AWS CDK solves an important problem by providing a true software language interface to AWS CloudFormation. <a href=\"https:\/\/aws.amazon.com\/cloudformation\/\" target=\"_blank\">AWS CloudFormation<\/a>\u00a0has 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\u00a0<a href=\"https:\/\/aws.amazon.com\/waf\/\" target=\"_blank\">AWS WAF<\/a>\u00a0configuration with your company? The answer is, you can\u2019t do this well because AWS CloudFormation is more configuration and less code.<\/p>\n<p>With the AWS CDK, developers can now:<\/p>\n<ul>\n<li>Version and release infrastructure code to the same repositories as application code (Nexus, NPM, PyPi, RubyGems, Artifactory, NuGet, GitHub).<\/li>\n<li>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\u00a0<em>actual<\/em>\u00a0programming 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.<\/li>\n<li>Reuse and consume CDK components, known as constructs, by using the dependency management tools already native to the developer\u2019s programming language of choice.<\/li>\n<\/ul>\n<p>These features really enable a company to finally compose reusable AWS CloudFormation components that are tailored to the specific business needs of the company.<\/p>\n<p>Intuit Principal Engineer, Mike Cowgill shares his takeaways, contributions, and challenges with the AWS CDK on the <a href=\"https:\/\/aws.amazon.com\/blogs\/developer\/contributing-to-the-aws-cloud-development-kit\/\" target=\"_blank\">AWS blog<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The AWS CDK solves an important problem by providing a true software language interface to AWS CloudFormation. AWS CloudFormation\u00a0has 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\u00a0AWS WAF\u00a0configuration with your company?<\/p>\n","protected":false},"author":128776340,"featured_media":7942,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rkv_browse_by_id":0,"rkv_cta_id":0,"rkv_optimize_for_pagespeed":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"useModifiedDate":false,"customPublishDate":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[237496403,1383,1385,237496409],"tags":[144203,1366],"intuit_collection":[],"intuit_series":[],"coauthors":[237496056],"class_list":["post-2210","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-innovative-thinking","category-life-at-intuit","category-people-culture","category-tech-innovation","tag-aws","tag-coding"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Contributing to the AWS Cloud Development Kit - Intuit Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.intuit.com\/blog\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Contributing to the AWS Cloud Development Kit - Intuit Blog\" \/>\n<meta property=\"og:description\" content=\"The AWS CDK solves an important problem by providing a true software language interface to AWS CloudFormation. AWS CloudFormation\u00a0has 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\u00a0AWS WAF\u00a0configuration with your company?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\" \/>\n<meta property=\"og:site_name\" content=\"Intuit Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-11-15T19:14:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-10T17:26:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"aa251549\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"aa251549\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\"},\"author\":{\"name\":\"Intuit Blog Team\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/cee581aae3774965176f857cfe151971\"},\"headline\":\"Contributing to the AWS Cloud Development Kit\",\"datePublished\":\"2018-11-15T19:14:22+00:00\",\"dateModified\":\"2022-11-10T17:26:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\"},\"wordCount\":238,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp\",\"keywords\":[\"AWS\",\"Coding\"],\"articleSection\":[\"Innovative Thinking\",\"Life at Intuit\",\"People &amp; Culture\",\"Tech Innovation\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\",\"url\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\",\"name\":\"Contributing to the AWS Cloud Development Kit - Intuit Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.intuit.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp\",\"datePublished\":\"2018-11-15T19:14:22+00:00\",\"dateModified\":\"2022-11-10T17:26:16+00:00\",\"author\":{\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/cee581aae3774965176f857cfe151971\"},\"breadcrumb\":{\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage\",\"url\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp\",\"contentUrl\":\"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/intuitblog.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Contributing to the AWS Cloud Development Kit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#website\",\"url\":\"https:\/\/www.intuit.com\/blog\/\",\"name\":\"Intuit Blog\",\"description\":\"Powering Financial Prosperity\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.intuit.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/cee581aae3774965176f857cfe151971\",\"name\":\"Intuit Blog Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0f4da45c94b9deb2869010de4271e0fdcb829fe775921deed099837bd52c8d0b?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0f4da45c94b9deb2869010de4271e0fdcb829fe775921deed099837bd52c8d0b?s=96&d=identicon&r=g\",\"caption\":\"Intuit Blog Team\"},\"url\":\"https:\/\/www.intuit.com\/blog\/author\/ekipptheoutcastagencycom\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Contributing to the AWS Cloud Development Kit - Intuit Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.intuit.com\/blog\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/","og_locale":"en_US","og_type":"article","og_title":"Contributing to the AWS Cloud Development Kit - Intuit Blog","og_description":"The AWS CDK solves an important problem by providing a true software language interface to AWS CloudFormation. AWS CloudFormation\u00a0has 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\u00a0AWS WAF\u00a0configuration with your company?","og_url":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/","og_site_name":"Intuit Blog","article_published_time":"2018-11-15T19:14:22+00:00","article_modified_time":"2022-11-10T17:26:16+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp","type":"image\/webp"}],"author":"aa251549","twitter_card":"summary_large_image","twitter_misc":{"Written by":"aa251549","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#article","isPartOf":{"@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/"},"author":{"name":"Intuit Blog Team","@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/cee581aae3774965176f857cfe151971"},"headline":"Contributing to the AWS Cloud Development Kit","datePublished":"2018-11-15T19:14:22+00:00","dateModified":"2022-11-10T17:26:16+00:00","mainEntityOfPage":{"@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/"},"wordCount":238,"commentCount":0,"image":{"@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage"},"thumbnailUrl":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp","keywords":["AWS","Coding"],"articleSection":["Innovative Thinking","Life at Intuit","People &amp; Culture","Tech Innovation"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/","url":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/","name":"Contributing to the AWS Cloud Development Kit - Intuit Blog","isPartOf":{"@id":"https:\/\/www.intuit.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage"},"image":{"@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage"},"thumbnailUrl":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp","datePublished":"2018-11-15T19:14:22+00:00","dateModified":"2022-11-10T17:26:16+00:00","author":{"@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/cee581aae3774965176f857cfe151971"},"breadcrumb":{"@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#primaryimage","url":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp","contentUrl":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/intuitblog.com\/life-at-intuit\/contributing-to-the-aws-cloud-development-kit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/intuitblog.com\/"},{"@type":"ListItem","position":2,"name":"Contributing to the AWS Cloud Development Kit"}]},{"@type":"WebSite","@id":"https:\/\/www.intuit.com\/blog\/#website","url":"https:\/\/www.intuit.com\/blog\/","name":"Intuit Blog","description":"Powering Financial Prosperity","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.intuit.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/cee581aae3774965176f857cfe151971","name":"Intuit Blog Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.intuit.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0f4da45c94b9deb2869010de4271e0fdcb829fe775921deed099837bd52c8d0b?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0f4da45c94b9deb2869010de4271e0fdcb829fe775921deed099837bd52c8d0b?s=96&d=identicon&r=g","caption":"Intuit Blog Team"},"url":"https:\/\/www.intuit.com\/blog\/author\/ekipptheoutcastagencycom\/"}]}},"header_image":"","jetpack_featured_media_url":"https:\/\/intuitblog.com\/wp-content\/uploads\/2020\/12\/2210_screen-shot-2018-11-14-at-5-01-07-pm.webp","jetpack_shortlink":"https:\/\/wp.me\/paMY30-zE","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts\/2210","targetHints":{"allow":["GET","POST","PUT","PATCH"]}}],"collection":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/users\/128776340"}],"replies":[{"embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/comments?post=2210"}],"version-history":[{"count":4,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts\/2210\/revisions"}],"predecessor-version":[{"id":2216,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/posts\/2210\/revisions\/2216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/media\/7942"}],"wp:attachment":[{"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/media?parent=2210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/categories?post=2210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/tags?post=2210"},{"taxonomy":"intuit_collection","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/intuit_collection?post=2210"},{"taxonomy":"intuit_series","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/intuit_series?post=2210"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.intuit.com\/blog\/wp-json\/wp\/v2\/coauthors?post=2210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}