Slide 1

Slide 1 text

APIs e sistemas legados Ferramentas e técnicas Gleicon Moraes

Slide 2

Slide 2 text

Legado Significados comuns Arquitetura fechada Codigo dentro de banco de dados Linguagem antiga ●  Plataforma proprietária Bancos de dados, message bus

Slide 3

Slide 3 text

Como integrar Ferramentas e técnicas ●  API Gateways ●  BaaS ●  Serverless Platform ●  Event streaming

Slide 4

Slide 4 text

API Gateways - Para que servem Isola e distribui acesso para sistemas internos e APIs. Cada vendor oferece elementos especializados e integrações. Pode ser SaaS ou instalado em sua infraestrutura. Tem muito em comum com CDNs. Client Backend as a Service Aplicação normal Microservices Serverless Client API Gateway

Slide 5

Slide 5 text

Segurança e autenticação ●  Credenciais por usuário ●  Logging ●  Traduz modelos de autenticação do backend. ●  Proteção a DDoS ●  Rate limiting e throttle ●  Listas de restrição de acesso REST e HTTPS ●  Terminação SSL ●  Ponto único de manutenção de certificados. ●  Protocolos adotados por todas linguagens Transição de HTTP 1.1 para HTTP 2 API Gateways - Taxonomia (como escolher) I

Slide 6

Slide 6 text

Escalabilidade horizontal ●  Balanceamento de requisições entre diferentes servidores de API, sem sticky bit ●  Cache distribuídos de requisições ●  Cobrado por requisição ou tráfego (SaaS) Payload rewrite ●  Intercepta requisição e resposta ●  DSL para modificação do conteúdo em tempo real ●  Aceita JSON API Gateways - Taxonomia (como escolher) II

Slide 7

Slide 7 text

Requests compostos ●  Consegue combinar uma ou mais respostas do backend em uma chamada de API ●  Consegue concatenar ou reescrever as respostas ●  Consegue chamar funções / disparar eventos (serverless) Analytics ●  Relatórios sobre requisições individuais ●  Relatórios estatísticos ●  Análise volumétrica ●  Billing ●  Profiling em tempo real de requisições e respostas. API Gateways - Taxonomia (como escolher) III

Slide 8

Slide 8 text

BaaS - Backend as a service Executa queries ou stored procedures em um banco de dados em resposta a um endpoint do API Gateway ** Um bom início mas pode sobrecarregar o banco de dados. ** Não compre separado do API Gateway ** Cuidado com o lock-in Client Backend as a Service Aplicação normal Microservices Serverless Client API Gateway

Slide 9

Slide 9 text

Gerenciamento do banco de dados ●  Exibe configuração de pool de conexões ●  Integra com diferentes bancos de dados e message bus ●  Faz cache das chamadas Analytics ●  Relatórios sobre tempo de resposta do banco de dados ●  Alarmes e monitoração de carga ●  Análise volumétrica BaaS - Taxonomia (como escolher)

Slide 10

Slide 10 text

Serverless - Funções como serviço Pequenos programas que executam em um tempo determinado. Custo baixo. Cada vendor de cloud tem seu padrão ** adote um framework para gerenciar o código desde o inicio ** não caia na armadilha de redesenhar seu sistemas "Serverless" Client Backend as a Service Aplicação normal Microservices Serverless Client API Gateway

Slide 11

Slide 11 text

Gerenciamento de execução ●  Suporta diversas linguagens ●  Tempo e CPU limitados ●  Acesso a recursos como filas e bancos de dados. ●  Overhead de inicialização. Gerenciamento de código ●  Versionamento de funções ●  Roles e acessos Serverless - Taxonomia (como escolher)

Slide 12

Slide 12 text

Event Streaming - Captura de eventos Alterações no fluxo de código para enviar mensagens em pontos importantes do programa Consumidores podem receber estas mensagens e funcionar sem acoplamento ao sistema original Desacopla processamento e volume de requisições Loja Pedido ERP Email Envio Loja Pedido ERP Email Envio Desacoplado Acoplado

Slide 13

Slide 13 text

Mensagens ●  Formato suportado por diversas linguagens ●  SaaS ou próprio ●  Precisa de replay de mensagens, distribuição e confirmação ●  Filas: SQS (AWS), Queue (Google) ●  Log distribuido e replicado: Kafka, Kinesis Características de uso ●  Durabilidade da mensagem ou destruição assim que consumida ●  Reprocessamento de um periodo de tempo ●  Replicação de dados Event Streaming - Taxonomia (como escolher)

Slide 14

Slide 14 text

Anti-Patterns Todo mundo faz ●  Todo sistema legado tende a embutir chamadas para APIs ●  Toda configuração de NGINX converge a um API Gateway pobre ●  Toda empresa já tentou fazer uma API que mapeia stored procedures no banco de dados. ●  A direção de integração é de fora (clientes) para dentro (serviços), não o contrário

Slide 15

Slide 15 text

Comparativo de API Gateways: http://bit.ly/api-gw-report AWS API Gateway Apigee API Gateway and BaaS Kong API Gateway Tyk API Gateway AWS Lambda Google Cloud Functions AWS SQS AWS Kinesis

Slide 16

Slide 16 text

Obrigado github.com/gleicon medium.com/@gleicon