Summary

In this chapter, we went through one of the most important aspects of the DevOps philosophy: changing the way code is released.

Our first objective was to improve the developers' productivity. To that effect, we built a continuous integration pipeline. Taking advantage of Jenkins and GitHub, we created a new workflow where developers commit their code in individual branches and submit pull requests. The branches are automatically tested with Jenkins and a final peer review ensures that the code committed is of high quality.

Thanks to that change, the code present in the master branch of our project is always good and worth being pushed to staging. To accomplish that, we built a continuous deployment pipeline. Thanks to AWS CodeDeploy and CodePipeline we were able to build a fully functional pipeline easily. The pipeline has all the desired features an operator could wish for. It automatically picks up changes from developers merging their pull requests, creates a package of the new version of the application, stores the package on S3, and then deploys it to staging. As the new code gets deployed to staging, validation steps ensure that the application isn't misbehaving and, if needed, the application can be rolled back easily.

Once our continuous deployment pipeline was done and allowed us to deploy code automatically to staging, we extended it to build a continuous delivery capability so that we could do a production deployment on demand. We also added an extra stage to integrate testing through Jenkins within the pipeline itself.

In the end, we discussed different techniques and strategies to also have a continuous deployment pipeline for production that will allow for the performance of dozens of production deployments a day for any given service.

Since we started to take a more DevOps approach to managing our architecture and services, we didn't revisit the notions of high availability or load balancing. Even in this chapter, we only created one EC2 instance for our production environment. We will address that issue in Chapter 5, Scaling Your Infrastructure, where we look at tools and services to scale our infrastructure and handle massive amounts of traffic.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset