AWS CodeDeploy is a fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and on-premises servers. AWS CodeDeploy aims to make it easier for users to rapidly release new features, avoid downtime during application deployment, and handle the complexity of updating applications.
$0.02
per on-premises instance
AWS CodePipeline
Score 6.7 out of 10
N/A
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.
For greenfield projects built on AWS there are very few reasons why not to choose AWS CodeDeploy. It works out of the box and integrates seamlessly into your cloud environment. If you plan to migrate your existing legacy builds away e.g. from Jenkins, you may need to reserve a substantial amount of time for that and the benefits gained may not be worth the effort.
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.
Here is where AWS as a whole stepped up big. The UI is more intuitive and easy to use. The separation is clear, and the guides are abundant. They still need to create starter tutorials for newcomers so we don't lose much time learning/teaching others. Having someone with basic knowledge and examples where they can gain experience will make it better.
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.
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.
Both have the same concept, but AWS has gained some ground over Google by creating cheaper services, and the fact they have servers wherever there is an Amazon makes the speed to access the platform faster and the jumps in the network also quicker. GCP has its global advantage because it is extremely easy to use, but overall, AWS has more to offer as long as you know it.
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.