O documento apresenta o WSO2 API Microgateway 3.1, um gateway leve e voltado para desenvolvedores para expor APIs e microsserviços. Apresenta recursos como suporte a gRPC, observabilidade com Prometheus e Jaeger, autenticação com JWT, autorização com escopos, limites de uso, interceptores Java e Ballerina, e integração com o Policy Hub para transformações. Demonstra esses recursos em seis demos ao vivo.
[API Word 2021] - Quantum Duality of “API as a Business and a Technology”
Introdução ao WSO2 API Microgateway 3.1
1. Introdução ao API Microgateway 3.1
Francisco Ribeiro
Solutions Architect / Associate Director
WSO2 Webinar
Lead Solutions Engineer
João Emílio
2. ● Leve
● Voltado ao Desenvolvedor
● Descentralizado
● Cloud native
○ 40 MB imagem docker-
○ 250 MB de RAM | < 1 core CPU
○ ~1s startup time
○ Independente de outros componentes,
flexível K8s, Docker
Introdução
● Gateway de Borda (Edge Gateway - Tráfego
North-South)
● Sidecar (Tráfego East-West)
● Portabilidade
○ Suporte nativo para Docker/Kubernetes
○ Independente de Plataforma
○ Endpoints por recurso REST
■ API consolidando múltiplos
microsserviços
Um gateway projetado para microsserviços e arquiteturas voltadas à microsserviços
3. WSO2 API Microgateway
Developer-First, Governança de APIs, Interceptors Ballerina e Java
Dois componentes principais
Toolkit Runtime
WSO2 API
Microgateway
5. Quais são as novidades?
• Suporte a gRPC
• Observabilidade
• Suporte a múltiplos emissores(issuers) JWT
• Policy Hub para transformações
• Suporte a Java para criação de Interceptors
• Integração com OAuth2 servers externos
• Combinar segurança em nível de transporte e aplicação
• Emissão de API keys
6. Que ferramentas vamos utilizar?
• WSO2 API Manager 3.1.0
• WSO2 API Microgateway 3.1.0 - Toolkit e Runtime
• Docker for Desktop (Kubernetes)
• Prometheus e Grafana
• Jaeger
• Keycloak
• VS Code
• Java JDK 1.8, Apache Maven, curl, jq
8. Usamos protobuf para definição da API
Extensões protobuf pré-definidas para configuração do gateway
Extensões disponíveis para:
● Definir o endpoint de produção para o serviço gRPC
● Definir os esquemas de autenticação
● Definir os escopos para autorização
● Definir políticas para limite de uso
Suporte a gRPC com Microgateway
9. Autenticação
Uso da extensão protobuf da
WSO2 para definir autenticação
Esquemas de autenticação
suportados
● JWT
● OAuth2
● Basic
● API Keys
11. Limites de uso podem ser aplicados tanto a nível de serviço como a nível de método
Quando definido a nível de serviço todos métodos tem um limite coletivo
Quando definido no nível do método, cada método individual obtém a respectiva cota
Throttling
14. Suporta todos os três pilares da observabilidade
● Logs
● Métricas
● Tracing
Prometheus e Grafana para monitorar as métricas
Jaeger e Zipkin para tracing distribuído
Observabilidade com Microgateway
17. Permite interceptar e modificar request/responses
Suporta criação de interceptors usando tanto Java como Ballerina lang
Interceptors
18. Adicionar a dependência maven
Implementar a interface org.wso2.micro.gateway.interceptor.Interceptor
Use alguns métodos utilitários comuns para modificar request/response
Utilizar o interceptor usando a extensão Open API:
x-wso2-request-interceptor: java:org.wso2.mgw.interceptors.SampleInterceptor
Implementando um Java Interceptor
21. Mediação e transformação de mensagens são partes chave de um API Gateway
Policy Hub(https://central.ballerina.io/),
● Um local centralizado para hospedar transformações customizadas escritas em
Ballerina Lang
● Busca e reúso de Políticas
● Políticas podem ser integradas a uma API através das extensões Open API
“x-wso2-request-interceptor” ou “x-wo2-response-interceptor”
Policy Hub