Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Qual é o papel de um API Gateway na estratégia de APIs

Qual é o papel de um API Gateway na estratégia de APIs

Qual é o papel de um API Gateway na estratégia de APIs "Muito se fala em API Gateways quando pensamos em APIs, mas qual é de fato o
papel desse elemento na arquitetura da solução. Nesta talk vamos detalhar
suas funcionalidades e demonstrar alguns tipos de API gateways que podemos encontrar no mercado.
Nem só de alegria vivem os API Gateways também mostraremos os pontos de atenção e problemas quando utilizamos neste tipo de ferramenta.
No final vamos ter uma breve demonstração das capacidades de um API Gateway.

Claudio Eduardo de Oliveira

December 01, 2021
Tweet

More Decks by Claudio Eduardo de Oliveira

Other Decks in Programming

Transcript

  1. I am Cláudio Oliveira Technical Lead API Team Book Author

    @luizalabs Java, Golang, k8s & microservices
  2. Agenda ❖ Arquitetura de Microservices presente nas empresas ❖ Hyperconnectivity

    Mess ❖ O que é um API Gateway ❖ Tipos de Gateway ❖ Dicas
  3. O que é um API Gateway ??? É uma ferramenta

    de gerenciamento, geralmente adicionada entre o cliente e um grupo de sistemas de um determinado contexto, atuando como ponto único de entrada das APIs. https://learning.oreilly.com/library/view/mastering-api-architecture/9781492090625/ch04.html#idm46093477892672
  4. Funcionalidades de um API Gateway Geralmente o API Gateway atual

    na camada de rede, provendo funcionalidades ortogonais, as que não necessariamente são responsabilidades das aplicações
  5. Quais são essas funcionalidades??? • Controle de abuso ( rate

    limiting ) • Autenticação / Autorização de maneira padronizada • Controle de Logs • Gerenciamento de APIs ( routing ) • Metricas padronizadas ( ops team ) • Tracing Distribuido
  6. Mas, porque eu preciso dessas funcionalidades? • Uniformização das implementações

    de requisitos ortogonais • Expertise, adquirido baseado na construção do gateway • Redução de time-to-market • Redução da complexidade de escrita de códigos • Pode ajudar na governança das suas APIs E acredite as empresas/comunidades se dedicam há anos em construir um produto com foco nesse caso de uso
  7. Enterprise Gateway Foco deste tipo de solução é na grande

    maioria das vezes realizar exposição e gerenciamento de deployment de APIs voltadas ao negócio, em geral ele também permite controlar o ciclo de vida de uma API. definição
  8. Enterprise Gateway Em geral é uma oferta de algum vendor,

    com estratégias comerciais suportando a solução. Este também tende a direcionar a aplicação da solução e implicar no design dos seus serviços. utilização
  9. Enterprise Gateway Propósito principal Exposição, composição e gerenciamento de APIs

    externas/internas Manutenção das APIs Time de APIs em geral faz administração via Portal do API Gateway Suporte a ambientes Suporta múltiplos ambientes DEV, QA e Prod. resumo
  10. Enterprise Gateway dicas gerais Pode ser utilizado para uma modernização

    de arquitetura aplicando padrões como Façade ou Strangler Application (deve ser o meio, e não o final da solução) Disponibilidade vs Consistência (dependências externas) Cuidado com utilização de “policies” da própria ferramenta (vendor lock-in)
  11. Enterprise Gateway Em geral Enterprise Gateways precisam de dependencias externas,

    como banco de dados, caches entre outros, CUIDADO isso pode aumentar suas chances de ter indisponibilidade A “mobilidade” de deployment é bem baixa, enterprise gateways são EDGE na maioria dos casos Vendor Lock-in warning
  12. Micro/Microservices Gateway definição Tipicamente essa classe de Gateways tem a

    capacidade de “rotear” tráfego de entrada para APIs ou serviços. Em geral não oferecem suporte ao ciclo de vida das APIs e as equipes tem que fazê-lo via processo separado Maioria open source
  13. Micro/Microservices Gateway definição Geralmente não possuem dependência externa, e são

    componentes standalone, o que faz com que a plataforma (k8s) gerencie o estado necessário para a execução da aplicação
  14. Micro/Microservices Gateway Propósito principal Exposição, observabilidade e monitoramento de servicos

    ( APIs ) Manutenção das APIs Time de API ou time de criacao/manutencao do servico via configuração declarativa fazem atualizações, esta tarefa faz parte do deployment dos serviços Suporte a ambientes A instância controla um único ambiente, possui suporte a roteamento mais dinâmico como por exemplo Canary para facilitar o debugging. resumo
  15. Micro/Microservices Gateway dicas gerais Reduza o número de instâncias para

    ganhar experiência na gestão do ambiente para escalar para toda companhia Use a flexibilidade do deployment para “particionar” suas APIs ( use Bounded Context do DDD ) Tente ser Stateless o máximo possível isso vai aumentar muito a facilidade escalabilidade / disponibilidade
  16. Micro/Microservices Gateway Números de instâncias pode ser um problema em

    equipes sem expertise em monitoramento / observabilidade Granularidade fina demais, pode complicar a manutenção das APIs Automação deve ser pensada desde o início da jornada warning
  17. Defina um plano para suas APIs, e inclua a escolha

    do API Gateway de acordo com a estrategia conclusao
  18. Evolua passo-a-passo na implementação das práticas de API e considere

    funcionalidades de um API Gateway nesse plano!! conclusao