Skip to main content

Desarrollo de Microservicios basados en GRPC sobre WSO2. Parte I

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 votos, promedio: 5,00 de 5)
Cargando…

En la actualidad, se está llevando cada vez más la tendencia a realizar una arquitectura a microservicios. Existen multitud de artículos que plasman la base de esta arquitectura por su versatilidad, mejor adaptación al cambio, reparto de carga en tareas menos complejas, etc.

Para ello, a nivel de tecnología y arquitectura existen diferentes opciones para implementarlo. En este artículo nos centraremos en una arquitectura basada en tecnología basada en GRPC con la plataforma WSO2.

¿Qué es GRPC y por qué?

Es un sistema de llamada a procedimiento remoto (RPC) de código abierto desarrollado inicialmente en Google. Utiliza como transporte HTTP/2 y Protocol Buffers como lenguaje de descripción de interfaz.

Sus ventajas principales son:

Ventajas:

  • Rendimiento: Los mensajes de gRPC se serializan mediante Protobuf. La serialización de Protobuf genera cargas de mensajes pequeñas, un aspecto importante en escenarios de ancho de banda limitado como por ejemplo, las aplicaciones móviles.
  • Diseñado bajo HTTP2: Tramas binarias y compresión. El protocolo HTTP/2 es compacto y eficaz tanto para el envío como para la recepción.
  • Generación de Código (Protocol Buffer): Un archivo principal para el desarrollo de gRPC es “.proto”, en el que se define el contrato de servicios y mensajes de gRPC.

Mediante el uso compartido del archivo “.proto” entre el servidor y el cliente, los mensajes y el código de cliente se pueden generar de extremo a extremo.

  • Comunicación en Streaming: HTTP/2 proporciona una base para las secuencias de comunicación en tiempo real de larga duración.

Plataforma WS02 y GRPC

La plataforma WSO2, junto con GRPC, utilizan la potencia de ambas tecnologías para la administración de las API desde un sistema centralizado y escalable, y las ventajas anteriormente comentadas de GRPC.

En este entorno podemos fácilmente desarrollar un sistema de microservicios a un entorno donde empiece a estar presente GRPC de manera fácil y escalable.

Para ello, podemos encontrarnos en un escenario como muestra la siguiente imagen:

En la imagen apreciamos un sistema basado en microservicios donde cada uno de ellos puede ser desarrollado en el lenguaje que más se adapte a la necesidad de cada funcionalidad de negocio y su comunicación con los demás servicios es a través de GRPC.

Esta comunicación entre máquinas es mucho más eficiente, ya que utiliza un protocolo binario y con un contrato fuertemente tipado usando Protocol Buffer, un lenguaje neutral para cualquier plataforma y extensible con el que una vez declarado puede ser usado tanto por el cliente como por el servidor. Esto aumenta el rendimiento total del sistema.

Por otro lado, diferentes grupos de desarrolladores son capaces de desarrollar los microservicios en diferentes lenguajes.

Para la interfaz externa, se implementa una capa REST la cual es entendible para interacciones humanas.

En la siguiente parte del artículo veremos cómo realizarlo con WSO2 MicroGateway.

 

Conclusión

La tecnología GRPC nos proporciona diferentes ventajas a niveles de comunicación utilizando los nuevos estándares HTTP2, por ejemplo, y a la vez una abstracción a niveles de contrato entre cliente/servidor. Con ello, WSO2 soporta dicha implementación de la tecnología aportando agilidad y todas las ventajas de microservicios que veremos en la siguiente parte del artículo.

Roberto López Pascual

Roberto López Pascual

Roberto López Pascual ha escrito 3 entradas


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.