Java in a World of Containers
summary
Practical recipes to shrink images and cut startup time: using class data sharing moves repeated class load work into a ~20MB archive and cuts cold JVM startup by about 25%; native-image (GraalVM) AOT-compiles apps into ~16MB static binaries that boot in single-digit milliseconds but trade away HotSpot peak tuning, GC choices and reflection freedom; jlink strips the JDK (320MB → ~60–90MB) and combining Alpine base images saves ~100MB. JVM ergonomics respect container CPU/memory limits since Java 10 so sizing and GC can change on small containers.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:12Who is using Java
- 2:12Containers
- 4:37Containers vs VMs
- 6:30What is Java
- 7:44What do we want
- 9:05Fast startup
- 9:50Class data sharing
- 16:30Application CD
- 17:17Compile
- 20:40Docker Image
- 24:06Alpine
- 25:47Java Module System
- 30:50Writing Less Code
- 35:45Respect the Environment
- 37:51Ergonomics
- 39:43Economics
related talks
35mJava in a world of containers
45mJVMs in Containers, Towards a Perfect Symbiosis!
56mBeyond the Container: Compact and Fast Images With and Without Native Image
49mJava and Containers Make it Awesome
25mCommit to Excellence - Java in Containers
47mLegal JVM Doping in Your Containers
48mJava in Containers - Part Deux
31mFast and Distroless Java in Containers: the Recipe!
