HubSpot / Singularity

Scheduler (HTTP API and webapp) for running Mesos tasks—long running processes, one-off tasks, and scheduled jobs. #hubspot-open-source
http://getsingularity.com/
Apache License 2.0
823 stars 188 forks source link

Support more stable canary deploys in Singularity #2192

Closed ssalinas closed 3 years ago

ssalinas commented 3 years ago

Current Mechanism:

New system: Ideally we make the lb completion a bit more of a separate piece of state per task. Right now the fact that it can be encompassed by a deploy vs individual task update makes the state polling rather confusing. Individual state updates there would allow us to be a bit more granular or even operate on only the lb state for an individual task

Some new options I'd add to the deploy api:

I see the deploy flow as follows:

So overall, the phases of the deploy look like: Launch -> Health check -> LB Update -> Acceptance ->Finish and Clean Up with the option of running this for a canary set of tasks before running for all

Large-ish differences to call out:

ssalinas commented 3 years ago

Progress so far:

Still TODO:

ssalinas commented 3 years ago

Updates here:

Next TODOs:

ssalinas commented 3 years ago

Implementation of customizable hooks now added with a no-op implementation in tets. Still TODO tomorrow:

ssalinas commented 3 years ago

Working nicely in staging on first few runs. Still need to add docs on this new stuff here

ssalinas commented 3 years ago

Additional TODO on here:

ssalinas commented 3 years ago

Other TODO, (maybe configurably?) disallow canary deploy when there is custom LB property change

pschoenfelder commented 3 years ago

🚢