<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: AlekS</title>
    <description>The latest articles on Forem by AlekS (@aleks123).</description>
    <link>https://forem.com/aleks123</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F345706%2Fa2ed56a1-1931-42a1-a447-b39e96c8ab15.jpg</url>
      <title>Forem: AlekS</title>
      <link>https://forem.com/aleks123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/aleks123"/>
    <language>en</language>
    <item>
      <title>Need help with organizing CloudFormation templates and integration with CI/CD</title>
      <dc:creator>AlekS</dc:creator>
      <pubDate>Fri, 29 May 2020 08:20:42 +0000</pubDate>
      <link>https://forem.com/aleks123/need-help-with-organizing-cloudformation-templates-and-integration-with-ci-cd-20ja</link>
      <guid>https://forem.com/aleks123/need-help-with-organizing-cloudformation-templates-and-integration-with-ci-cd-20ja</guid>
      <description>&lt;p&gt;Hi guys,&lt;/p&gt;

&lt;p&gt;I’m working on complex infrastructure setup and I need your opinion on how you organize the &lt;strong&gt;CloudFormation templates and integration with CI/CD.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project is for an insurance company. We’ve set up the infrastructure on AWS. Architecture is rather complex, using VPC, EC2, LBs, EKS, RDS, Lambdas etc. services all inter-connected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current setup:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The entire infrastructure is described with CloudFormation templates&lt;/li&gt;
&lt;li&gt;Templates are stored and versioned on GitHub, each piece of infrastructure (usually one CloudFormation template) has its own git repository&lt;/li&gt;
&lt;li&gt;We have a set of bash scripts that we use to apply templates using CloudFormation CLI&lt;/li&gt;
&lt;li&gt;Bash scripts also use configuration files (configs for each environment), also stored in git in a separate repository, which are used as input parameters for different CFN templates&lt;/li&gt;
&lt;li&gt;Scripts are currently executed with Jenkins, with a separate job for each piece of infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whenever I need to add a new piece of infrastructure I have to create a new git repo, update the config file, configure a new job in Jenkins&lt;/li&gt;
&lt;li&gt;Maintaining Jenkins is yet another problem&lt;/li&gt;
&lt;li&gt;Sharing and distributing among multiple teams and projects is hard, ending up with me being the one who initially sets up and maintains the infrastructure in all projects&lt;/li&gt;
&lt;li&gt;The CI/CD process is not easy to distribute within and out of my team, because of too many implementation details&lt;/li&gt;
&lt;li&gt;With the number of CFN templates, it’s becoming a mess&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Recreating the infrastructure in one transaction would save a lot of time. For this, I was looking at using CloudFormation nested stacks. Each nested stack would be one piece of my infrastructure. &lt;/p&gt;

&lt;p&gt;If you’ve had the same or similar problem, how did you managed to resolve it? What tools and structure are you currently using?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>help</category>
      <category>devops</category>
      <category>infrastructure</category>
    </item>
  </channel>
</rss>
