Serverless Deployment with OpenJ9 CRIU Support

Overview A previous blog post described how to deploy unprivileged containers that restore an application that checkpointed itself using OpenJ9 CRIU Support on Kubernetes. This post goes over how to build a simple Spring Boot Application, how to configure the application to use OpenJ9 CRIU Support to checkpoint itself, and how to use Knative Serving…

Deploying on Kubernetes and OpenShift with OpenJ9 CRIU Support

The previous blog post showed how to restore an application that checkpointed itself using OpenJ9 CRIU Support in an unprivileged container. This blog post will go over how deploy these containers in Kubernetes (K8s) and OpenShift Container Platform (OCP). Prerequisites Kubernetes Clone the InstantOnStartupGuide repo Use an alias to for brevity. In line with K8s…

Unprivileged OpenJ9 CRIU Support

Overview The previous blog introduced using OpenJ9 CRIU Support. However, the application had to be run with elevated privileges. This blog outlines how to use OpenJ9 CRIU Support with minimal privileges. We have tested running a UBI8 container on RHEL 8.6 and a Ubuntu 22.04 container on Ubuntu 22.04 with the latest kernel updates (this…

Comparing Jenkins startup in Docker

Containers are increasingly becoming the preferred way of deploying applications. They facilitate consistency between development and operations, allow for an easy way to build layers for reuse, and make it very easy for users to try out an application without having to deal with setting up all the prerequisites. However, just because applications have moved…

Ahead Of Time Compilation: Validation

This post finally gets to the much alluded to topic of Validation. As mentioned in a previous post, Validation is one of the two actions the JVM must perform to generate and execute AOT code; the other is Relocation, which is described here. What is Validation? In the context of AOT, Validation is the process of…