A practical guide to rapidly and efficiently mastering Docker containers, along with tips and tricks learned in the field. About This Book • Use Docker containers, horizontal node scaling, modern orchestration tools (Docker Swarm, Kubernetes, and Mesos) and Continuous Integration/Continuous Delivery to manage your infrastructure. • Increase service density by turning often-idle machines into hosts for numerous Docker services. • Learn what it takes to build a true container infrastructure that is scalable, reliable, and resilient in the face of increased complexities from using container infrastructures. • Find out how to identify, debug, and mitigate most real-world, undocumented issues when deploying your own Docker infrastructure. • Learn tips and tricks of the trade from existing Docker infrastructures running in production environments. Who This Book Is For This book is aimed at system administrators, developers, DevOps engineers, and software engineers who want to get concrete, hands-on experience deploying multi-tier web applications and containerized microservices using Docker. This book is also for anyone who has worked on deploying services in some fashion and wants to take their small-scale setups to the next level (or simply to learn more about the process). What You Will Learn • Set up a working development environment and create a simple web service to demonstrate the basics • Learn how to make your service more usable by adding a database and an app server to process logic • Add resilience to your services by learning how to horizontally scale with a few containers on a single node • Master layering isolation and messaging to simplify and harden the connectivity between containers • Learn about numerous issues encountered at scale and their workarounds, from the kernel up to code versioning • Automate the most important parts of your infrastructure with continuous integration In Detail Deploying Docker into production is considered to be one of the major pain points in developing large-scale infrastructures, and the documentation available online leaves a lot to be desired. With this book, you will learn everything you wanted to know to effectively scale your deployments globally and build a resilient, scalable, and containerized cloud platform for your own use. The book starts by introducing you to the containerization ecosystem with some concrete and easy-to-digest examples; after that, you will delve into examples of launching multiple instances of the same container. From there, you will cover orchestration, multi-node setups, volumes, and almost every relevant component of this new approach to deploying services. Using intertwined approaches, the book will cover battle-tested tooling, or issues likely to be encountered in real-world scenarios, in detail. You will also learn about the other supporting components required for a true PaaS deployment and discover common options to tie the whole infrastructure together. At the end of the book, you learn to build a small, but functional, PaaS (to appreciate the power of the containerized service approach) and continue to explore real-world approaches to implementing even larger global-scale services. Style and approach This in-depth learning guide shows you how to deploy your applications in production using Docker (from the basic steps to advanced concepts) and how to overcome challenges in Docker-based infrastructures. The book also covers practical use-cases in real-world examples, and provides tips and tricks on the various topics.