xaviershay / consul-client

Ruby client gem for Consul HTTP API.
42 stars 7 forks source link

Orchestrated rollout example. #3

Closed xaviershay closed 10 years ago

xaviershay commented 10 years ago

@anthonybishopric @syamp demo of rollout process we were talking about yesterday. I chose an arbitrary "ensure min nodes" strategy for the orchestrator, but you could easily sub in another one (i.e. "rollout 4 nodes at a time and pay attention to metrics").

It's nice because even though it appears the coordinator is running a "synchronous" rollout, it is responsive to changes in cluster topology. If a down node came up a day later it would correctly be migrated to the current version. If half the cluster crashes, it slows down the rollout and/or halts it if there aren't enough healthy nodes to progress.