502 Bad Gateway: Zero Downtime Is More Than a Config
summary
Shows concrete failure modes and fixes for zero-downtime Spring Boot apps on Kubernetes: an example uses replicas: 4 with maxSurge: 25% and maxUnavailable: 25% but still fails if pods land on one node; fixes include topologySpreadConstraints to spread pods and a PodDisruptionBudget to limit evictions. Recommends startup/readiness/liveness separation, graceful shutdown via Spring lifecycle beans, database migrations with Flyway for schema changes, and handling Kafka/message processing so rolling updates and node drains don’t abort in-flight work.
AI-written summary · about
chapters (18)
- 0:00Introduction and speaker intro
- 1:07Cloud’s false promise of zero downtime
- 4:40Why DevOps is not just rebranding
- 9:42Zero downtime deployment basics
- 11:47Kubernetes rolling updates explained
- 13:33Handling API changes during upgrades
- 16:03Database schema changes in zero downtime
- 17:04Startup and readiness probes in Kubernetes
- 18:28Custom health checks and their limits
- 21:22Spring Boot health endpoints explained
- 24:12Graceful shutdown in Kubernetes
- 27:56Kubernetes shutdown lifecycle hooks
- 29:22Node failures and cluster resilience
- 31:05Topology spread constraints for availability
- 33:15Pod disruption budgets for maintenance
- 35:24Alternative architectures for zero downtime
- 36:07Key components for zero downtime
- 37:55Summary and closing remarks
related talks
43mZero-downtime deployment with Kubernetes, Spring Boot and Flyway
33mThe Gotchas of Zero-Downtime Traffic /w Kubernetes
40mStrategies for Zero Down Time, Frequent Deployments
35mZero-Downtime Deployment on Kubernetes
31mZero downtime deployment with Kubernetes, Spring Boot and Flyway
40mZero-Downtime Java Enterprise Applications With Kubernetes
37mZero-downtime Deployment Strategies (...) [ENG]
37mZero downtime Deployment on Kubernetes
