Red Hat veut impliquer Java dans des paradigmes de traitement plus modernes en livrant un outil adapté aux environnements Kubernetes et serverless. Actuellement en version bêta, le framework open source Quarkus de Red Hat vise d'abord le monde du cloud natif et des conteneurs. Quarkus utilise un modèle de programmation unifié réactif et impératif pour prendre en charge les architectures d'applications distribuées comme les microservices et l’informatique serverless. Java peut être difficile à exécuter dans des environnements serverless, où les services de traitement sont appelés à la demande.
Les capacités de Quarkus, selon Red Hat :
- Démarrage rapide, de l'ordre de quelques dizaines de millisecondes, et mise à l'échelle automatique pour les microservices sur conteneurs.
- Fonction-as-a-service (FaaS) et exécution sur place.
- L’utilisation d'une faible quantité de mémoire permet d'optimiser la densité des conteneurs dans les déploiements d'architecture microservices qui nécessitent plusieurs conteneurs.
- Un encombrement réduit de l'application et de l'image du conteneur.
La configuration se fait via un seul fichier de propriétés. Red Hat affirme que le code est adapté pour 80 % des usages courants et qu’il offre une flexibilité pour les 20 % restants. Quarkus utilise des bibliothèques comme Eclipse MicroProfile et Vert.x, JPA/Hibernate, JAX_RS/RestEasy et Netty. Un framework d'extension permet aux auteurs de framework de tierce partie d’étendre les fonctionnalités de Quarkus.
Quarkus peut être compilé en binaire natif avec la machine virtuelle GraalVM d'Oracle. Les apps ont besoin de beaucoup moins de RAM pour fonctionner et elles démarrent plus rapidement qu'une app traditionnelle exécutée sur la JVM, profitant du déploiement serverless. Pour développer avec Quarkus, il faut un IDE Java, le JDK 8 ou ultérieur, Apache Maven 3.5.3 ou ultérieur, et, pour les applications natives, GraalVM. Les apps sont définies dans un fichier POM XML Maven.