Sistemas legados podem ser muito complexos e travados em capacidade de evolução rápida e conectividade. Com a necessidade de inovação e digitalização dos negócios, grandes empresas estão enxergando uma camada de APIs como forma de destravar back-ends legados – com objetivo de trazer flexibilidade de arquitetura. As APIs funcionam como catalisador dessa estratégia.
Nesta apresentação, vamos mergulhar em padrões de design e técnicas para exposição de APIs a partir de sistemas complexos. Entre os temas cobertos:
- Estratégias de design para a definição das APIs com vantagens e desvantagens de cada uma das abordagens;
Como atacar questões de diversidade de protocolos de acesso aos back-ends;
- Formas de lidar com as limitações e inflexibilidades do back-end legado;
- Como implementar o pattern API Facade na prática;
- Como uma camada de API Gateway pode ser utilizada na composição da arquitetura, aumentando a flexibilidade;
- Exposição de APIs a partir de sistemas mainframe;
- Como solucionar problemas arquiteturais como logging, exceções e monitoramento;
- Como conduzir a operação e evolução de APIs nesta abordagem.
6. A ideia das APIs é prover um mecanismo
simples, seguro com baixo acoplamento,
padronizado e interoperável para um
desenvolvedor construir suas apps comunicando
com um backend no menor tempo possível.
12. Legado
Estigmas
• Aplicações moníliticas nem sempre
modularizadas, problemáticas
• Baixa capacidade de conectividade
• Ciclos de entrega longos (meses)
• Dificuldade para evoluir e compor
novas tecnologias
• Obsolecência tecnológica ou
tecnologias zumbis
13. Não é algo totalmente ruim
• Um sistema legado muitas vezes é
um sistema de sucesso
• Que pode ter grande impacto
positivo no negócio
Razões para mantê-lo
• O sistema funciona satisfatoriamente
• Não há razão técnica ou funcional
para mudá-lo
• O custo benefício de uma
substituição é baixo ou zero
• Justificar o ROI
• Priorização
27. Acesso a
Camada de
Serviços/APIs
Vantagens
• Uso das funções (camada)
de negócio da aplicação
• Não requer alterações de
código no lado da aplicação
• Transformação de protocolo
e formato de dados pesadas
Riscos
• A diversidade de protocolos
e suas peculiaridades
• A tecnologia do API-Front
com adaptador do protocolo
• Entender todos os serviços e
funções disponibilizadas
• Dificuldade em ter aderência
RESTfull
• Dilemas em cenários de
aparente composição
• Escalabilidade
29. Acesso a
Camada de
Dados
Vantagens
• Não requer alterações de
código no lado da aplicação
• Vai direto ao ponto
Riscos
• Não há reaproveitamento
de regras de negócio,
exceto se as regras
estiverem em Stored
Procedures
• Pode haver a necessidade
de reimplementar algumas
regras de negócio
• API-Front tende a ficar
complexo e com baixa
coesão
Arquitetura Web, Client-
Server, Database-
Centric, Monolitíca,
Mainframe...
30. Web Server
HTTP
request/response
Envio de comandos get e post http e
parser do conteúdo html/dom
Web Client
Web Form
Legado
API
Padronizada
API-Front
HTTP/REST
Databases
Arquitetura Web
(Thin Client)
Web Scraping
ou Web
Harvesting
31. Arquitetura Web
(Thin Client)
Web Scraping
ou Web
Harvesting
Vantagens
• Uso das funções (camada)
de negócio da aplicação
• Uso do próprio protocolo
HTTP
• Não requer alterações de
código no lado da aplicação
• Interessante para um MVP
Riscos
• Dificuldade de
implementação em
HTMLs/DOM malformados
• Alterações no HTML/DOM
tendem a quebra o código
de Scraping
• Questões legais de direitos
autorais
• Dados da aplicação que não
são expostos em uma View.
32. https://github.com/lapwinglabs/x-ray
var path = require('path')
var read = require('fs').readFileSync
var html = read(path.resovlve(__dirname, 'index.html'))
var Xray = require('..')
var x = Xray()
x(html, 'h2')(console.log)
Arquitetura Web
(Thin Client)
Web Scraping
ou Web
Harvesting
Tecnologia
39. • Escolha módulos/frameworks leves (ex: Spring)
• Crie interceptadores para as exceções genéricas
• Prepare-se para ter várias classes utilitárias (ex:
conexão, manipulação de strings etc)
• Quebre o API Façade em “microservices”
(decomposição)
Dicas
Webinar Microservices
http://bit.ly/Sensedia_microservices
45. “Aqui é diferente... nosso caso é
específico...”
“Estamos fazendo as coisas assim faz
30 anos, não é possível que estamos
errado.”
Barreiras
Culturais
50. API Architect
API Developer
Backend ArchitectAPI Product Owner
Developer
Engagement
API Operator
A Equipe
Papéis - Planos
- Roadmap de APIs
- Modelo de negócio
- Identifica as APIs
- Desenha as interfaces
- Garante o DX
- Data-mapping
- Constrói o API-Front
- Apoia o API Architect na
análise bottom-up
- Publica as APIs
- Monitora o uso
- Configura políticas/alertas
- Onboarding dos App Dev
- Suporte para os App Dev
- Melhoria do portal
- Feedbacks para API PO
Business Analyst
- Apoia no entendimento do negócio
51. 1
2
3
Aproveite ao máximo o poder
do legado para suas APIs
Escolha estratégias e
tecnologias adequadas
Monte um time multidisciplinar
e pense API-First