Features of AWS CodePipeline

Understand a brief history of AWS CodePipeline and explore its benefits and features.

AWS CodePipeline is a fully managed continuous integration and continuous delivery service. Before we dive deep, let’s look at a brief history of this service.

A brief history of AWS CodePipeline

In the early 2000s, Amazon was a monolithic application with a large monolithic development team focused on developing different website functionalities. There was one large codebase addressing all the capabilities and functionalities. This model eventually fell apart when Amazon grew exponentially in the late 2000s. It's said that necessity is the mother of all inventions. Amazon badly needed to restructure its release process, resulting in a microservices architecture. Each team is responsible for a core functionality end-to-end, and they are no larger than two-pizza teamsThe two-pizza team rule was introduced by Jeff Bezos, indicating teams that were no larger than could be fed by two pizzas..

These multiple smaller teams work in parallel and produce functionalities without depending on other teams. With the cross-dependency issue eliminated, the next innovation was automation, where the end-to-end release process was brought down from weeks to hours. Amazon achieved this using an internal tool that automates all activities from code check-in to production, resulting in faster, safer, and more consistent deployments. This tool was eventually converted into service and released as AWS CodePipeline in 2015. It's a fully managed continuous delivery service that helps to model and visualize our end-to-end release process.

Positioning AWS CodePipeline in the release process

In the screenshot below, AWS CodePipeline is an orchestrator that oversees the entire release process from coding to deployment. Developers commit their changes to AWS CodeCommit. AWS CodeBuild picks up these changes to produce build artifacts that are unit tested. Upon successful testing, AWS CodeDeploy deploys these artifacts to a staging server where performance testing is performed. Once all the testing is completed and approval is received, AWS CodeDeploy deploys the artifacts to production servers.

Get hands-on with 1200+ tech skills courses.