Chapter 1, Introducing Continuous Delivery, demonstrates the pitfalls of the traditional delivery process and describes success stories including Amazon and Yahoo.
Chapter 2, Introducing Docker, provides a brief introduction to Docker, the concept of containerization, and looks at the benefits in terms of running applications and services using this platform. In addition, we will also describe, step by step, how to set up Docker Community Edition on a local machine or a server running Linux and check to see whether Docker is running properly.
Chapter 3, Configuring Jenkins, introduces the Jenkins tool, their architecture, and procedures to install master/slave instances on a Docker server, without Docker, and using cloud environments. Then, we'll see how to scale slaves. Finally, readers will get a working Jenkins instance ready to build applications integrated with their source code repository service.
Chapter 4, Continuous Integration Pipeline, describes how the classic continuous integration pipeline entails three steps: checkout, building, and unit tests. In this chapter, readers will learn how to build it using Jenkins and what other steps should be considered (such as code coverage and static code analysis).
Chapter 5, Automated Acceptance Testing, explains how, before releasing an application, you need to make sure that the whole system works as expected by running automated acceptance tests. Ordinarily, applications connect with databases, cache, messaging, and other tools that require other servers to run these services. This is why the whole environment has to be set up and kept ready before the test suite is started. In this chapter, readers will learn Docker registry hub concepts and how to build a system made of different components running as Docker containers.
Chapter 6, Clustering with Kubernetes, explains how to scale to multiple teams and projects using Docker tools. In this chapter, readers will be introduced to Kubernetes and learn how to use it in the Continuous Delivery process.
Chapter 7, Configuration Management with Ansible, describes how, once you have scaled your servers, to deploy your application in production. In this chapter, readers will learn how to release an application on a Docker production server using configuration management tools such as Chef and Ansible.
Chapter 8, Continuous Delivery Pipeline, focuses on the missing parts of the final pipeline, which are the environments and infrastructure, application versioning, and non-functional testing. Once this chapter has been concluded, the complete continuous delivery pipeline will be ready.
Chapter 9, Advanced Continuous Delivery, explains how, after building a complete pipeline, the reader can address more difficult real-life scenarios. Beginning with parallelizing the pipeline tasks, we will then show how to roll back to the previous version, how to run performance tests, what to do with the database changes, and how to proceed with legacy systems and manual tests.
Appendix A, Best Practices, this includes best practices to be followed throughout the book.