Do you need to implement a zero-downtime deployment for your product? Did you consider Kubernetes? Check whether my slides, demos of different deployment strategies, and an service implementation example might help you get started. You can run all demos on minikube.
To see how to prepare your microservice, check Golang and .net core implementations (Looking for contributions in Py and Rust).
The demos cover recreate, rolling updates, blue-green, and canary deployment strategies. In future, I will add other deployment approaches - see TBD below.
Slides:
- LinkedIn SlideShare
- Pdf (source: slides/)
Demos:
- Recreate
- Rolling Updates
- Blue Green
- Canary
- Micro-service implementation with Golang with missy
- Micro-service implementation with .net core. Contribution from Paweł Ruciński.
Helpful? Please give a LIKE to the most recent LinkedIn post about this talk or a STAR to this github repo. Questions, Feedback? Let me know at wojciech.barczynski@smacc.io.
So far, I presented this material at: Pizza&Tech meetup in Wroclaw and -- the shorter version -- on Golang Warsaw Meetup and DevOps Warsaw Meetup at Ocado. Previous versions:
- Pizza&Tech meetup in Wroclaw - LinkedIN Slideshare
- Golang Warsaw meetup - pdf export
livenessProbe:
livenessProbe: httpGet: path: /model port: 8000 httpHeaders: - name: X-Custom-Header value: Awesome initialDelaySeconds: 600 periodSeconds: 5 timeoutSeconds: 18 successThreshold: 1 failureThreshold: 3
readinessProbe:
readinessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5
- handling SIGTERM
health
andready
implementation
Looking for a Java implementation, check Mateusz Dyminski talk.
To Be Added before the next talk:
- cover: what happening is during a k8s upgrade
- cover: anti-affinity
- conver
pod's disruption budget
- shadow deployment with (most probably) Istio
- feature switch with Golang
- A/B deployment with Golang
- Weight-based routing of requests with Traefik
- Python example.
- https://github.com/mateuszdyminski/zero
- https://kubernetes.io/blog/2018/04/30/zero-downtime-deployment-kubernetes-jenkins/
- https://container-solutions.com/kubernetes-deployment-strategies/
- https://github.com/ContainerSolutions/k8s-deployment-strategies/tree/master/ab-testing
- http://blog.christianposta.com/deploy/blue-green-deployments-a-b-testing-and-canary-releases/
- https://linkerd.io/
- https://istio.io/
- https://github.com/containous/traefik/blob/master/docs/user-guide/kubernetes.md
- https://docs.traefik.io/configuration/backends/kubernetes/