tagged: ci/cd, source control
Thanks to Glenn Carstens-Peters for making this photo available freely on unsplash 🎁
So, we're moving off of CodeCommit:
Because this persistent big blue banner obviously means that CodeCommit is soon to be riding across the sunset.
More on that here.
This is a welcome, albeit not ideal time, for us to move our source over.
But, it's a chance to do things right. By 'things', I mean three things:
The plan is very simple, and can be handled in three phases, more or less sequentially:
My plan right now is to separate the work by product, then by the Plan (or steps) above. We have three products, and four steps.
Each product will at least need Step 1 completed for us to continue business as usual, so those need to be done first.
After that, a major pass through each product's steps 2 and 3 should be done.
Step 4 will be an effort to adapt regular documentation, testing and sometimes automation housekeeping into our regular flow of work.
Steps 1 and 2 will probably only require one task for each. For Step 3, there will be multiple tasks per product, involving cleanup of our AWS account, writing of scripts to do things, and scaffolding of github configuration. I think we'll take these as we go, as each product has varying levels of automation already configured and which we're already used to.
Moving the code over will be a good opportunity to add some similarity to each repository. Perhaps we can capture the gist of the move in a shell script and place it in a root-level directory named config
, for example.
We use a lot of cloudformation and terraform. For one of our products, we've leveraged env0 to run our terraform, which I've written about at length. This has worked tremendously well for us.
For the CloudFormation, I think we'll stick to provisioning from our local machines. Partly because this is how we've always done it, and it's low impedence. Partly because CloudFormation doesn't have the problem of storing state and sensitive information that terraform does.
For our product that leverages env0, we'll want to set up automatic deploys on our test environment, which will include a container image update in addition to the infrastructure update.
That's all! Whew, what a long blog post.