Quarkus is a full-stack, open-source, Kubernetes-native Java framework that enables Java developers to create applications for a modern, cloud-native world. Quarkus follows a container first approach. It tailors your application for OpenJDK HotSpot and GraalVM. The framework provides amazingly fast boot time, incredibly low RSS memory (not just heap size!) offering near-instant scale-up and high-density memory utilization in container orchestration platforms like Kubernetes. It uses a technique called ‘compile time boot’. Quarkus unifies the familiar imperative and reactive programming. Key features:
- Developer Joy – Quarkus provides a frictionless development experience through a combination of tools, libraries, extensions, and more. Quarkus makes developers more efficient with tools to improve the inner loop development cycle while in dev mode.
- Kubernetes-native – Quarkus was built from the ground up for Kubernetes making it easy to deploy applications without having to understand all of the complexities of the platform. Quarkus allows developers to automatically generate Kubernetes resources including building and deploying container images without having to manually create YAML files.
- Best of breed libraries and standards – Quarkus was built from the ground up for Kubernetes making it easy to deploy applications without having to understand all of the complexities of the platform. Quarkus allows developers to automatically generate Kubernetes resources including building and deploying container images without having to manually create YAML files.
- Imperative and reactive code – Quarkus is designed to seamlessly combine the familiar imperative style code and the non-blocking, reactive style when developing applications. This is helpful for both Java developers who are used to working with the imperative model and don’t want to switch things up, and those working with a cloud-native/reactive approach. The Quarkus development model can adapt itself to whatever app you’re developing.
Get Quarkus: https://quarkus.io/
Cloud computing and microservices are changing the entire software industry. According to an O’Reilly survey, more than 30% of large enterprises have begun to use microservices. The main benefits for organizations are better feature flexibility, faster handling of changing business requirements, better overall scalability, and improved developer productivity. More than 80% of developers worldwide expect microservices to become the standard architecture in the next few years, but more than half do not have related skills. Our goal is to help Java developers get started with microservices and use them in production.
Java is changing radically: Traditional Java is not suited for the cloud
The way we used to build enterprise applications for 25 years is changing fundamentally. Apps must be easy to deploy, fail-safe, and scalable to run perfectly in the cloud and to minimize cloud costs – they must be cloud native. However, monolithic apps are not suited for that. To meet those requirements large applications must be divided into many single microservices. Microservices can be developed, tested, and deployed independently from each other, and run within their own container and JVM environment.
Unfortunately, the traditional application server approach and even the JVM are not suited for running containerized microservices. The JVM startup time is too slow and the memory footprint too high so traditional Java cannot keep pace with modern serverless functions. This is also true for traditional database programming and monolithic database servers.
New cloud-native Java technology stack
A new Java cloud-native technology stack is available that revolutionizes Java. There are 3 main game-changers:
- Comparable to Java EE, there is a new standard called MicroProfile. Modern microservice frameworks implementing MicroProfile, enable you to build microservices and even serverless functions in good old powerful Java.
- The revolutionary GraalVM lets you build native images: Java as fast as C, millisecond startup time, and minimal footprint.
- MicroStream is a Java-native persistence that allows you to store any object graph or single subgraphs natively, which means without any mappings. The engine enables you to create Java in-memory database apps, microsecond query time, tremendous throughput and is predestined for microservices having their own persistence.
We help you to get started with microservices
Microservices come with a paradigm shift in architecture and if you want to develop state-of-the-art enterprise applications you must have microservices know-how. These courses will help you to learn how to develop highly efficient and powerful microservices in Java.