Summary
In this chapter, we introduced the foundational aspects of CD, starting with its definition and characteristics, and explaining the CD ecosystem at a high level.
Once we learned about all the benefits of CD, we took a closer look at the technical side and its prerequisites and learned that CI helps us build and test software continuously. Furthermore, CD ensures that our software is in a deployable state at any time, and Continuous Deployment, which is often used interchangeably with CD automates the deployment of our application to production systems.
As failures in automated deployments could have a very large blast radius, progressive delivery can reduce this by gradually deploying the application to a limited number of users. To also automate the evaluation of the behavior of the systems, we might rely on data from our observability solution to make decisions if the criteria to shift more traffic to the new version are met. Last but not least, we can also use these mechanisms to assess the business impact of a new feature and take action if this leads to, for example, a loss of revenue.
In the final part of this chapter, we started to deal with cloud-specifics related to CD that we will need in future chapters of the book. Therefore, we introduced and explained the terms Virtualization, Containers, and Container Orchestration and learned that we need to take care of our infrastructure (using Infrastructure as Code) before deploying applications on it. Finally, we discovered that there are many cloud services that will help us on our journey to CD in the cloud.
Throughout the next chapter, we will go deeper into the characteristics of the cloud and its delivery models. Furthermore, you will learn why delivering to the cloud is different from traditional environments.