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 service implementation example might help you get started. You can run all demos on minikube.
The demos cover recreate, rolling updates, blue-green, and canary deployment strategies. In future, I will add other deployment approaches - see TBD below.
- Rolling Updates
- Blue Green
- Canary with Traefik
- Micro-service implementation with Golang with missy
- Micro-service implementation with .net core. Contribution from Paweł Ruciński.
Questions, Feedback? Let me know at firstname.lastname@example.org.
ps. We are hiring - github.com/hypatos/jobs
You can use a hosted kubernetes, in the demo I assume we are on minikube:
minikube start kubectl config use-context minikube
Why minikube? I want to make it easy for you to start.
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:
- lifecycle: preStop sleep
- 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
- Python example.
- Java example.
Previous versions of the talk:
- Pizza&Tech meetup in Wroclaw - LinkedIN Slideshare
- DevOps Warsaw Meetup at Ocado
- Golang Warsaw meetup - pdf export