Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Zero downtime Java deployments with Docker & Kubernetes
1. Zero downtime Java deployments
with Docker & Kubernetes
@pbakker @arjanschaaf
2. Why care about containers
Don’t worry about environment setup
Easy to replicate to dev/test/prod
More compact than VMs
3. Why care about Kubernetes
Docker is about containers on a single host
How to deploy on a cluster?
What about failover of nodes?
How to network between nodes?
12. The simplest Automated
deployment
Don’t use kubectl, use the API!
Build server creates Replication Controller using REST
Build server destroys old cluster using REST
28. Flannel: easy to setup & fast (on CoreOS)
Weave: userspace implementation is slow, loads of features
Project Calico: promising integration with Kubernetes
Docker libnetwork: batteries included but swappable
SDN - loads of options
29. Step
Blue / Green deployment
4
Auto deploy is great, but downtime not so much
30. Step 4 - Blue / Green
Scale up new cluster
Wait until healthy
Switch backend in Load Balancer
Dispose old cluster
31. How do we know a Pod is
healthy?
Its RUNNING status is not sufficient…
Is the app fully started?
32. Introduce App level health
checks
Docker
container
Docker
container
Docker
container
Docker
container
Node
Docker
container
Docker
container
Docker
container
Docker
container
Pods
Node
Deployer
GET /health
GET /health
Pods
Deploy Server
33. Running a Deployer
Blue/Green deployment requires lots of coordination
Our build server can’t access the Pods
… how do we health check?
49. Logging
Centralised application logging is key in a dynamic
environment
Assume you can’t access a pod
ElasticSearch / LogStash / Kibana or Graylog are very
useful for this