Mandrel: una distro de GraalVM para la construcción de Quarkus
Red Hat y la comunidad GraalVM dieron a conocer hace poco de manera conjunta el anuncio de la liberación de una nueva distribución de GraalVM, llamada Mandrel. Se espera que con esta nueva distribución se impulse la construcción Red Hat de Quarkus, una adición recientemente anunciada a Red Hat Runtimes.
Quarkus es un marco nativo de Java de Kubernetes para JVM y compilación nativa. Quarkus proporciona una solución eficiente para ejecutar aplicaciones Java sin servidor, microservicios, contenedores, Kubernetes, FaaS o nube. Mandrel es de código abierto y está disponible en GitHub, pero aún no tiene una distribución binaria.
Según una nota de Mark Little, director senior de ingeniería de Red Hat, Mandrel puede describirse como una distribución de un OpenJDK estándar con una imagen nativa GraalVM especialmente empaquetada.
El objetivo principal detrás de la introducción de Mandrel por Red Hat es mejorar la velocidad y la eficiencia del marco Quarkus. Es un marco que ofrece desarrollo local con recarga rápida y distribución en contenedores o sin servidor a proveedores de computación en la nube.
Quarkus se centra en la capacidad de construir ejecutables nativos que comienzan más rápido y también reducen los costos y los recursos operativos en la nube.
De hecho, Red Hat explicó que para Quarkus, el elemento importante de GraalVM es su función de imagen nativa que produce ejecutables nativos, que es una característica clave para que Java sea competitivo en las cargas de trabajo de la nube nativa. Por lo tanto, Mandrel permite tener GraalVM además de OpenJDK 11 en Red Hat Enterprise Linux y otras distribuciones de OpenJDK 11.
Según Red Hat, la diferencia para el usuario es mínima, pero para la mantenibilidad, la alineación previa con OpenJDK 11 y GraalVM es esencial.
«Con Mandrel, los clientes de Red Hat y la comunidad de GraalVM se benefician de un desarrollo verdaderamente abierto, y Red Hat puede apoyar a sus clientes con mecanismos probados al tiempo que retribuye a las comunidades en las que confía para continuar avanzando en el estado del arte de la informática de código abierto «, dijo la compañía, hablando sobre Mandrel.
En términos de rendimiento, GraalVM se distingue por un tiempo de inicio 50 veces más rápido y un uso de memoria 5 veces menor.
Estas diferentes pruebas se realizaron utilizando una versión anterior del marco Quarkus contra el modo Java HotSpot. Aunque esta mejora requiere un tiempo de compilación más largo, se puede usar en paralelo con el despliegue de las funciones Lambda y Azure de Quarkus.
Además, el repositorio Mandrel GitHub aún no ofrece distribución binaria. De lo contrario, los usuarios compilan el JDK ellos mismos siguiendo las instrucciones. Además, James Ward, desarrollador de software, evaluó GraalVM en detalle y presentó sus beneficios en la mejora del rendimiento, así como algunas trampas, como las aplicaciones que se basan en la reflexión.
Según él, esto crea un problema para las imágenes nativas de GraalVM porque la reflexión se produce en tiempo de ejecución, lo que dificulta que un compilador AOT (anticipado) determine las rutas de ejecución.
Con respecto a las aplicaciones que no necesitan pensar, la página de inicio de Quarkus apunta directamente a la ventaja: 12 MB de RAM contra 73 MB (una disminución del 83%) y 0.016 segundos en la primera respuesta contra 0.943 (una disminución del 98%).
Los desarrolladores ahora pueden usar Mandrel con su propia compilación, o pueden confiar en la comunidad GraalVM o en cualquier distribución de JDK 11 y superior. Otros dicen que estos frameworks nativos de Java realmente no funcionan y no deberían convertirse en un estándar de la industria.
Según ellos, no es una tecnología de propósito general donde uno puede tomar una aplicación Java existente y hacerla nativa. Esto no funcionará, incluso para aplicaciones que se escriben eligiendo una biblioteca del vasto ecosistema de Java.
Los últimos creen que varios proveedores de framework apuestan por el hecho de que la mayoría de las aplicaciones Java son aplicaciones HTTP/ORM/JSON, además de medidas y seguridad, etc.
Si quieres conocer mas al respecto puedes consultar el siguiente enlace.