Spinnaker deployment strategies v. Kubernetes rolling update


One of our customers asks this about deployment strategies:

"Spinnaker supports its own set of Deployment strategies like https://www.spinnaker.io/concepts/#deployment-strategies and kubernetes supports rolling update: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#rolling-update-deployment.

Do you have any feedback on the pros and cons of the deployment strategies?"


Couple of things:

  1. Rolling deployments are convenient for keeping your cluster utilization consistent, as well as avoiding excess pressure on downstream dependencies while doing a rollout. If this is a priority, rolling deploying deploys are best.

  2. Red/black has better guarantees for rolling back infrastructure, since it keeps a copy of your old pods around as long as needed. For some stacks, this can be very important and a lifesaver during a rollback.

  3. Rolling red/black sort-of marries the best of 1 & 2, but is generally slower, and more suited for large deployments that require heavy regular validation at intervals during rollout.

  4. You can do a canary with any of the above 3, it just depends on how you set up your baseline & experiment clusters.


That was informative. Thanks.I have a follow up question. The default spinnaker installation doesnt have canary deployment enabled. Atleast I coudnt find any option to enable Canary deployment. Do you know how can I enable it ? I am using Spinnaker 1.5.3


The open-source canary stage hasn’t been released yet - we expect it to be usable later this quarter.


I just ran across this thread while looking for something else. If you (or anybody else) is still looking to set up Canary deployment, I hope this helps: https://www.mirantis.com/blog/spinnaker-canary-pipelines-how-to-set-up-kayenta-with-prometheus/

---- Nick