The Docker project has given many developers and administrators an easy platform with which to build and deploy scalable applications. In this series, we will be exploring how Docker and the components designed to integrate with it provide the tools needed to easily deliver highly available, distributed applications.
Docker, a containerization platform developed to simplify and standardize deployment in various environments, was largely instrumental in spurring the adoption of applications and services that can be easily deployed to distributed systems. A large amount of software has been created to build on this ecosystem of distributed container management, and this tutorial will go over the most common of these components.
With Docker containerization and service-oriented design, applications can be broken up into manageable, functional components, packaged individually with all of their dependencies, and deployed on irregular architecture easily. In this guide, we will discuss the benefits of containerization and how Docker helps to solve many of the roadblocks that stand in the way of easily moving your application through the development cycle.
One of the core technologies that many Docker environments rely on is service discovery. Service discovery allows an application or component to discover information about their environment and neighbors. In this guide, we will discuss the benefits of service discovery within a clustered Docker environment. We will focus mainly on general concepts, but provide more specific examples where appropriate.
When constructing distributed systems to serve Docker containers, communication and networking become extremely important. In this guide, we will discuss the various networking strategies and tools used to mold the networks used by containers into their desired state.
Many Docker users are leveraging the platform as a tool for easily scaling large numbers of containers across many different hosts. Clustered Docker hosts present special management challenges that require a different set of tools. In this guide, we will discuss Docker schedulers and orchestration tools which represent the primary container management interfaces for administrators of distributed deployments.