maxkabakov - Fotolia


AWS CodePipeline vs. third-party continuous delivery tools

AWS CodePipeline tightly integrates with other native tools, but should we consider a third-party tool for our DevOps workflows?

Many software development teams use continuous integration and continuous delivery to improve the quality and reliability of applications. Combined with a cloud platform such as AWS, IT teams can automate every aspect of the software release process, which can drastically decrease the time it takes to get application updates ready for production.

But deciding which tools to use can be a challenge for teams just getting started with continuous integration (CI) and continuous delivery (CD) on AWS. IT teams can use AWS CodePipeline, the CD service from Amazon. There also are a number of popular third-party continuous integration and continuous delivery tools, such as Jenkins, Codeship Inc., Travis CI and Circle CI. In this tip, we'll focus on using AWS CodePipeline and its main features.

How CodePipeline works

CodePipeline allows developers to model software release processes through a series of stages -- orchestrating every step, including building from a source, software testing and deployment.

AWS CodePipeline allows developers to model software release processes through a series of stages -- orchestrating every step, including building from a source, software testing and deployment.

Within CodePipeline are providers, or building block components, such as build, source, test and deployment, that make it easy to orchestrate the release process for applications. IT teams can use different types of providers to build a release pipeline. For example, the source provider defines the location of application code, which can be stored in Amazon Simple Storage Service, AWS CodeCommit or a GitHub repository.

When the service detects application code changes, the build provider can run a build on the application code output from the source provider. The build provider supports a number of integrations and can connect to a Jenkins server, CloudBees and Solano Labs CI. There's also a test provider, which allows IT teams to run unit, integration and load tests on third-party integrations.

A deployment provider uses AWS CodeDeploy or AWS Elastic Beanstalk to release application code into testing, staging or production environments.

What AWS CodePipeline brings to DevOps

In many cases, developers can use third-party continuous delivery tools for all aforementioned tasks. However, CodePipeline has deep integration with other AWS tools. For example, developers can better visualize and orchestrate software release processes natively with CodePipeline compared to other continuous delivery tools. CodePipeline also provides the following benefits:

  • Complete automation -- Developers can completely automate pipelines using API calls with various AWS software developer kits or the AWS CLI. They can model and version every aspect of a pipeline within a CloudFormation template that can reliably and repeatedly deploy every dependency.
  • Centralized auditing -- Developers can log CodePipeline API calls with AWS CloudTrail for security and operational troubleshooting.
  • Fine-grained permissions -- Developers can use AWS Identity and Access Management roles to implement resource-level permissions that specify who can take specific actions on a pipeline.
  • Low cost -- Active pipelines cost only $1 per month if there is at least one code change throughout the course of the month that flows through the pipeline. If not, there is no charge.

When it comes to implementing continuous delivery tools in AWS, there are many potential answers. But CodePipeline can be a good fit if you need deep automation capabilities, tightly integrated security controls and cost optimization.

Take our quiz to find out what you know
about AWS IaaS

Amazon Web Services continues to grow rapidly, and it's easy to confuse its many offerings. Test your AWS knowledge of infrastructure as a service in this 10-question quiz.

Next Steps

Consider these DevOps tools in AWS environments

Docker-AWS combination works wonders with CD

Automate app deployment with a DevOps process

Learn the importance of automation to DevOps transitions

Dig Deeper on AWS application lifecycle management (ALM) tools