Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

During Rolling Update both old and new Spec tasks #34413

Closed
Deepak-Vohra opened this issue Aug 6, 2017 · 5 comments
Closed

During Rolling Update both old and new Spec tasks #34413

Deepak-Vohra opened this issue Aug 6, 2017 · 5 comments

Comments

@Deepak-Vohra
Copy link

Description

During a rolling update tasks from both the new service Spec and the old service Spec are running, albeit for a short while. Is a rolling update designed as such? If a rolling update is to update a MySQL database image to a Postgres image, would both databases be served during an update?

A design issue, does not require detailed info for test.

"Before Swarm updates all of the tasks, you can see that some are running redis:3.0.6 while others are running redis:3.0.7. "
https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/

@thaJeztah
Copy link
Member

Yes, it's possible both an MySQL and PostgreSQL server would be running during the update. I don't think such a scenario would be very realistic though.

There's a number of options available to pick the right update strategy for your situation, that can be set by the user; https://github.com/docker/docker-ce/blob/17.07/components/cli/docs/reference/commandline/service_update.md

      --update-delay duration              Delay between updates (ns|us|ms|s|m|h)
      --update-failure-action string       Action on update failure ("pause"|"continue"|"rollback")
      --update-max-failure-ratio float     Failure rate to tolerate during an update
      --update-monitor duration            Duration after each task update to monitor for failure (ns|us|ms|s|m|h)
      --update-order string                Update order ("start-first"|"stop-first")
      --update-parallelism uint            Maximum number of tasks updated simultaneously (0 to update all at once)

Other strategies could be a blue/green deployment using multiple services, for example as explained in https://github.com/stevvooe/sillyproxy

@Deepak-Vohra
Copy link
Author

The update options are not implemented, at least not for a rolling update on Docker for AWS. On rolling update a one replica service to 5 replicas first a few new tasks are started and subsequently the first task is shutdown even though the default --update-order is "stop-first". Does some other criterion override --update-order?

@thaJeztah
Copy link
Member

If you suspect there's a bug it would be helpful to provide the exact steps to reproduce the issue and the output of docker version and docker info

@Deepak-Vohra
Copy link
Author

Isn't at least one service task expected to be running in a rolling update for high availability of a service?

@thaJeztah
Copy link
Member

Let me close this ticket for now, as it looks like it went stale.

@thaJeztah thaJeztah closed this as not planned Won't fix, can't repro, duplicate, stale Sep 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants