Quarkus [ 3 ] [ 4 ] [ 5 ] es un framework de Java optimizado para la eficiencia de recursos y la experiencia del desarrollador. Sus componentes tecnológicos clave son OpenJDK HotSpot y GraalVM . Quarkus proporciona a los desarrolladores un modelo de programación reactivo e imperativo unificado para abordar una gama más amplia de arquitecturas de aplicaciones distribuidas.
Historial de versiones
Distribuciones
GraalVM Community Edition (CE) y GraalVM Enterprise Edition (EE)
GraalVM es una máquina virtual Java para compilar y ejecutar aplicaciones escritas en diferentes lenguajes en un binario nativo de la máquina. GraalVM Community Edition tiene diferentes requisitos de soporte y licencia.
Ánima
Mandrel es una distribución derivada de GraalVM CE, que admite las mismas capacidades para compilar ejecutables nativos, pero basada en el OpenJDK de código abierto . Mandrel busca facilitar el uso de GraalVM por parte de las aplicaciones Quarkus al incluir únicamente los componentes de GraalVM CE que Quarkus necesita. Red Hat comenzó a ofrecer soporte comercial para el uso de Mandrel en la compilación de aplicaciones nativas de Quarkus desde el lanzamiento de Quarkus 1.7 en octubre de 2020. [ 6 ]
Pilares del diseño
Contenedor primero
Quarkus se diseñó siguiendo la filosofía de priorizar los contenedores y ser nativo de Kubernetes, optimizando el uso de memoria para lograr tiempos de inicio rápidos.
Durante la compilación, se realiza la mayor parte del procesamiento posible, lo que incluye adoptar un enfoque de entorno cerrado para la creación y ejecución de aplicaciones. Esta optimización implica que, en la mayoría de los casos, todo el código que no tiene una ruta de ejecución en tiempo de ejecución no se carga en la JVM.
En Quarkus, las clases que se utilizan únicamente al iniciar la aplicación se invocan durante la compilación y no se cargan en la JVM de ejecución. Quarkus también evita la reflexión en la medida de lo posible, priorizando en su lugar el enlace estático de clases. Estos principios de diseño buscan reducir el tamaño y, en última instancia, el consumo de memoria de la aplicación que se ejecuta en la JVM, al tiempo que permiten que Quarkus funcione de forma nativa .
Quarkus utiliza la capacidad de imagen nativa de GraalVM para compilar el código de bytes de la JVM a un binario nativo de la máquina. GraalVM elimina de forma exhaustiva cualquier código inaccesible que encuentre en el código fuente de la aplicación, así como en sus dependencias. En combinación con contenedores Linux y Kubernetes, una aplicación Quarkus se ejecuta como un ejecutable nativo de Linux, eliminando la necesidad de la JVM.
Construido sobre estándares
Quarkus se basa en un ecosistema de tecnologías, estándares, bibliotecas y API, que incluyen Contextos e Inyección de Dependencias ( CDI ), Jax-rs , la API de persistencia de Java (JPA), la API de transacciones de Java (JTA), Apache Camel e Hibernate .
Quarkus es una plataforma de compilación anticipada (AOT), que optimiza el código para la JVM y lo compila a código nativo para mejorar el rendimiento. Todas las tecnologías subyacentes son compatibles con AOT. [ 7 ]
Referencias
- ↑ "Repositorio de Quarkus en Github, primer commit de lanzamiento" . github.com .
- ↑ "Repositorio de Quarkus en Github, último commit de lanzamiento" . github.com .
- ↑ "LogicMonitor, Quarkus vs. Spring" . logicmonitor.com . 28 de enero de 2023.
- ↑ "Guía de QuarkusIO" . Baeldung. 5 de mayo de 2019.
- ↑ "Primeros pasos con QuarkusIO" . mastertheboss.com . 15 de noviembre de 2022.
- ↑ "Repositorio de Quarkus en Github, versión 1.7.0.Final" . github.com .
- ↑ "¿Qué es Quarkus?" . Guía digital de IONOS . 13 de enero de 2022 . Consultado el 22 de agosto de 2022 .
Bibliografía
- Marc Nuri San Felix (noviembre de 2022). Full Stack Quarkus y React. Packt . ISBN 9781800562738
- Eric Deandrea, Daniel Oh, Charles Moulliard (agosto de 2021). Quarkus para desarrolladores de Spring, 1.ª edición. Red Hat Developer
- John Clingan, Ken Finnigan (diciembre de 2021). Microservicios nativos de Kubernetes con Quarkus y MicroProfile, 1.ª edición. Manning. ISBN 9781617298653.
- Tayo Koleoso (26 de agosto de 2020). Introducción al framework Quarkus: Creación de aplicaciones Java empresariales nativas de la nube y microservicios. 1.ª edición. Apress ISBN 1484260317.
- Alex Soto Bueno, Jason Porter (14 de julio de 2020). Quarkus Cookbook: Soluciones Java optimizadas para Kubernetes, 1.ª edición. O'Reilly . ISBN 1492062650.
- Francesco Marchioni (13 de diciembre de 2019), Aplicaciones prácticas nativas de la nube con Java y Quarkus: Cree aplicaciones Java sin servidor nativas de Kubernetes de alto rendimiento. 1.ª edición. Packt . ISBN 1838821473
- Plataforma empresarial Java
- marcos de trabajo web