sábado, 15 de agosto de 2020

Micronaut 2.0


Object Computing, Inc. (OCI) ha lanzado formalmente Micronaut 2.0, una versión importante del marco de trabajo basado en JVM que ayuda a crear aplicaciones sin servidor, nativas de la nube y basadas en microservicios que utilizan lenguajes como Java, Groovy y Kotlin.

Esta nueva versión mejora significativamente la experiencia del desarrollador con la disponibilidad de Micronaut Launch, una CLI de Micronaut más rápida y completamente renovada, un nuevo complemento de Maven y una actualización a la versión de Gradle. Ahora es compatible con Java 14, aplicaciones escritas en Groovy 3 y marcos reactivos que incluyen RxJava 3 y Reactor. Las capacidades sin servidor se han ampliado al agregar compatibilidad con Azure Functions y Cloud Functions de Google. También proporciona soporte para HTTP/2 y Servlets y un diseño de seguridad renovado. Finalmente, la nueva versión proporciona un rendimiento mejorado con una integración más profunda con GraalVM, consumo de memoria optimizado y tiempos de inicio mejorados hasta en un 20% en promedio en todo el marco.

Micronaut 2.0 incluye un nuevo servicio de inicio, Micronaut Launch, que ayuda a crear un andamio en las aplicaciones basadas en Micronaut. Disponible tanto como una herramienta basada en navegador como como una API REST, Launch ayuda a construir rápidamente y generar aplicaciones basadas en Micronaut. También ofrece una vista previa de la aplicación generada. La CLI de Micronaut tradicional ha pasado por un rediseño completo con un enfoque en el rendimiento y la eficiencia utilizando imágenes nativas de GraalVM. Micronaut Launch, un wrapper de Micronaut CLI, garantiza la interoperabilidad.

EL soporte de Maven se ha actualizado para traerlo a la paridad de características con el conjunto de características actual de Gradle. Se proporciona un nuevo complemento de Maven (mn: run) que ayuda a ejecutar aplicaciones Micronaut a través de Maven con capacidades de recompilación y reinicio automáticos. Además de esto, los proyectos de Maven heredan de un nuevo POM padre que configura la gestión de dependencias de forma más limpia.

La versión de Gradle se ha actualizado a 6.5, lo que brinda soporte de compilación incremental para proyectos de Micronaut 2.0. Básicamente, esto significa que Micronaut no tiene que ejecutar los procesadores de anotaciones completos para cada compilación.

El soporte sin servidor se ha hecho más sólido con la adición de Google Cloud Functions y Azure Functions, al tiempo que se mejora el conjunto de características para AWS Lambda. Micronaut proporciona dos enfoques para ayudar a crear aplicaciones sin servidor. El primer enfoque define una aplicación Micronaut tradicional y le agrega la característica de función sin servidor correspondiente (por ejemplo, funciones en la nube, funciones de Azure o lambdas). Dependiendo de la plataforma sin servidor elegida, Micronaut proporcionará la infraestructura de plomería necesaria para enrutar las solicitudes de funciones a la aplicación.

El segundo enfoque define un tipo de aplicación de "función sin servidor" que permite a los desarrolladores escribir código de función directo de bajo nivel específico para la función de función sin servidor elegida (p. Ej., Funciones en segundo plano de Google Cloud que se suscriben a mensajes pub-sub).

A continuación se muestra un ejemplo de una función sin servidor de bajo nivel escrita en Micronaut para la plataforma sin servidor de funciones de Google Cloud.

public class Function extends GoogleFunctionInitializer

        implements BackgroundFunction<PubSubMessage> {

    @Inject LoggingService loggingService;

    @Override

    public void accept(PubSubMessage message, Context context) {

        loggingService.logMessage(message);

    }

}

class PubSubMessage {

    String data;

    Map<String, String> attributes;

    String messageId;

    String publishTime;

}

Otras características que han llegado a la nueva versión incluyen la capacidad de probar funciones localmente utilizando los SDK proporcionados por la plataforma sin servidor que Micronaut incluye como dependencia y el soporte de imágenes nativas de GraalVM para AWS SDK 2.

Además de Netty, Micronaut 2.0 ahora agrega soporte para tiempos de ejecución de servlet integrados (Jetty / Tomcat / Undertow). Esto permite a los desarrolladores utilizar funciones tradicionales basadas en servlets en sus aplicaciones Micronaut. La experiencia de desarrollar aplicaciones Micronaut basadas en servlets es la misma que usar Netty para incluir recompilación automática / pruebas más rápidas, etc. Esto también incluye la capacidad de crear imágenes nativas basadas en GraalVM para los archivos uber basados en servlets.

A continuación se muestra un ejemplo de cómo crear una aplicación Micronaut basada en servlets utilizando la CLI y luego ejecutarla. Esto usa la función de servidor de embarcadero.

mn> create-app demo-servlet --features jetty-server

$ cd demo-servlet

$ ./gradlew run

org.eclipse.jetty.server.Server - Started @1219ms

io.micronaut.runtime.Micronaut - Startup completed in 615ms. Server Running: http://localhost:8080/

Micronaut 2.0 agrega soporte para HTTP / 2 y se puede habilitar usando un simple cambio en el archivo application.yml para una aplicación Micronaut. Este soporte está disponible actualmente solo para el servidor HTTP y el cliente basados en Netty.

La configuración del lado del servidor se muestra a continuación.

micronaut:

  ssl:

build-self-signed: true

  application:

name: http2Demo

  server:

http-version: http_2_0


El soporte para imágenes nativas de GraalVM se ha movido del estado experimental y ahora tiene soporte de primera clase y ampliado en todo el marco, lo que solidifica aún más el compromiso con GraalVM. Esto incluye la configuración automática de recursos estáticos, controladores JDBC, Hibernate, Flyway, AWS SDK 2 y otras áreas.

Dejo link : https://www.infoq.com/news/2020/08/micronaut-v2/

No hay comentarios.:

Publicar un comentario