Vert.x, el nacimiento de un Súper Saiyan (1/2)

Hoy en día los requisitos de la construcción de aplicaciones empresariales han cambiado mucho con la aparición del movimiento tecnológico del cloud. Si a esto le sumamos el frenético nacimiento de nuevos lenguajes y paradigmas de programación, el abanico de posibilidades crece bastante de cara a una elección correcta de la arquitectura.

Vert.x nace con la inercia de este tipo de tendencias con el objetivo de ser un sistema verdaderamente eficiente para poder cumplir el nivel de exigencia que a los sistemas se les impone a día de hoy.

Todos queremos construir aplicaciones que sean capaces de soportar una volumetría muy elevada haciendo uso de los mínimos recursos posibles. Ahí es donde Vert.x aporta valor, dado que no sigue las pautas habituales de los frameworks y librerías más comunes.

Copyright: Akira Toriyama

Aprendiendo lo básico

Podríamos resumir perfectamente la esencia de Vert.x con una de las frases célebres de Albert Einstein:

“Si buscas resultados distintos, no hagas siempre lo mismo”.

Vert.x nació en 2011 inspirado en NodeJS, compartiendo filosofía básica de la programación asíncrona y del Patrón ReactorEs puramente asíncrono, incluso en su arranque y en sus conexiones a bajo nivel ya que usa Netty.

Está en continuo cambio y crecimiento, siempre adecuándose a los nuevos frameworks y sistemas que van apareciendo para compatibilizar con ellos al máximo.

A día de hoy nos permite el desarrollo de aplicaciones de diferente naturaleza: desde microservicios, Rest API’s, aplicaciones web clásicas, temas de IOT, proxies… ofreciendo siempre un gran rendimiento si se tienen claros los conceptos que la librería promulga.

¿Qué pinta Goku en todo esto?

Hace unas semanas, en las oficinas de Paradigma, mi compañero Ernesto Valero y servidor impartimos una formación para compartir con el resto de nuestros compañeros las novedades que nos presenta Vert.x.

Para hacer más amenas las charlas, siempre nos gusta tematizar las formaciones. En este caso, elegimos a Goku, protagonista de Dragon Ball, por su 30 aniversario. Según vayamos profundizando en el tema, nuestro personaje irá evolucionando con nosotros hasta llegar a la construcción de un juego de lucha mediante microservicios. Pero… ¡eso tendrás que verlo por ti mismo!

Vert.x VS Goku

Rendimiento y eficacia

Una de las características de Vert.x, y que comparte con nuestro Saiyan, es la “fuerza y resistencia” de nuestro protagonista al “rendimiento y eficiencia” de Vert.x.; algo que veremos con ejemplos de Jmeter, huellas de memoria, medición y comparativa de operaciones síncronas y asíncronas, monitorización de MongoDB…

Adaptación al cambio

Otra similitud de Vert.x que podríamos “relacionar” con nuestro personaje es la adaptación al cambio que ha tenido en su evolución sin perder de vista sus raíces (asíncronía, eficiencia, Patrón Reactor…).

Por ejemplo, ha pasado de la versión 2 a la 3 con un rediseño muy grande, adecuándose a las tendencias de otros frameworks (en cuanto a estructura y empaquetado) y haciendo la programación más sencilla enriqueciendo con un API bastante más amigable que las anteriores.

Para no extendernos mucho, a continuación dejamos el primer capítulo de nuestra formación donde veremos aspectos como: tendencias en la construcción de aplicaciones, ¿qué significa ser reactivo?, tipos de verticles, entre otras muchas más cosas.

Aprende con ejemplos

Si en la primera parte de la formación nos centrábamos en aspectos más teóricos, en esta segunda veremos varios ejemplos prácticos realizando un conjunto de pruebas de rendimiento.

Realizamos tres ejemplos, en cada uno de ellos existe un pequeño Readme con las instrucciones básicas para la puesta en marcha. Cada uno de los ejemplos cumple un objetivo de aprendizaje muy definido que podrás encontrar en su documentación.

No obstante, en líneas generales, hablaremos sobre: cómo arrancar Vert.x Interfaz, monitorización mediante JMX, inserción asíncrona en MongoDB, etc.

Copyright: Akira Toriyama

¿Qué necesitas tener instalado para trastear con los ejemplos?

¡Qué no cunda el pánico! En este repositorio dejamos el código de los ejemplos. Además, necesitas tener instalado:

¿Qué posee cada uno de los ejemplos?

  • Fichero build_and_run.sh
  • Jmeter
  • Postman
  • Readme con instrucciones básicas

Ahora que tienes todo a punto, ya puedes ver el segundo capítulo de nuestra formación y descubrir toda la potencia de Vert.x.

Conclusión

En este post hemos visto cómo funciona Vert.x y sus características principales teniendo muy en cuenta dónde no tenemos que equivocarnos (para no hacer un mal uso de la librería) y conseguir nuestros objetivos.

Queda demostrado que Vert.x es muy eficiente ofreciendo huellas de memoria muy muy pequeñas con una gestión de memoria increíble.

¿Te atreves a usarlo?

Arquitecto de profesión, pero con corazón de programador ;) Mi objetivo del día a día es aprender, disfrutar de lo que hago y enriquecerme con las personas que me rodean. Con más de 15 años en el mundo del desarrollo e intentando seguirle el ritmo a las nuevas tecnologías.

Ver toda la actividad de J. Manuel García Rozas

Comentarios

  1. Alberto MM dice:

    Que grande eres Rozas¡¡¡ Me encanta la comparación con el universo Dragon Ball, yo hubiese incluido además una referencia entre el mundo legacy de los WAS, Weblogic, Jboss… con el villano freezer…

Escribe un comentario