Share
Embed
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
Transcript
16 slides
-
Legado Significados comuns Arquitetura fechada Codigo dentro de banco de
dados Linguagem antiga • Plataforma proprietária Bancos de dados, message bus -
Como integrar Ferramentas e técnicas • API Gateways • BaaS
• Serverless Platform • Event streaming -
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 -
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 -
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 -
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 -
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 -
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) -
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 -
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) -
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 -
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) -
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 -
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