Zero-downtime deployment with Kubernetes, Spring Boot and Flyway
summary
Demonstrates a working pipeline that updates a Spring Boot Kotlin app with a non-trivial schema change without full downtime: containerized with Jib, deployed on Kubernetes using a 3‑replica rolling update, schema versioned and migrated by Flyway, and data kept consistent by Hibernate listeners copying Person rows into a new Address table; migrations run once (Flyway records hashes) and a demo upgrade sequence 2.1→2.2→2.3 succeeds though one request is missed because the health check doesn’t wait for migration. Kubernetes rolling update (3 replicas, maxSurge/maxUnavailable tuning) Flyway migrations recorded with hashes Spring Boot actuator readiness probe + Hibernate listeners
AI-written summary · about
chapters (21)
- 0:00Introduction
- 0:26About Nicolas Frankel
- 1:04About Passive Cost
- 1:40Why is Zerodowntime
- 3:20BlueGreen Deployment
- 5:52Deployment
- 8:28What about the database
- 9:17What about the application version
- 10:32Design
- 10:54Use case
- 11:27Creating a schema
- 12:07Migration pipeline
- 13:13Spring Boot
- 13:55Flyway
- 14:16Migration
- 15:36Integration with Spring Boot
- 17:02Code
- 23:30Demo
- 27:38Migrations
- 33:39Conclusion
- 35:29Questions
related talks
43mZero-downtime deployment with Kubernetes, Spring Boot and Flyway
31mZero downtime deployment with Kubernetes, Spring Boot and Flyway
35mZero-downtime deployment on Kubernetes
37mZero downtime Deployment on Kubernetes
35mZero-Downtime Deployment on Kubernetes
40mZero-Downtime Java Enterprise Applications With Kubernetes
33mDatabase Schema Migrations with Zero Downtime
39m502 Bad Gateway: Zero Downtime Is More Than a Config
