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

APIs e Sistemas legados

APIs e Sistemas legados

Apresentação sobre ferramentas e técnicas para transformar sistemas legados usando API Gateways, Serverless e Event streaming.

Gleicon Moraes

October 04, 2017
Tweet

More Decks by Gleicon Moraes

Other Decks in Technology

Transcript

  1. Legado Significados comuns Arquitetura fechada Codigo dentro de banco de

    dados Linguagem antiga •  Plataforma proprietária Bancos de dados, message bus
  2. Como integrar Ferramentas e técnicas •  API Gateways •  BaaS

    •  Serverless Platform •  Event streaming
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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)
  9. 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
  10. 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)
  11. 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
  12. 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)
  13. 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
  14. 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