Resumen
Quarkus es un marco de Java integral creado en Kubernetes para las compilaciones originales y las máquinas virtuales Java (JVM), el cual permite optimizar esta plataforma especialmente para los contenedores y para los entornos sin servidor, de nube y de Kubernetes.
Se diseñó para que funcione con las bibliotecas, los marcos y los estándares de Java conocidos, como Eclipse MicroProfile y Spring (ambos se presentaron como parte de una sesión en el evento Red Hat Summit 2020), así como también Apache Kafka, RESTEasy (JAX-RS), Hibernate ORM (JPA), Infinispan, Camel y muchos más.
La solución de inyección de dependencias de Quarkus se basa en la inyección de dependencias y contextos (CDI), e incluye un marco de extensión para ampliar las funciones y configurar, iniciar e integrar un marco en las aplicaciones. Dado que agregar una extensión es tan sencillo como incorporar una dependencia, puede optar por esa opción o utilizar las herramientas de Quarkus.
Además, proporciona la información correcta a GraalVM (una máquina virtual universal para ejecutar aplicaciones escritas en varios lenguajes, incluidos Java y JavaScript) para la compilación propia de las aplicaciones.
Cuatro razones por las que debe probar Quarkus
Java™ sigue siendo el lenguaje de programación que muchos desarrolladores eligen a la hora de trabajar, pero la evolución de las tecnologías nativas de la nube, como Kubernetes y la informática sin servidor, supone un desafío. Conozca la razón por la que Quarkus es el marco de Java que los desarrolladores necesitan para trabajar con Knative y la informática sin servidor.
Creado para los desarrolladores
Quarkus se diseñó para que fuera fácil de utilizar desde el principio y cuenta con características que funcionan correctamente con poca configuración o incluso sin ella.
Los desarrolladores pueden elegir los marcos de Java que deseen para sus aplicaciones y ejecutarlos en modo JVM o compilarlos y ejecutarlos como propios de ellas.
Quarkus se diseñó para beneficiar a los desarrolladores; por eso, incluye:
- Programación en vivo, para que puedan verificar de inmediato el efecto de los cambios en el código y corregir los errores rápidamente
- Programación imperativa y reactiva unificada con un bus integrado de eventos gestionados
- Configuración unificada
- Creación sencilla de archivos ejecutables de forma original
Prioridad de los contenedores
Ya sea que la aplicación se aloje en una nube pública o en un clúster de Kubernetes interno, el inicio rápido y el consumo reducido de memoria son importantes para mantener bajos los costos generales del host.
Quarkus se diseñó en torno a una filosofía que da prioridad a los contenedores, lo cual significa que se encuentra optimizado para disminuir el uso de la memoria y acelerar los tiempos de inicio por medio de:
- Respaldo de primer nivel para GraalVM y SubstrateVM
- Procesamiento de metadatos en tiempo de diseño
- Reducción en el uso del proceso de reflexión
- Inicio previo de imágenes originales
Quarkus compila aplicaciones que consumen un décimo de la memoria en comparación con Java tradicional, y ofrece tiempos de inicio hasta 300 veces más rápidos, lo cual reduce significativamente el costo de los recursos de la nube.
Programación imperativa y reactiva
Quarkus está diseñado para combinar a la perfección la programación reactiva sin bloqueos con la imperativa que ya conoce durante el desarrollo de aplicaciones.
Esta característica resulta útil tanto para los desarrolladores de Java que suelen trabajar con el modelo imperativo y no desean cambiar las cosas, como para aquellos que trabajan con un enfoque reactivo/original de la nube.
El modelo de desarrollo de Quarkus se adapta a cualquier aplicación en proceso de desarrollo.
Además, es una solución efectiva para ejecutar Java en este mundo nuevo de la arquitectura sin servidor, los microservicios, los contenedores, Kubernetes, la función como servicio (FaaS) y la nube, ya que se creó teniendo en cuenta todos estos elementos.