Cómo crear tu primera aplicación Quarkus

Los lenguajes de programación y los marcos evolucionan continuamente para ayudar a los desarrolladores que desean desarrollar e implementar aplicaciones con velocidades aún más rápidas, mejor rendimiento y una huella más pequeña. Los ingenieros se esfuerzan por desarrollar el "próximo gran avance" para satisfacer las demandas de los desarrolladores de implementaciones más rápidas.

Quarkù es la última incorporación al mundo de Java y se considera la estrella en ascenso de Java nativo de Kubernetes. Apareció en escena en 2019 para optimizar Java y los marcos de código abierto de uso común para entornos nativos de la nube. Con el marco de Quarkus, puede cambiar fácilmente a sin servidor con Java. Este artículo explica por qué este marco de código abierto está recibiendo mucha atención en estos días y cómo crear su primera aplicación Quarkus.

Índice

    ¿Qué es Quarkus?

    Quarkus reinventa la pila de Java para ofrecer las características de rendimiento y la experiencia de desarrollador necesarias para crear aplicaciones eficientes y de alta velocidad. Es un marco basado en contenedores y nativo de la nube para escribir aplicaciones Java.

    Puede usar sus habilidades existentes para codificar de nuevas maneras con Quarkus. También ayuda a reducir la carga técnica de pasar a un entorno centrado en Kubernetes. Las plataformas de distribución densa como Kubernetes necesitan aplicaciones con tiempos de inicio más rápidos y menor uso de memoria. Java sigue siendo un lenguaje popular para el desarrollo de software, pero adolece de su enfoque en la productividad a costa de la RAM y la CPU.

    En el mundo de la virtualización, sin servidor y en la nube, muchos desarrolladores creen que Java no es la mejor solución para desarrollar aplicaciones nativas de la nube. Sin embargo, la introducción de Quarkus (también conocido como "Java supersónico y subatómico") ayuda a resolver estos problemas.

    ¿Cuáles son los beneficios de Quarkus?

    Quarkus mejora los tiempos de arranque, los costes de ejecución y la productividad. Su objetivo principal es reducir el tiempo de inicio de la aplicación y el consumo de memoria al tiempo que brinda "alegría al desarrollador". Cumpla estos objetivos con capacidades nativas de compilación y recarga en caliente.

    Ventajas del tiempo de ejecución

    • Reduce la huella de memoria
    • Reduce la memoria RSS, utilizando el 10 % de la memoria necesaria para una pila tradicional nativa de la nube
    • Ofrece un inicio muy rápido.
    • Proporciona un marco de contenedor primero, ya que está diseñado para ejecutarse en un entorno de contenedor + Kubernetes.
    • Tiene mucho enfoque en hacer que las cosas funcionen en Kubernetes

    Ventajas para el desarrollo

    • Proporciona una recarga muy rápida en tiempo real durante el desarrollo y la codificación
    • Utiliza bibliotecas y estándares "mejores de su clase".
    • Trae especificaciones y gran soporte.
    • Unifique y admita estilos imperativos y reactivos (sin bloqueo).

    Cree una aplicación Quarkus en 10 minutos

    Ahora que tiene una idea de por qué podría querer probar Quarkus, le mostraré cómo usarlo.

    Primero, asegúrese de tener los requisitos previos para construir una aplicación de Quarkus

    • Un IDE como Eclipse, IntelliJ IDEA, VS Code o Vim
    • JDK 8 o 11+ instalado con JAVA_HOME configurado correctamente
    • Apache experto 3.6.2+

    Puede crear un proyecto con un comando Maven o usando code.quarkus.io.

    Utilice un comando de Maven:

    Una de las formas más sencillas de crear un nuevo proyecto de Quarkus es abrir una terminal y ejecutar los siguientes comandos, como se describe en la guía de inicio.

    Usuarios de Linux y macOS:

    mvn io.quarkus:quarkus-maven-plugin:1.13.2.Final:create
        -DprojectGroupId=org.acme
        -DprojectArtifactId=getting-started
        -DclassName="org.acme.getting.started.GreetingResource"
        -Dpath="/hello"
    cd getting-started

    Usuarios de Windows:

    • Si estás usando cmd, no utilice la barra invertida ():
      mvn io.quarkus:quarkus-maven-plugin:1.13.2.Final:create -DprojectGroupId=org.acme -DprojectArtifactId=getting-started -DclassName="org.acme.getting.started.GreetingResource" -Dpath="/hello"
    • Si está utilizando PowerShell, envuelva -D parámetros entre comillas:

      mvn io.quarkus:quarkus-maven-plugin:1.13.2.Final:create "-DprojectGroupId=org.acme" "-DprojectArtifactId=getting-started" "-DclassName=org.acme.getting.started.GreetingResource" "-Dpath=/hello"

    Usa código.quarkus.io

    Primero, ve a código.quarkus.io para crear un proyecto Quarkus rápido. Esta página lo ayudará a iniciar su aplicación Quarkus y descubrir su ecosistema de extensión.

    Luego, seleccione la extensión que necesita. Piense en las extensiones de Quarkus como dependencias del proyecto. Las extensiones ayudan a configurar, iniciar e integrar un marco o tecnología en su aplicación Quarkus. También hacen todo el trabajo pesado de proporcionar la información correcta al GraalVM Tiempo de ejecución de Java para la compilación de aplicaciones nativas.

    Quarkus proporciona una lista cada vez mayor de más de 50 bibliotecas de primer nivel que los desarrolladores adoran y usan.

    Resultados previstos

    Cualquiera que sea la forma en que cree su proyecto de Quarkus, genere lo siguiente ./getting-started:

    • La estructura Maven
    • A org.acme.getting.started.GreetingResource recurso expuesto en /hello
    • Una prueba unitaria asociada
    • Una página de destino accesible en http://localhost:8080 después de iniciar la aplicación
    • Ejemplo de archivo Dockerfile
    • El archivo de configuración de la aplicación

    Detalles del proyecto

    Al crear el proyecto, produce un src/main/java/org/acme/getting/started/GreetingResource.java archivo con el siguiente contenido:

    package org.acme.getting.started;

    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;

    @Path("/hello")
    public class GreetingResource {

        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String hello() {
            return "Hello";
        }
    }

    Es un punto final REST muy simple que devuelve "Hola" a sus solicitudes /hello Punto final.

    Ejecutar la aplicación

    Ahora todo está configurado para ejecutar su aplicación.

    Para hacerlo, ingrese ./mvnw compile quarkus:dev:

    Una vez iniciado, puede solicitar los puntos finales proporcionados:

    Usar CTRL + C para detener la aplicación o mantenerla en funcionamiento y disfrutar de la recarga en caliente ultrarrápida.

    Usar el modo de desarrollo

    Para ejecutar Quarkus en modo de desarrollo, inicie sesión quarkus:dev.

    Este comando permite la distribución en caliente. Esto significa que cada vez que edite Java o archivos de recursos y actualice su navegador, verá automáticamente todos los cambios. También funciona para archivos de recursos, como el archivo de propiedades de configuración. Actualizar el navegador desencadena un análisis del espacio de trabajo; si detecta algún cambio, vuelve a compilar los archivos Java, redistribuye la aplicación y cumple con su solicitud de la aplicación redistribuida. Si tiene problemas para compilar, una página de error 404 le brindará comentarios de inmediato y lo ayudará a resolver el problema.

    Empaquetar y ejecutar la aplicación

    Para empaquetar la aplicación, use ./mvnw package. Generar varias salidas en /target:

    • uno es el quarkus-app directorio que contiene el quarkus-run.jar archivo como un ejecutable .jar. Asegúrese de que no sea un "über-jar", ya que las dependencias se copian en subdirectorios de quarkus-app/lib/.
    • el otro es el getting-started-1.0.0-SNAPSHOT.jar, que contiene solo las clases y los recursos de su proyecto. Es el artefacto normal producido por la compilación de Maven y no es el .jar ejecutable.

    Ejecute su aplicación usando:

    java -jar target/quarkus-app/quarkus-run.jar

    Sí, es así de simple, fácil e interesante.

    Saber más

    Quarkus ofrece varios recursos oficiales donde puede obtener más información:

    Artículos de interés

    Subir