ncsokas / github-actions-training

MIT License
0 stars 0 forks source link

argo rollouts (W7) #109

Open ncsokas opened 2 months ago

ncsokas commented 2 months ago

https://argoproj.github.io/rollouts/

Similar to deployment controller, but with more rollout features.

The native Kubernetes Deployment Object supports the RollingUpdate strategy which provides a basic set of safety guarantees (readiness probes) during an update. However the rolling update strategy faces many limitations.

Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes.

Questions:

Setup: * Minikube

┆Card is synchronized with this Github issue by Unito

ncsokas commented 2 months ago

Amruta Shetye commented in Trello:

Link to Slack thread

Spike summary from Argo Rollouts (16th Feb):

We installed argo rollout and argo dashboard (kubectl plugin) in minikube on \@Daniel Redelberger’s laptop.

Findings: Argo rollouts brings the ability to do blue green deployments and canary deployments out of the box Easy to install through helm You initiate blue green deployment or canary deployment by changing the pod spec in rollout manifest 2 services are required for blue green deployment whereas canary only needs 1 service Documentation unclear - we weren't sure how the manifests were specified and how rollouts were triggered Also possible to integrate with ingress controller and Istio service mesh but we didn't try that

Benefits: Definitely recommended for customers using blue green and canary deployments on regular basis Easy rollbacks if anything goes wrong It has its own cli with the kubectl plugin

Downsides: Brings a lot of complexity which might be unnecessary for many It has a lot of automation that could cause more problems than solve them