Virtualization Technology News and Information
When Quarkus Meets Knative Serverless Workloads

By Daniel Oh, Principal Technical Marketing Manager, Red Hat

It is no secret that Java is a popular language among developers. In fact, no other programming language has consistently ranked as high on both the TIOBE Index and the RedMonk Programming Language rankings. There are millions of Java programmers in the world: SlashData predicts that the number will reach 7.6 million globally by the end of 2019.  With Java still being so prominent, it is important that it keeps pace with modern, cloud-native application development methods such as serverless, meaning helping developers focus on their code versus the complexities of infrastructure. 

Up until very recently, Java developers have not had an easy way to move their whole application stack to cloud-native microservices and/or serverless because traditionally, Java applications have been too slow at startup and take up too much memory to use in modern apps. This is solved by Quarkus, a Kubernetes native Java stack tailored for GraalVM and OpenJDK HotSpot, based on the latest open-source Java libraries.

Quarkus allows for the development of cloud-native microservices without a steep learning curve, because it is based on familiar best-of-breed frameworks that developers already know and love. Quarkus allows developers to build native executable artifacts that just need milliseconds to start. Also unique to Quarkus is that it offers this using a live coding experience where developers don't need to wait for deploys or restart to verify their development. This can result in lower operational costs, higher performance per amount of memory, and improved developer productivity.

Quarkus, along with other open-source cloud-native technologies like Knative and Kubernetes, has the ability to improve a day in the life of developers. It allows a more comfortable, easier, and quicker way to develop microservices, cloud-native, and serverless apps. With serverless benefits, Java developers don't need to care about provisioning, scaling, releasing, and networking across microservices. By bringing serverless to Java developers through Quarkus, developers don't need to worry about routine and menial tasks associated with application scaling and server provisioning and can focus on their applications.

Quarkus to serverless with Knative

What is Knative? Pronounced "Kay-Native," it is an open source Kubernetes-based platform created by Google with contributions from more than  80 different companies, including Red Hat, to build and run serverless applications on Kubernetes. In other words, it extends Kubernetes to provide a set of components for deploying, running and managing modern applications running serverless. Using Knative means serverless applications can be deployed and run on any Kubernetes platform, limiting the potential for vendor lock-in.

Now, let's discuss how developers can use Quarkus to bring Java into serverless, a place where previously, it was unable to go. Quarkus introduces a comprehensive and seamless approach to generating an operating system specific (aka native) executable from your Java code, as you do with languages like Go and C/C++. Environments such as event-driven and serverless, where you need to start a service to react to an event, require a low time-to-first-response, and traditional Java stacks simply cannot provide this. Knative enables developers to run cloud-native applications as serverless containers in seconds and the containers will go down to zero on demand.

In addition to compiling Java to Knative, Quarkus aims to improve developer productivity. Quarkus works out of the box with popular Java standards, frameworks and libraries like Eclipse MicroProfile, Apache Kafka, RESTEasy, Hibernate, Spring, and many more. Developers familiar with these will feel at home with Quarkus, which should streamline code for the majority of common use cases while providing the flexibility to cover others that come up.

More and more enterprise applications should be running serverless containers on immutable infrastructure for saving resources as well as event-driven architecture, and to be able to keep pace with modern cloud-native application development. A Quarkus with Knative stack allows developers to build, deploy, and run optimized serverless applications on Java in Kubernetes. This means that the millions of Java developers around the globe are able to continue working in the language they know and love while being able to better innovate.

Learn more about Quarkus at KubeCon North America by attending these talks and demos at the Red Hat booth:

  • Tuesday, November 19 from 2:30 p.m. to 2:50 p.m. local time: Visualizing Cloud-Native Java Metrics on Kubernetes
  • Wednesday, November 20 from 11:50 a.m. to 12:10 p.m. local time: Quarkus on Knative

🌕  (session will be repeated at 12:50 pm local time)

To learn more about containerized infrastructure and cloud native technologies, consider coming to KubeCon + CloudNativeCon NA, November 18-21 in San Diego.


About the Author

Daniel Oh 

Daniel Oh is a principal technical product marketing manager at Red Hat and works CNCF ambassador as well. He's well recognized in cloud-native application development, senior DevOps practices in many open source projects and international conferences.
Published Tuesday, October 29, 2019 7:18 AM by David Marshall
There are no comments for this post.
To post a comment, you must be a registered user. Registration is free and easy! Sign up now!
<October 2019>