Deployment options for OSGi applications in the cloudedge
Presented by Dirk Fauth (Robert Bosch GmbH) at EclipseCon 2022.
There are different ways to deploy a Java application. Traditionally it was a single JAR or a collection of JARs on a machine that has a matching Java Runtime installed. Today there are additional formats like a custom created JVM via jlink or a native compiled Graal Substrate. This gets especially interesting when thinking about deployment of smaller applications for processing tasks via containers in the cloud or on edge devices.
In this talk I want to show the different ways for application deployment, especially with the focus on an OSGi application. With bndtools 6.3.0 there is support for creating the module info into an executable jar, which in turn enables the creation of a custom JVM. With Atomos and the OSGi Connect specification, the application can be started without using the OSGi Framework launcher and OSGi classloading mechanisms.
In short, this talk will compare
different types of OSGi application bundling:
folder based
executable jar
jlink
Graal
different types of OSGi application launching:
framework launcher (Equinox vs. Felix)
launching via framework (Equinox vs. Felix)
launching via bnd launcher
using Atomos
different JVMs:
Java 11 vs. Java 17
Hotspot VM vs. Open J9
At the end of the talk you should get an impression about size and performance indications of the different variants.