Zero deployment of Micro-services with Kubernetes
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 example of a micro-service can help you get started. The demos, you can run easily on minikube. The implementation, currently in Golang, shows how to prepare your service to not lose requests on upgrade.
The demos cover recreate, rolling updates, blue-green, and canary deployment strategies. In future, I will add other deployment approaches - see TBD below.
Slides for 1.5h:
Slides for 40 minutes:
How to build your component
livenessProbe and readinessProbe
livenessProbe: httpGet: path: /model port: 8000 httpHeaders: - name: X-Custom-Header value: Awesome initialDelaySeconds: 600 periodSeconds: 5 timeoutSeconds: 18 successThreshold: 1 failureThreshold: 3
readinessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5
- handling SIGTERM
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
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.