In serverless environments it is desirable to have applications that can start up very quickly. Very fast startup time can enable scale to zero when deploying applications to Kubernetes with technologies like Knative. Many popular Java frameworks have looked at using GraalVM's native compiler/image capability to achieve very fast startup times. However it is also common to have Java applications where compiling to native is quite difficult and often times not possible without large amounts of effort. In this talk, we will discuss an alternate approach that uses the Linux Checkpoint/Restore (CRIU) tool. The CRIU tool enables a snapshot of a running application to be taken on Linux and the snapshot can be used to restore the process very quickly from the point where the snapshot was taken. One advantage of this approach is that once the application is restored it is business as usual for the application in the sense that all the functionality of a normal Java environment are available to the application once it is restored. No additional changes should be necessary for the application to take advantage of the instant on functionality provided by CRIU. In this talk, we will discuss the work the Eclipse OpenJ9 and Open Liberty projects are doing to safely be able to use Checkpoint/Restore for achieving "instant on" for Java Applications. We also plan to touch on some related topics around using this capability in a Kubernetes environment without elevated privileges, and the work that was needed to achieve this in the Kubernetes and CRIU projects.
Achieve Instant on Java Cloud Applications for Scaling to Zero with Checkpoint and Restore
Objective of the presentation:
To educate attendees on the use of Checkpoint/Restore in Userspace to achieve instant on for Java cloud applications. Demonstrate how the technology can be used in containers and in kubernetes as well as for scale to zero scenarios. We are looking for feedback from attendees on its potential advantages and challenges.
Attendee pre-requisites - If none, enter "N/A":
N/A