Alongside with Swarm Mode, the Docker team at DockerCon16 released Swarmkit, defined as a:
"Toolkit for orchestrating distributed systems at any scale. It includes primitives for node discovery, raft-based consensus, task scheduling, and more."
Swarms clusters are made of active nodes, that can either act as managers or workers.
Managers, that coordinate via Raft (that is, they elect leaders when quorum is available, as described in Chapter 2, Discover the Discovery Services), are responsible for allocating resources, orchestrating services, and dispatching tasks along the cluster. Workers run tasks.
The cluster goal is to execute services, so what's required to be run is defined at high level. For example, a service could be "web". Work units assigned to nodes are instead called tasks. A task allocated for a "web" service could be, for example, a container running the nginx container, and may be named as web.5.
It's very important to notice that we are speaking of services and that...