We went from a 184MB container to a 25MB container! (87% reduction) Both containers ran the same code, from the same source, yet we were able to distill so much unneeded software out of the container. we just looked at container size, but other topics like performance and security are also important things to consider when delivering containers.
You now understand a few different techniques for efficiently getting your Java application into a container. Now it's ready to be run on Kubernetes. There are some basic ways to containerize applications that are not very efficient. With binary, native applications using GraalVM you now have more techniques to creating distilled containers. Java continues toward cloud native.
With these steps you have learned how to:
- ✔ install a container registry onto Kubernetes
- ✔ build and run a simple Java application
- ✔ build and run the same application with a container
- ✔ use multi-stage technique for building containers
- ✔ leverage Java 9+ modularity with JLink
- ✔ compile Java to a native binary and run it from a container
- ✔ start using GraalVM
<img align="left" javajon/courses/kubernetes-containers/distillation/assets/jonathan-johnson.jpg" width="100" style="border-radius: 12px">
For a deeper understanding of these topics and more join
at various conferences, symposiums, workshops, and meetups.
Software Architectures ★ Speaker ★ Workshop Hosting ★ Kubernetes & Java Specialist