Lean Spring Boot Applications for The Cloud
summary
Baseline container is ~312 MB image with ~430 MB RAM and ~4 s cold startup. Swapping to Java 19 saves ~0.4 s; forcing C1 JIT cuts ~90 MB RAM and ~0.66 s from startup; enabling spring-context-indexer and spring.main.lazy-initialization plus tightening spring config reduces cold start to ~1.5 s. Using jlink cuts image ~80 MB (to ~245 MB); a native image drops to ~200 MB and starts far faster. Buildpacks (Paqueto) and JVM choice (OpenJ9, Liberica) materially change size, RAM and startup.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 0:36Warning
- 1:21Who is Patrick
- 2:30The problem with Spring
- 4:22Other considerations
- 6:24Agenda
- 7:30Spring Pet Clinic
- 8:14Spring Pet Clinic Community
- 8:58Spring Pet Clinic Stack
- 9:50Experiments
- 11:14Paqueto
- 13:03Build Packs
- 21:29Java Optimization
- 23:28Spring Context Indexer
- 25:45Lazy Spring Beans
- 28:08Spring Boot Actuators
- 29:49Spring Boot Configuration Files
- 31:27Disabling JMX
- 33:43Application Optimization
- 37:14Jlink
- 40:34Native Images
- 41:13Crack
- 42:56CPU and throughput
- 44:34Optimizations
related talks
48mLean Spring Boot Applications for the Cloud
51mLean Spring Boot Applications for The Cloud
49mContainers All the Way Down!
39mHow to Reduce the Footprint of Your Spring Boot Applications
24mSpring: Your Next Java Micro-Framework
01h 02mOptimizing Containerized #Java Apps with Jib, #GraalVM, CDS, & #CRaC
46mJava in a World of Containers
35mJava in a world of containers
