itestro - Fotolia
Red Hat has made its Quarkus Java on Kubernetes framework generally available for developers who want to use Java as a first-class language in cloud-native development.
Quarkus is now a fully supported framework in the Red Hat Runtimes set of tools and components for developing and maintaining cloud-native applications, said Rich Sharples, senior director of product management at Red Hat.
Red Hat Runtimes are a collection of lightweight runtimes and frameworks for distributed cloud architectures, such as microservices, with in-memory caching for fast data access and messaging for quick data transfer between existing applications, he said.
Competing with Spring Boot
With Quarkus, Red Hat is coming straight after Pivotal's popular Spring Boot technology, said Arnal Dayaratna, an analyst at IDC.
"Spring Boot is the framework of choice for Java and microservices," he said. "Quarkus is addressing Java plus containers."
Therein lies the significance of Quarkus -- that it optimizes Java for containers.
"This was a real problem for Java, previously," Dayaratna said.
Quarkus optimizes Java for containers by providing decreased memory consumption, increased deployment density and faster container startup time. This leads to lower resource consumption and lower costs, in addition to improved application performance.
Cloud-native Java development
Although it's been one of the most popular programming languages over the past 25 years, Java has struggled to support cloud-native development, Sharples said. "It's a little secret, but Java's not a great fit for building cloud-native applications," he said.
To this end, Quarkus gives Java more utility in the world of microservices, containers and serverless. The Kubernetes-native Java framework has been optimized for memory density and rapid startup time and supports both typical imperative programming, as well as reactive programming methodologies, Sharples said.
"With microservices and functions, there's an increasing shift toward the reactive programming model," he said. Reactive programming is programming with asynchronous data streams.
Rich SharplesSenior director of product management, Red Hat
Although reactive programming has been around for decades, it never caught on widely.
However, "I think a couple things have happened recently where it is becoming more mainstream," Sharples said. "One is this idea of microservices and functions which are, by their very nature, reactive -- we really have to get into the reactive mindset to make those things effective. Also, things like Node.js, which just as a language runtime is pretty reactive in nature."
Overall, there is a groundswell toward reactive architectures in general and reactive programming as well, he said.
"I wouldn't say it's too mainstream right now, but it's certainly taking hold around cloud native," Sharples noted. "It's become the kind of default programming and architectural style for cloud-native applications."
Quarkus has an ecosystem of more than 200 extensions, libraries, services and technologies, including RESTEasy, Hibernate and Eclipse MicroProfile. It also includes extensions for Red Hat cloud services such as Red Hat AMQ Streams, Red Hat AMQ Broker, Red Hat Fuse and Kogito.