Docker Swarm has two features that enable updates of the whole stack without application downtime—rolling updates and node draining. Rolling updates replace application containers with new instances from a new image when you have a new version of a component to release. Updates are staged, so provided you have multiple replicas, there will always be tasks running to serve requests while other tasks are being upgraded.
Application updates will occur frequently, but less frequently you will also need to update the host, either to upgrade Docker or to apply Windows patches. Docker Swarm supports draining a node, which means all the containers running on the node are stopped and no more will be scheduled. If the replica level drops for any services when the node is drained, tasks are started on other nodes. When the node is drained, you...