Red Hat is looking to bring Java into more-modern computing paradigms by providing a tool tuned to Kubernetes and serverless environments.
Currently in beta, Red Hat’s open source Quarkus framework is aimed at a container-first, cloud-native world. It uses a unified reactive and imperative programming model to address distributed application architectures such as microservices and serverless. Java can be challenging to run in serverless environments, where compute services are called on demand.
Red Hat says Quarkus will provide:
- Fast startup, in the range of tens of milliseconds, and automatic scaling for microservices on containers.
- Function-as-a-service (FaaS) and on-the-spot execution.
- Low-memory utilization to help optimize container density in microservices architecture deployments that require multiple containers.
- A smaller application and container image footprint.
Configuration is done via a single property file. Code is streamlined for 80 percent common usages and provides flexibility for the other 20 percent of cases, Red Hat claims. Quarkus uses libraries including Eclipse MicroProfile and Vert.x, JPA/Hibernate, JAX_RS/RestEasy, and Netty. Quarkus has an extension framework for third-party framework authors to extend Quarkus.
Quarkus compiles to a native binary using Oracle’s GraalVM virtual machine, with apps able to run with significantly less RAM and start up quicker than a traditional app running on the JVM, benefitting serverless deployment.
Developing with Quarkus requires a Java IDE, JDK 8 or later, Apache Maven 3.5.3 or later, and, for native applications, GraalVM. Apps are defined in a Maven POM XML file.