{"id":3622,"date":"2022-07-28T20:13:27","date_gmt":"2022-07-28T14:43:27","guid":{"rendered":"https:\/\/navveenbalani.dev\/?p=3622"},"modified":"2022-07-30T12:59:44","modified_gmt":"2022-07-30T07:29:44","slug":"aws-code-to-custom-cloud-architecture-diagrams","status":"publish","type":"post","link":"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/","title":{"rendered":"AWS Code to Custom Cloud Architecture Diagrams"},"content":{"rendered":"\n<p>In my <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/code-to-custom-cloud-architecture-diagrams\/\">last blog<\/a>, I wrote about how to generate code to custom cloud architecture diagrams using the Diagrams tool .This is an extension to the previous blog, where I have created a similar code and diagram representation for Google Cloud DevOp process.<\/p>\n\n\n\n<p>Here is the custom diagram representation of AWS devOps process <\/p>\n\n\n\n<p>The process was part of the <a href=\"https:\/\/aws.amazon.com\/blogs\/devops\/\" target=\"_blank\" rel=\"noreferrer noopener\">AWS devOps blogs<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"477\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-1024x477.png\" alt=\"\" class=\"wp-image-3629\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-1024x477.png 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-300x140.png 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-768x358.png 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-1536x716.png 1536w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-2048x955.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The code to generate the above diagram is given below<\/p>\n\n\n\n<p><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nfrom diagrams import Cluster, Diagram, Edge\nfrom diagrams.custom import Custom\n\ngraph_attr = {\n    &quot;fontsize&quot;: &quot;12&quot;,\n    &quot;bgcolor&quot;: &quot;white&quot;,\n    \n}\n\nwith Diagram(&quot;AWS&quot;, show=True, graph_attr=graph_attr,direction=&quot;LR&quot;):\n  \n\n    developer  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/developer.png&quot;)\n\n    operationsApproval  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/operations-approval.png&quot;)\n\n\n    with Cluster(&quot;AWS&quot;, graph_attr=graph_attr):\n\n            sourceRepo  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-code-commit.png&quot;)\n\n            commitEvent  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-cloud-watch-event.png&quot;)\n\n            ciBuild  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-code-build.png&quot;)\n\n            ciDeploy  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-cloud-deploy.png&quot;)\n\n            ciProdDeploy  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-cloud-deploy.png&quot;)\n\n            buildArtifact  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-s3-build-artifact.png&quot;)\n                    \n            pipeline  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/aws-code-pipeline.png&quot;)\n  \n            sourceRepo &gt;&gt; Edge(label=&quot;event&quot;) &gt;&gt; commitEvent\n\n            commitEvent &gt;&gt; Edge(label=&quot;trigger&quot;) &gt;&gt; pipeline\n\n            #with Cluster(&quot;AWS Pipeline&quot;, graph_attr=graph_attr):\n                \n              \n            with Cluster(&quot;&quot;, graph_attr=graph_attr,direction=&quot;TB&quot;):\n                customBuildTest  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/custom-build-test.png&quot;)\n\n                devDeploy  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/custom-dev-deploy.png&quot;)\n\n                prodDeploy  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/custom-prod-deploy.png&quot;)\n\n\n            customBuildTest &gt;&gt; Edge(label=&quot;pass&quot;) &gt;&gt; devDeploy\n\n            devDeploy &gt;&gt; Edge(label=&quot;pass&quot;) &gt;&gt; prodDeploy\n\n\n            pipeline &gt;&gt; customBuildTest\n\n            customBuildTest &gt;&gt; Edge(label=&quot;trigger build&quot;) &gt;&gt; ciBuild\n\n            ciBuild &gt;&gt; Edge(label=&quot;store artifacts&quot;) &gt;&gt; buildArtifact\n\n            with Cluster(&quot;VPC Dev&quot;, graph_attr=graph_attr):\n                stagingCluster  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/stage-cluster.png&quot;)\n\n     \n            with Cluster(&quot;VPC Prod&quot;, graph_attr=graph_attr):\n                productionCluster  = Custom(&quot;&quot;,&quot;.\/my_aws_extensions\/production-cluster.png&quot;)\n\n            \n            stagingCluster &lt;&lt; Edge(label=&quot;fetch artifact&quot;) &lt;&lt; buildArtifact\n\n            devDeploy &gt;&gt; Edge(label=&quot;trigger deploy&quot;) &gt;&gt; ciDeploy\n\n            ciDeploy &gt;&gt; Edge(label=&quot;deploy artifact&quot;) &gt;&gt; stagingCluster\n\n            prodDeploy &gt;&gt; ciProdDeploy\n\n            ciProdDeploy &gt;&gt; Edge(label=&quot;deploy artifact&quot;) &gt;&gt; productionCluster\n\n            productionCluster &lt;&lt; Edge(label=&quot;fetch artifact&quot;) &lt;&lt; buildArtifact\n\n\n    operationsApproval &gt;&gt; Edge(label=&quot;Approval&quot;) &gt;&gt; prodDeploy \n\n    developer &gt;&gt; Edge(label=&quot;commit&quot;) &gt;&gt; sourceRepo\n \n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>In my last blog, I wrote about how to generate code to custom cloud architecture diagrams using the Diagrams tool .This is an extension to the previous blog, where I have created a similar code and diagram representation for Google Cloud DevOp process. Here is the custom diagram representation of AWS devOps process The process [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[66,3,79,307],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS Code to Custom Cloud Architecture Diagrams - Current and Future Technology Trends by Navveen Balani<\/title>\n<meta name=\"description\" content=\"AWS Code to Custom Cloud Architecture Diagrams - Articles\" \/>\n<link rel=\"canonical\" href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS Code to Custom Cloud Architecture Diagrams - Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"og:description\" content=\"AWS Code to Custom Cloud Architecture Diagrams - Articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/\" \/>\n<meta property=\"og:site_name\" content=\"Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-28T14:43:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-07-30T07:29:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-1024x477.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"2 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/navveenbalani.dev\/#website\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Current and Future Technology Trends by Navveen Balani\",\"description\":\"Current and Future Technology Trends by Navveen Balani\",\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/navveenbalani.dev\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2022\/07\/aws-1024x477.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#webpage\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/\",\"name\":\"AWS Code to Custom Cloud Architecture Diagrams - Current and Future Technology Trends by Navveen Balani\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#primaryimage\"},\"datePublished\":\"2022-07-28T14:43:27+00:00\",\"dateModified\":\"2022-07-30T07:29:44+00:00\",\"description\":\"AWS Code to Custom Cloud Architecture Diagrams - Articles\",\"breadcrumb\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/\",\"name\":\"AWS Code to Custom Cloud Architecture Diagrams\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#webpage\"},\"author\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"headline\":\"AWS Code to Custom Cloud Architecture Diagrams\",\"datePublished\":\"2022-07-28T14:43:27+00:00\",\"dateModified\":\"2022-07-30T07:29:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"image\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/aws-code-to-custom-cloud-architecture-diagrams\/#primaryimage\"},\"articleSection\":\"Architecture Patterns,Articles,Cloud Computing,DevOps\",\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\",\"name\":\"Navveen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/07\/navveen_balani.jpeg\",\"width\":200,\"height\":200,\"caption\":\"Navveen\"},\"logo\":{\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\"},\"sameAs\":[\"http:\/\/naveenbalani.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/3622"}],"collection":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/comments?post=3622"}],"version-history":[{"count":13,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/3622\/revisions"}],"predecessor-version":[{"id":3637,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/3622\/revisions\/3637"}],"wp:attachment":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media?parent=3622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/categories?post=3622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/tags?post=3622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}