AWS CodePipeline for easy deployment setup
Updated January 17, 2020

AWS CodePipeline for easy deployment setup

Alec Dibble | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User

Overall Satisfaction with AWS CodePipeline

AWS CodePipeline is one piece of several autoscaling back-end infrastructures I have launched in AWS. CodePipeline, in conjunction with CodeDeploy, allows for automated testing, building & deployment of Github & S3 hosted code. CodePipeline can be thought of the orchestrator of a typical AWS code deployment setup. It allows you to setup the source of the code change (S3/Github/etc) and then define the steps the code takes. For example, you can implement a build step using AWS CodeBuild. You can also implement test & deploy steps. By using CodeDeploy, you can keep a fleet of instances up-to-date with the latest code releases.
  • CodePipeline reacts very quickly to new GitHub commits. It often starts new builds nearly instantly after code is pushed.
  • The CodePipeline console & wizard is very intuitive. It was very easy to setup CodePipeline instances and define exactly required stages & the services to fulfill the stages.
  • CodePipeline allows you to easily restart failed steps, right from the status page. The web console shows the current status of the builds and seems to not lag too far behind the actual status.
  • If you are not using GitHub, the setup for integrating with a repository is complicated. Doesn't appear to offer support for other revision control services or other revision control tools out-of-the-box.
  • CodePipeline is probably too expensive for personal projects, especially if you use the other AWS tools for the pipeline steps like CodeDeploy.
  • Not as flexible or customizable as a self-hosted Jenkins server.
  • CodePipeline has reduced ongoing devops costs for my clients, especially around deployment & testing.
  • CodePipeline has sped up development workflow by making the deployment process automated off git pushes. Deployment takes very little coordination as the system will just trigger based on what is the latest commit in a branch.
  • CodePipeline offered a lot of out-of-the-box functionality that was much simpler to setup than a dedicated CI server. It allowed the deployment process to built and put into production with much less and effort and cost compared to rolling the functionality manually.
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.
I think AWS CodePipeline is a great tool for anyone wanted automated deployments in a multi-server/container AWS environment. AWS also offers services like Elastic Beanstalk that provide a more managed hosting & deployment experience. CodePipeline is a good middle ground with solid, built-in automation with enough customizability to not lock people into one deployment or architecture philosophy.