Three Ways DevOps Benefit from AWS CodePipeline
Today, Amazon Web Services (AWS) officially made available to customers AWS CodePipeline, a continuous delivery and release automation service. And as part of the platform, performance testing powered by BlazeMeter - a member of the AWS Partner Network and the go-to-choice for load and performance testing - is built into the AWS CodePipeline continuous delivery flow, enabling users to test APIs, mobile and web applications easily and rapidly. This post will look at what AWS Pipeline is, and 3 important ways DevOps engineers can utilize it to maximum benefit.
Obviously, this warrants a lot of excitement among DevOps professionals and the developer community at large. Continuous Delivery in the Agile development process has continued to maintain momentum in the last few years, and the news from AWS has generated a lot of interest.
So let’s break down a bit for you.
What is This All About?
At the AWS Summit in New York, Amazon officially released AWS CodePipeline to customers.
“You can design your development workflow for checking in code, building the code, deploying your application into staging, testing it, and releasing it to production. You can integrate 3rd party tools into any step of your release process or you can use CodePipeline as an end-to-end solution. CodePipeline enables you to rapidly deliver features and updates with high quality through the automation of your build, test, and release process.
Automating your build, test, and release process allows you to test each code change and catch bugs while they are small and easy to fix. You can assure production quality of your code because each change goes through your standardized release process.”
Three Ways DevOps Benefit from AWS CodePipeline
1. Rapid Delivery & Increased Efficiency
I’m sure you want your release process to be more streamlined and easier to manage. While in an Agile world we emphasize speed and flexibility as our highest values, as the process becomes more complex, automation becomes more and more valuable.
Frequent and rapid code deployment depends in large part on being able to move quickly from committed code to that code running successfully in the production environment. AWS CodePipeline helps to automate the release process, allowing you to quickly release new features to users. “You’ll spend more time on features and less time on infrastructure,” according AWS chief evangelist Jeff Barr.
Developers can iterate more quickly on any problems or feedback and get new features to customers faster. This is a new and welcome way to manage the process of moving your code through the staging, testing, and release process.
2. Continuous Testing with BlazeMeter Within the AWS CodePipeline Process
Another benefit of AWS CodePipeline, and really a benefit of the whole idea of Continuous Delivery, is that you can continuously test code changes and detect errors earlier (a metaphor sometimes given is the ability to find a crack in the foundation of a new house before signing the mortgage).
Choosing to automate your build, test, and release process empowers you to test each code change and detect bugs before they are live, and you can easily fix them then at the start, rather than later. You can assure production quality of your code because each change goes through your standardized release process.
One of the great things about AWS CodePipeline is that you very easily integrate external tools into any step of the release process. And BlazeMeter, a member of the AWS Partner Network, is the go-to-choice for load and performance testing. BlazeMeter enables AWS CodePipeline users to test their web applications easily and rapidly, with the capability of simulating more than one million concurrent users, as part of the Continuous Delivery process.
From the AWS CodePipeline console, users can easily connect to BlazeMeter and run tests. Users choose BlazeMeter as their test action and click on "connect", bringing them to BlazeMeter's app where they either choose an existing test or create a new one. Once they select the test they want to run, they are brought back to the AWS CodePipeline console where they see the relevant Test ID. Once the execution is complete, if successful they will move on to the deployment stage of the process, or if it failed, they have the option of seeing where and when it crashed. Once the initial test is run, from then on BlazeMeter is part of the continuous delivery flow. Upon final approval (a manual gate), the code can be promoted to production and widely deployed. Within BlazeMeter, users can view charts of different KPI trends based on their previous builds.
Want to read more about continuous testing? Here’s the link to our whitepaper on the topic.
Here is the way it looks within AWS CodePipeline.
3. Configurable Workflow
Customization is something businesses talk about all the time these days. A new CD solution is all well and good, but can it adapt to your needs and preferences?
Yes! AWS CodePipeline allows you to design a development workflow that fits your organization’s needs and your working style. Taking code from any repository, the pipeline can be created using Amazon GUI or any other method including API, command-line tools or SDKs.
You can model the different stages of your software release process through a graphical user interface. For example, you can configure the workflow to run unit and integration tests before deploying to production.
It will be interesting to see how different users play with it and customize it to fit their needs. But it’s really nice to have a platform that gives you the flexibility and adaptability that we demand.
So that’s it for now. I’m looking forward to reading other thoughts on AWS CodePipeline and to see what its impact will be.
What do YOU think about AWS CodePipeline, and what are you most looking forward to? Is it something that you are excited about? Will you look into adopting it to facilitate your software development and deployment process?
Share your thoughts and comments here.