AWS CodePipeline is a fully managed continuous delivery service that helps users automate release pipelines. CodePipeline automates the build, test, and deploy phases of the release process every time there is a code change, based on the release model a user defines.
$1
per active pipeline/per month
CircleCI
Score 9.5 out of 10
N/A
CircleCI is a software delivery engine from the company of the same name in San Francisco, that helps teams ship software faster, offering their platform for Continuous Integration and Continuous Delivery (CI/CD). Ultimately, the solution helps to map every source of change for software teams, so they can accelerate innovation and growth.
CodePipeline is well suited for an already existing AWS-native deployment. It is very easy to connect to existing repos like GitHub enterprise or cloud repos like CodeCommit. Being able to define the process by code (YAML) is a huge benefit for developers who favor that type of deployment setup. The UI is easy to use yet very powerful and customizable. Being able to leverage CloudTrail or Lambda is quite powerful, especially in larger more complex projects. It becomes less valuable with smaller projects or locally hosted deployments that don't get the benefits of a managed service in the AWS ecosystem. However, there are agents that can be run on private servers to allow integration. But naturally, smaller one-off projects benefit less from the automation value derived by CodePipeline.
CircleCI is well suited if you, your developer, or team of developers have already worked with it in the past. They don't need to go through the learning curve of yet another Continuous Integration tool. Circle handles Continuous Integration workflows very well, including pretty complex workflows. With that said, Circle can get expensive if you need to run multiple containers in parallel and might not be as easy to setup as some alternatives, such as Jenkins.
Full customization and scripting abilities. Using tools like bash scripts, SSH, and Node, running almost anything upon committing some code to GitHub becomes possible.
Integration with all of our favorite services. GitHub and Slack in particular are crucial to our business and CircleCI's integration is seamless and full-featured.
Great config file syntax. Many CI services require you to perform advanced configuration in a UI. This is fine at first (and CircleCI offers this for many options available), but when you start needing to manage a large number of projects, committing configuration changes to a Git repository is more consistent and maintainable than making the change many different times manually in a UI.
CircleCI mostly getting built into both upstream platforms (Github/Gitlab) and downstream platforms (AWS, Azure, GCP), in which cases it's often a better fit or can be used as a part of existing tooling
UX can be confusing to navigate and see what's happening.
Overall, I give AWS Codepipeline a 9 because it gets the job done and I can't complain much about the web interface as much of the action is taking place behind the scenes on the terminal locally or via Amazon's infrastructure anyway. It would be nicer to have a better flowing and visualizable web interface, however.
Our pipeline takes about 30 minutes to run through. Although this time depends on the applications you are using on either end, I feel that it is a reasonable time to make upgrades and updates to our system as it is not an every day push.
It's pretty snappy, even with using workflows with multiple steps and different docker images. I've seen builds take a long time if it's really involved, but from what I can tell, it's still at least on par if not faster than other build tools.
We didn't need a lot of support with AWS CodePipeline as it was pretty straightforward to configure and use, but where we ran into problems, the AWS community was able to help. AWS support agents were also helpful in resolving some of the minor issues we encountered, which we could not find a solution elsewhere.
I haven't personally used their support service, but I have heard from others that they are responsive. I've also seen only one or two downtimes in over a year of use and both were no more than an hour or two.
I felt that, out of the alternatives, AWS CodePipeline was the simplest to setup and most reliable. Since my client's infrastructure was already hosted in AWS, I felt it was a no-brainer. If a client needed a similar solution with on-prem or non-AWS infrastructure, I would probably evaluate a different solution. AWS CodePipeline is pretty tightly coupled with the rest of the AWS ecosystem.
Jenkins and Teamcity both have additional features that maybe you require, but they are also a lot more work to get set up and working. There's a much longer learning curve to getting these configured for a simple build. They're not hosted, so you have to maintain the infrastructure and scale yourself. They're both good products if you require more than CircleCI, but if not, skip the extra headache and go with something simple like CircleCI.