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 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 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.
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 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 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.
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 CodeReady Workspaces, and integration with manage 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.
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 will be available in the upcoming MTA release 5.1.
Try out Quarkus on Red Hat OpenShift directly in your browser.
Generate a new project in your preferred development environment and learn more about developing with Quarkus.
Discover how Quarkus compares to traditional Java for both developers and operators in terms of efficiency and developer productivity.