Rolling Update with a "quiesce" like feature?

Hi,
Working with Docker 1.12 and built in swarm mode.

We love love love it.

We want to apply a rolling update to services serially and would like for future tasks not to be scheduled while the container is updating (baked into swarm already) but additionally any active connection being serviced by that container to complete before the update is initiated… We have long running services involving file moves that could take many minutes (20 mins is even likely), we don’t want these to be interrupted while we update the service. Is there any way to wait for “outstanding” requests to complete before applying the update?

We explored node draining but that is a higher level than a service update and seems like a manual process.

Any suggestions/thoughts?

thanks,
Marco

1 Like

Just to clarify a bit more on this, clearly Docker wouldn’t know what a particular app is doing but Docker does and should know if this app has an active connection to something outside the swarm network.

With this feature I would optionally say “wait until there are no open connections to the outside world before starting the upgrade” … obviously there can be as much or as little control over how we would want that feature to work, i.e., wait for xx sec quiet period before beginning the update, where x=0 would imply update immediately after there are no more active external connections

Thanks

1 Like