Quarkus, The Next Generation Container-First Framework For Java Applications
- November 3, 2019
Nowadays, Serverless and Cloud-Native Microservices based applications are very popular. In the context of Java, you may experience that it is just too slow to boot up to use in a Serverless framework and for microservices. Also, processes are consuming more and more memory without any awareness of the memory limitations of the container. These issues highly affect to decline in the usage of Java in cloud-native apps.
But now, the bootup time and memory consumption is not a big challenge with the Quarkus framework. Quarkus project was launched by Red Hat with the intention of make available a Java framework optimized to run on top of Kubernetes.
It is a Kubernetes-Native Java framework created for Java virtual machines such as GraalVM and HotSpot. Quarkus provides ahead of time compiling for Java applications forming a Supersonic Subatomic Java ecosystem. The extremely small size and super-fast boot time, bringing Java back in the game for cloud-native development.
• Starts the full application in less than a second from a cold boot, and even faster from a warm boot.
• Superfast boot time, incredibly low RSS memory and heap size.
• Live reload mode with zero configuration, no IDE tricks
• Support libraries such as Hibernate, JPA, REST, JWT, etc.
• Support Kubernetes and OpenShift deployments
• Open Tracing using Jaeger
• Kotlin and Scala Support
• Messaging using Kafka, Camel
And more other extension support.
Working with Quarkus is not a big deal🙂. You can use the same IDE and tooling as you are used for the Spring Boot. Also can use Maven or Gradle to build your project. It can be run directly in the IDE, and on top of that, you can live-reload any changes, the app is redeploying. If you are using Spring Boot you will need to migrate the Spring specific code. Quarkus comes with a Spring DI compatibility layer that makes this very easy. Quarkus is based on well-known specifications such as JAX-RS, JPA, CDI, Bean Validation, and MicroProfile specifications. This means that everything you already know about them can be used in Quarkus In addition, Quarkus tools for visual studio code are also available to use. The Quarkus framework is based on standards which means that the code will be portable and easy to maintain.