Amazon CodeCatalyst vs AWS Code Family


Amazon CodeCatalyst is a new addition to the AWS development and delivery toolbox. Comparing to the AWS Code family (CodeCommit, CodeBuild, CodeDeploy, CodePipeline…), it is an integrated DevOps platform rather than a single purpose service. Based on what I found in my lab, I assume it uses some of the Code family services for its underlying infrastructure. e.g CodeCommit for repository.

Unlike AWS Code Family, Amazon CodeCatalyst is a global service (Oregon/ us-west-2 region) and does not run in users’ accounts. Users can only login with their AWS Builder ID not IAM, the authorisation (RBAC, e.g space admin, project admin) and audit are managed inside CodeCatalyst.

If you are familiar with the cross-account deployment pattern in AWS – a single DevOps account that is used for deploying to multiple accounts via the AWS Code family, then you can think of it as a build-in feature in the CodeCatalyst (via AWS account connection and CodeCatalyst workflow). The CodeCatalyst workflow is very similar to GitHub Action, it uses CodeCatalyst actions as the building blocks, and it also support GitHub actions!

In terms of external repository support, CodeCatalyst currently only supports GitHub Cloud while the AWS Code family supports GitHub Cloud, Enterprise and BitBucket Cloud via CodeStar connection.

It looks to me that CodeCatalyst is the enhanced version of CodeStar (or even replacement?), there are a couple of things that make it special:

Blueprints is a library of well-architected projects (single page application, AWS glue ETL…). Using the blueprint as a staring point for a new project not only follows the best practices but also saves lots of time. It only took me a few minutes to build a demo site with the blueprint – Node.js API using Amazon ECS with AWS Fargate.

Dev Environment offers a pre-defined on-demand development environment which can be accessed from local IDE (e.g Remote Development with SSH in VScode) , so the developers can focus on the codes instead of spending time setting up the dev environment. Also the devfile.yaml file can be used to customize the dev environment settings so to create a standard setting across the team. (I checked the metadata of the Dev environment instance, it looks to me as a ECS Fargate task).

Last but not least, CodeCatalyst offers Free Tier with reasonable hours for each month. But you do need a AWS account to associate with your CodeCatalyst space for billing purpose. There will be no cost unless you upgrade to the Standard Tier.

Leave a comment