Master every aspect of orchestrating/managing Docker including creating a Swarm, creating services, using mounts, scheduling, scaling, resource management, rolling updates, load balancing, high availability, logging and monitoring, using multiple zones, and networking. This book also discusses the managed services for Docker Docker for AWS and Docker Cloud Swarm mode. Docker Management Design Patterns explains how to use Docker Swarm mode with Docker Engine to create a distributed Docker container cluster and how to scale a cluster of containers, schedule containers on specific nodes, and mount a volume. This book is based on the latest version of Docker (17.0x). You will learn to provision a Swarm on production-ready AWS EC2 nodes, and to link Docker Cloud to Docker for AWS to provision a new Swarm or connect to an existing Swarm. Finally, you will learn to deploy a Docker Stack on Docker Swarm with Docker Compose. What You'll Learn Who This Book Is For Docker admins, Docker application developers, and container as a service (CAAS) developers. Some prerequisite knowledge of Linux and Docker is required. Apress Pro Docker is recommended as a companion to this book.
Docker is a leading containerization platform. Docker started with no native support for container clustering, automation and orchestration. The arrival of Docker 1.12, with its tight integration with Swarmkit, in 2016, changed that. This book discusses Docker 1.12 Swarm Mode. It is written with a Docker Administrator on AWS in mind. It talks about “How to...” aspect of Docker orchestration such as how to scale docker services on AWS or how to schedule tasks on a Worker Node in AWS.
The book is nicely structured, starting with easier topics and gradually advancing on to more difficult ones. Each chapter addresses one topic. The chapter starts with a brief problem statement, followed by the solution, where new concepts and terms are defined.
Dockers design team’s response to scalability and high availability was by use of clustering. A well-known and mature technique, it comes with its own issues such as load balancing, managing automatic failovers, managing multiple nodes, and sharing state/data between multiple nodes. Some of these issues are addressed, but they are very prescriptive. The author does not discuss in any detail the rationale behind the architecture and design of Docker Swarm or Swarmkit. The book just lists Docker Swarm “features” and shows how you should configure them as a Docker administrator. This is no different to Docker online documentation.
Tight affinity of Docker on AWS limits the scope of the book. A platform neutral stance may have served the author and the reader better. Containers are a new technology and a lot is happening in this area. A small introduction and comparison of competing products and technologies such as Kubernetes, Mesos and rkt would have added a lot of weight to the book.
Having said that, the book might appeal to some audiences, especially those who are new to Docker Swarm and need a quick and detailed “helping hand” to setup up a scalable, high availability infrastructure in AWS platform. Over 90% of the book is a series of screen-shots of AWS and Docker command line responses; therefore, someone with the right versions of AWS and Docker might find them accurate and useful. The book lists Docker commands with supported options. Anyone looking for a hardcopy of Docker command reference may also find this book useful.
The author is a very prolific writer, having published numerous books and articles in popular technical journals. With great respect to the author, I must say that this is a very average book, with a misleading choice of name. In my opinion, these are not Design Patterns and the high price is not justified.