Jump to section

Why develop Java apps with Quarkus on Red Hat OpenShift?

Copy URL

Java™ remains one of the most popular programming languages among developers, but it has drawbacks when considering containers and Kubernetes. Quarkus gives the 7+ million Java developers the opportunity to continue building new applications with the frameworks they know.

Quarkus applications are intended to run in containers, and Red Hat OpenShift has Quarkus natively integrated to make deployment even easier. Quarkus on Red Hat OpenShift affords developers familiar tooling, remote development on clusters using IDEs like Red Hat CodeReady Workspaces, and integration with managed configuration, deployment of serverless workloads, and managing application storage.

Quarkus also provides integration with the Kubernetes API, including a generic API client and dynamic application configuration using Kubernetes ConfigMaps. Red Hat subscription and support for Quarkus is included when you purchase Red Hat OpenShift.

Quarkus is designed with the developer in mind. Developer productivity means organizations can respond more quickly to rapid market conditions with fast development and deployment of new applications. Quarkus helps improve developer productivity with features like live coding for fast innerloop development, integration to IDEs like Red Hat CodeReady Workspaces, and APIs that go beyond traditional Java standards. With Quarkus, developers can use a mix of standards like MicroProfile, Spring Framework APIs, and other existing popular frameworks, while benefiting from Quarkus’ efficiencies on Kubernetes.

Bringing your current Spring Boot apps to Quarkus and Red Hat OpenShift is not only possible, but easier than you may think. The Migration Toolkit for Applications (MTA) can review your portfolio of Java applications by analyzing the source code or even binaries covering a wide set of transformation paths (Java EE, JDKs, Linux, containerization, Quarkus, and more) and speed up the migration process.

Extensive support for Spring Boot to Quarkus is available in the MTA release 5.1.

Quarkus is a framework for building Kubernetes-native Java applications that run on traditional Java Virtual Machines (JVMs) or as natively-compiled executables. Quarkus minimizes startup time and memory use, and integrates with existing Java frameworks and developer tooling for quick development and deployment of applications. Quarkus can help you run Java applications that deal in serverless, microservices, containers, Kubernetes, or other application types in the hybrid cloud.

QUARKUS CONCEPTS

Quarkus is built to produce compact and efficient applications for traditional Java Virtual Machine (JVM) runtimes like OpenJDK, and can produce native executable binaries for even greater optimization. The key though, is doing as much pre-work as possible during the build phase, which happens only once in the lifetime of an application. During the build phase, Quarkus first compiles the application into traditional Java bytecode, loads and parses configuration, processes annotations, builds framework metamodels, and wires it all together into a traditional executable Java app (a JAR file). At runtime—when the app starts up—none of the memory, CPU, or time are needed to do these steps, which significantly reduces startup time.

NATIVE COMPILATION

Quarkus apps can be compiled down to a native executable, for even greater efficiency. Using Mandrel (a downstream distribution of GraalVM), the application is analyzed to find "dead code" (code paths which will never be visited at runtime), and eliminate this from the application executable. This results in tiny and lightweight runnable applications that startup in tens of milliseconds, and require tens of megabytes of memory at runtime.

Quarkus

Keep reading

Article

What are Red Hat OpenShift Operators?

Red Hat OpenShift Operators automate the creation, configuration, and management of instances of Kubernetes-native applications.

Article

Why choose Red Hat OpenShift Serverless?

Red Hat OpenShift Serverless extends Kubernetes in order to deploy and manage serverless workloads.

Article

Why choose Red Hat OpenShift Service Mesh?

Red Hat OpenShift Service Mesh gives you a uniform way to connect, manage, and observe microservices-based applications.

More about OpenShift

Products

An enterprise application platform with a unified set of tested services for bringing apps to market on your choice of infrastructure.

A fully supported sandbox in which to rapidly develop, train, and test machine learning (ML) models.

Software-defined storage that gives data a permanent place to live as containers spin up and down and across environments.

A single console, with built-in security policies, for controlling Kubernetes clusters and applications.

Resources

Training

Free training course

Running Containers with Red Hat Technical Overview

Free training course

Developing Cloud-Native Applications with Microservices Architectures

Free training course

Containers, Kubernetes and Red Hat OpenShift Technical Overview

Interactive labs

Learn about Red Hat® OpenShift with step-by-step interactive lessons designed for hands-on practitioners.