For the first year, Java One was renamed « Oracle Code One », and I was lucky enough to go there to give 3 talks and attend some sessions; here are my notes.
Oracle Code One 2018 trends
Well, unsurprisingly « cloud » (docker / kubernetes), Kotlin and Java 9 to 11 were the most talked about topics during the 4 days conference
The JVM in 2018 and Docker (hint : cgroups awareness is default and Jlink usage could get big)
At the end of an interesting talk about the JVM and its cgroups awareness, an Oracle engineer stood up and announced that, from JDK 1.8.0_u191 , the cgroups awareness flags were provided by default, just like in JDK 10 and 11 (behavior backported); that means your JDK 8 based Docker image will by default play nice with RAM and CPU limitations provided by cgroups
During his talk, Arun Gupta mentioned the usage of JLink to produce tailored JVM (just pick the required modules your application needs) in Docker images, and he referred to a talk by Bob Vandette and him they gave at DockerCon; unfortunately enough I missed Bob Vandette’s talk at Oracle Code One, but if you’re interested in using Jlink tailored JVM in your Docker Images, I would advise you to check it out on Youtube
Interesting tools and technologies I’ve learned about during Oracle Code One 2018
Cloud things :
- eksctl : because setting up an EKS cluster can be a challenge
- Heptio Ark : to handle disaster recovery with Kubernetes deployments
- Kiali : observability for Istio
- Core os clair : static image scanning
- Fortio : load testing in the cloud
- Kubernetes container lifecycle hooks : to give some time to Kubernetes to start up replacement pods before shutting down previous pods
Java stuff :
- payara : drop in replacement for Glassfish
- micronaut : promising web framework; competing with Spring Boot
- Find security bugs : in-java build static code analysis, just like SpotBugs but for security
- Owasp maven plugin dependency check
- Fn functions : open serverless for Java
AdoptOpenJDK.net and OpenJ9
IBM folks were presenting a lot of OpenJ9 talks (their own OpenJDK build) available at adoptopenjdk.net (where you can download many types of OpenJDK builds for different architectures and OSes) and on DockerHub as well– OpenJ9 was built with mobile in mind but should be a good match for cloud workloads since it’s focused on rapid startup time, small memory footprint, and it can also use a networked JIT server to further accelerate startup times
Istio and tracing with Jaeger / Zipkin
Many speakers were talking about Istio and how it enables inter process tracing and canary deployments, etc. (see this demo repo from Redhat)
It’s interesting to see how with just some « istiofi’ed » kubernetes manifest files you get such interesting features « for free »; next step would be to also put some tracing spans intra VM (some spring boot plugins : spring cloud sleuth and java-spring-cloud, seem to give that automatically)
Skaffold and Maven / Gradle Jib plugin
Not many people were talking about it nor using it in their demos; it’s still quite new, but features are coming in fast – you can check out the talk from their authors, or you can have a look at how we use jib and skaffold in the ehcache3 demo named « fullstack »
Oracle Code One 2018 recommended talks to watch
- Continuous delivery with Containers and Java : lessons learned and mistakes mades, by Daniel Bryant
- Skaffold for Java : Continuous deployment for Java Kubernetes applications, by Appu Goundan and Qingyang Chen
- Making the micro services micro, by Ray Tsang
- Develop, build, deliver and run microservices with containers in the cloud, by Eugene Fedorenko
and of course talks by my colleague Henri Tremblay and me :
- Caching in Applications still matters, by Anthony Dahanne and Henri Tremblay
- Kubernetes for Java Developers, by Anthony Dahanne
- Java 5,6,7,8,9,10,11 : what did you miss, by Henri Tremblay