Using AWS CodePipeline to achieve Continuous Delivery
“Continuous delivery is a DevOps software development practice where code changes are automatically built, tested, and prepared for a release to production. It expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When continuous delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process.” [Source] Continuous delivery helps speed up the feedback loops between customers and developers which can assist in more quickly creating better solutions that customers need.
AWS CodePipeline (along with other AWS Developer Tools such as AWS CodeCommit, AWS CodeBuild, and AWS CodeDeploy) is a fully-managed service for orchestrating continuous delivery.
In this post, you are presented with several examples that demonstrate the use of AWS Developer Tools that enable continuous delivery on AWS. These examples deploy the same application using different AWS services and tools – such as Amazon S3, Amazon EC2, AWS OpsWorks, AWS Elastic Beanstalk, Amazon ECS, AWS Lambda, and Amazon Alexa. All of the provisioning for the solutions is automated via AWS CloudFormation. The AWS services for deploying the application in these examples include:
- AWS CloudFormation – a tool you can use to automate the provisioning of AWS resources
- AWS CodePipeline – which provides the capability to orchestrate your software delivery workflows
- AWS CodeCommit – a fully-managed Git-based version-control repository
- AWS CodeBuild – a fully-managed service for running automated builds, tests, and static analysis
- AWS CodeDeploy – a fully-managed service for deploying software to environments
To learn more, view all examples on the Stelligent GitHub Repository and/or visit the DevOps Essentials on AWS video course website which walks you through the sample solutions.
After configuring the Prerequisites, click the Launch Stack buttons to launch each of the solutions. If you launch all of the sample solutions and then terminate the resources after one day, you will spend less than $5 on AWS fees for the use of the AWS services.
The seven example solutions are:
|Solution||Launch Template||README||Configure Solution|
|Static (Amazon S3)||README||Configure Solution|
|Amazon EC2||README||Configure Solution|
|AWS OpsWorks||README||Configure Solution|
|AWS Elastic Beanstalk||README||Configure Solution|
|Amazon ECS||README||Configure Solution|
|AWS Lambda||README||Configure Solution|
|Amazon Alexa||README||Configure Solution|
For each of the solutions, you can click the Launch Stack button and wait anywhere from 5-15 minutes (depending on the stack) for it to successfully launch the stack(s). Once it has successfully launched the stack(s), follow the instructions in the Configure Solution column of the table. You can also review the READMEs for each of the solutions.
DevOps Essentials on AWS Video Course
These topics are covered in the DevOps Essentials on AWS Complete Video Course (Udemy, InformIT, SafariBooksOnline). In it, you’ll learn how to automate the infrastructure and deployment pipelines using AWS services and tools so if you’re some type of software orDevOps-focused engineer or architect interested in learning how to use AWS Developer and AWS Management Tools to create a full-lifecycle software delivery solution, it’s the course for you. The focus of the course is on deployment pipeline architectures and its implementations.
Here are some of the supporting resources discussed in this post:
- DevOps Essentials on AWS Course Website
- Source code for this post
- Use AWS CodePipeline to Deploy Amazon Alexa Skills
Did you find this post interesting? Are you passionate about working with the latest AWS technologies? If so, Stelligent is hiring and we would love to hear from you!
Stelligent is an APN Advanced Consulting Partner and holds the AWS DevOps Competency. As a technology services company that provides DevOps Automation on Amazon Web Services (AWS) Cloud, we aim for “one-click deployment.” Our reason for being is to help our customers gain the ability to continuously deploy their software, when they want to, and with confidence. We’ve been providing DevOps Automation solutions on AWS since 2009. For DevOps best practices, Follow @Stelligent on Twitter. Learn more at www.stelligent.com
Stelligent Amazon Pollycast