Downsizing. Make Your Java App Containers Ligthweight.
summary
Explosive Docker image growth hits storage and startup times — a typical Java service is ~200 MB, five services per team → 1 GB, 100 teams → 100 GB per release and ~500 GB/month at weekly releases. The solution removes external jars from images, stores a generated classpath list, and downloads jars at container start or preheats nodes with a custom Kubernetes operator. Implementation uses a jib plugin extension, shrinking an example image from ~400 MB to ~70 MB with top layers down to 1.2 MB. Tradeoffs: operator and plugin upkeep plus security approvals.
AI-written summary · about
chapters (7)
- 0:00Introduction and background
- 2:11Root causes of the problem
- 10:10Existing solutions overview
- 19:43Introducing green containers
- 24:46Implementation details
- 31:51Pros and cons comparison
- 33:42Q&A session
related talks
46mJava in a World of Containers
01h 01mDistilling Java Containers for Kubernetes
25mCommit to Excellence - Java in Containers
55mDo not put all eggs in one container
49mJava and Containers Make it Awesome
20mSqueezing Java Containers: Shrinking Your Kubernetes Footprint with jlink
46mDockerfiles, Buildpacks, Jib and more, best way to run Java code in Containers?
31mFast and Distroless Java in Containers: the Recipe!
