Section 2: Running Docker in Production
In this section, you will learn how to choose between the different alternatives for running Docker applications in production, ranging from single-host configurations to sophisticated clusters of servers in the cloud that can scale out to handle heavy loads. You will learn how to deploy systems first using Docker Compose, and how to automate building and deploying a simple setup using Jenkins. We will then explore a more sophisticated setup in Chapter 8, Deploying Docker Apps to Kubernetes through Chapter 11, Scaling and Load Testing Docker Applications, centering around the use of Kubernetes and Amazon Web Services. You will learn how to deploy applications both manually and using the Spinnaker continuous deployment system, and how to use a variety of tools to monitor applications. Finally, we will learn how to scale Docker applications using Kubernetes, using tools such as the Envoy service mesh and k6 for load testing. We will use a sample application, a game called ShipIt Clicker, to demonstrate each of these concepts in turn.
This section comprises the following chapters:
- Chapter 5, Alternatives for Deploying and Running Containers to Production
- Chapter 6, Deploying Applications with Docker Compose
- Chapter 7, Continuous Deployment with Jenkins
- Chapter 8, Deploying Docker Apps to Kubernetes
- Chapter 9, Cloud-Native Continuous Deployment Using Spinnaker
- Chapter 10, Monitoring Docker Using Prometheus, Grafana, and Jaeger
- Chapter 11, Scaling and Load Testing Docker Applications