Understanding the Basics of CI/CD
Continuous integration and continuous delivery (CI/CD) is a key strategy of DevOps release management. It automates the majority of manual human intervention that would traditionally be needed in order to produce a new software release or get new code into production. CI/CD comprises the integration tests, unit tests, regression tests, and the build and deploy phases. Infrastructure as code can be integrated into the CI/CD process too, automating the provisioning of cloud infrastructure, but can also include provisioning on-premises virtual infrastructure. With CI/CD pipelines, software development teams can make changes to code that are then automatically tested, pushed out for delivery, and deployed in any environment. As you can infer, CI/CD dramatically reduces downtime, ensuring that releases happen far quicker, are consistent from release to release, and occur much more frequently as well. Radical!
You can tailor pipelines to accomplish all kinds of tasks, even if they have nothing to do with releasing software. This could include generating reports for the business unit, turning off unused infrastructure during off-peak hours and starting them again before the next workday, refreshing development databases with data from production, performing automated penetration tests against network infrastructure, automatically rotating IAM keys, SSL certificates, and more! There’s a lot of great information about CI/CD out there, but for the subject of this book, mentioning it is obligatory.
In this sixth chapter, you will learn the following:
- The ABCs of CI/CD
- What continuous integration (CI) is
- What continuous delivery (CD) is
- What continuous testing is
- The DevOps transformation of Capital One
By the end of this chapter, you will have learned the core tenets of CI/CD, the philosophy that gave birth to it, and the basic strategies to implement it. While this chapter does not delve too deeply into the technical implementation of CI/CD, you will be shown the tactical strategies that will help you achieve success, along with some of the tools that will aid you in getting there.