En la anterior publicación, realizamos una pequeña introducción de la tecnología GRPC, de sus ventajas y de una arquitectura con la plataforma WSO2. En esta parte nos centraremos en como implementar dicha arquitectura y en con que herramientas cuenta la plataforma WSO2 para ello.
MicroGateway WSO2: la manera de gestionar más eficientemente un sistema de microservicios.
Microgateway de WSO2 soporta la definición protobuf extensión lo cual nos permite:
- Definir el punto final de producción del servicio actual grpc.
- Definir esquemas de autenticación: permite definir múltiples tipos de esquema de seguridad como JWT, Oauth2, Basic, API Keys, etc.
- Definir “scopes” de autorización: para escenarios donde se requiere un acceso basado en grano fino como son roles y usuarios. Pueden definirse para métodos del servicio incluso pueden definirse varios “scopes” para un mismo método.
- Definir políticas de límite de uso: se pueden definir políticas para limitar el uso del servicio evitando así garantizar que no se sobrecargue. Se pueden definir políticas a nivel general del servicio o particular a nivel de método.
REST to GRPC: Dar el paso de manera sencilla y escalable.
Un posible escenario puede ser un sistema con una arquitectura Basada en microservicios con una comunicación REST. Pasar a realizar la comunicación a GRPC puede ser una tarea complicada.
Para ello WSO2 nos facilita este trámite y añade ciertas ventajas de gobierno de APIs.
Como muestra la anterior imagen, la arquitectura con WSO2 añade un microgateway a cada microservicio, realizando la comunicación GRPC entre los mismos servicios. Además, estos microgateways pueden añadir funcionalidades extras a los microservicios que antes no tenían como las comentadas definiciones de políticas de seguridad o límite de uso.
WSO2 API MANAGER: Aplicando el gobierno de APIs.
Una vez creada la estructura de microgateways, estos pueden ser publicados en API Manager para su gestión. Ello nos añade las ventajas de:
- Suscripción: con ello los clientes pueden suscribirse a las APIs que están publicadas y obtención de metadatos de estas. Lo cual nos da una ventaja en el control de que APIs queremos publicar o no.
- Analítica de servicios: Con ello se puede realizar análisis del uso de los microservicios con la combinación de Analitycs de WSO2
- Acceso al catálogo de APIs a través del Portal del desarrollador: facilita el catálogo de APIs disponibles para suscribirse.
Referencias
WSO2: https://wso2.com/
Google: https://developers.google.com/protocol-buffers
Microsoft: https://docs.microsoft.com/es-es/aspnet/core/grpc/comparison?view=aspnetcore-3.1