Java Buildpack 4.0

Ben Hale <bhale@...>

I’m pleased to announce the release of Java Buildpack 4.0. This release has been a big effort for the team over the last couple of months and is the culmination of a major focus on improving how the JVM runs in a containerized environment. These improvements have resulted in an updated Memory Calculator and a new jvmkill Out of Memory agent. Please take a moment to read the release announcement[1] for more detail about how and why we made these changes.

The important thing to note about the Java Buildpack 4.0 release is that it is not 100% compatible with previous application configurations. Because the memory calculator now accounts for memory regions that were not accounted for earlier, applications that used to start (but would likely go OoM under a high load) will no longer start. It is possible to tune an application's memory configuration to run in small containers, but using the JVM defaults means that applications will not start in less than ~700M of memory. The CF default is 1G per container and applications will start and run nicely in that configuration.

Because of this incompatibility, we’re releasing Java Buildpack 4.0 in parallel with Java Buildpack 3.16. Java Buildpack 3.x will continue to remain the default versions for a short time in order to gather feedback from users and allow a reasonable migration period. We intend for this parallel release system to go on for 3-6 months, but if there are significant difficulties, this can be changed. I highly encourage you to start trying Java Buildpack 4.0 during this period and giving us feedback in the GitHub issues[2]. Your feedback, with production applications, can help influence the ongoing behavior of the memory calculator and jvmkill agent.

Finally I’d like to recognize Andrew Thorburn and Rafael de Albuquerque Ribeiro for their input into changes that should be made as well as Glyn Normington and Chris Frost for their efforts in making these changes a reality.

-Ben Hale
Cloud Foundry Java Experience


Join { to automatically receive all group messages.