APIs
10
min de leitura
16 de outubro de 2018

Repensando a ESB: O que é arquitetura SOA com APIs?

Rafael Rocha
Head of Solutions and Presales
Tecnólogo formado em Tecnologia da Informação pela UNESP e pós-graduado em MBA em Gestão Empresarial pela UNIMEP.
Mais sobre o autor

Alguns gerentes consideram as APIs uma palavra-chave relacionada às integrações, um problema que eles já abordaram com SOA + ESB. No entanto, as APIs abordam novas demandas, que não são bem gerenciadas pela SOA, enquanto a SOA se concentra em problemas que as APIs não têm.

Com isso em mente, como saber se:

  • Ter uma ESB para integrações é suficiente?
  • API Gateway e ESB são complementares?
  • Eu deveria substituir minha ESB por APIs + Microservices?

Entendendo as lacunas SOA / ESB e o papel da Plataforma API Management

A nova onda de transformação digital não é apenas uma questão de digitalizar processos e integrações internas, mas também de explorar o potencial do ecossistema parceiro, usando sistemas legados junto com novas tecnologias (IoT, Cloud, AI + Analytics, Blockchain, etc.), tendo monitoramento em tempo real e reagindo rapidamente, fornecendo experiências através de diferentes canais e interfaces, envolvendo clientes e colaboradores, e superando desafios de escalabilidade e segurança, entre outros elementos.

Arquitetura SOA

Principais preocupações em relação à ESB:

  • Escalabilidade complexa: As ESBs são monolíticas e escalonáveis verticalmente, com um risco maior de indisponibilidade.
  • Desempenho afetado ao registrar registros: eles podem reduzir o desempenho no processamento de transações em até 30%.
  • Vendor lock-in: consultoria cara e a necessidade de adquirir muitos produtos (BAM, BPEL, e Registro de Serviços).
  • Foco apenas nas integrações: pouca preocupação com a experiência dos parceiros e desenvolvedores front-end.
  • Poucos recursos para Governança, Monitoramento e Monetização: falta de visibilidade em tempo real e registros completos das transações, documentação, versionamento, planos de utilização e faturamento, etc.
  • Apoio limitado para a segurança: OAuth 2.0, OpenID, JWT, etc.

Falta de padrões modernos e protocolos mais leves: As ESBs têm sido ou tendem a ser descontinuadas.

Por que usar APIs para integrações internas e externas?

É uma forma simples, ágil e escalável de integrar sistemas e criar aplicações desacopladas no menor tempo possível. Ao utilizar uma plataforma API Management , os módulos são obtidos para suportar segurança, autenticação, escalabilidade, compromisso de desenvolvimento, governança, monitoramento, monetização e o ambiente de teste, entre outros recursos.

Camada API em Arquitetura SOA

Como API Management e ESB complementam as capacidades da camada de integração:

Arquitetura API e SOA

API Management e a ESB pode existir sozinha, dependendo do cenário e do foco. Na maioria dos cenários, as empresas se beneficiariam de ambos. Nesses casos, a arquitetura é ainda mais robusta, desde que consigamos realçar os pontos fortes de cada um deles:

Arquitetura SOA
Cobertura por ESB SOA API

Foco 1: API Management + Coexistência ESB

Para atingir um alto grau de cobertura em todas as capacidades de uma camada de integração, uma abordagem possível seria optar pela coexistência da plataforma API Management com a ESB. Esta abordagem permite a utilização dos recursos da plataforma API Management (escalabilidade, segurança, governança, compromisso de desenvolvimento, Monetização, Analytics, etc.) com as capacidades da ESB (variedade de conectores, processamento de transações complexas, etc.).

No entanto, existem algumas limitações em termos de escalabilidade, lock-in e desempenho, enquanto o motor de regras pode ser obtido por meio de uma solução específica.

API Management ESB
ESB API Management

Abordagem 2: Substituindo a ESB usando API Management + frente API (Microservices + Connectors)

Para cobrir as capacidades nas quais a plataforma API management não se concentra, sem as limitações da ESB, é possível criar uma camada chamada API Front.

Esta camada é composta de APIs, Microsserviços e conectores, reduzindo assim as dificuldades de escalabilidade, desacoplamento, reutilização, lock-in e desempenho, assim como plataformas específicas para processamento em lote e o mecanismo de regras.

Frente API de substituição de ESB
API Management Microserviços

Benefícios de API Management + Microservices em sua arquitetura de integração

  • Integrações mais flexíveis, facilitando entregas mais rápidas e reduzindo custos
  • Interfaces padronizadas, permitindo multi-channel e agilidade na integração com parceiros
  • Estabelecimento da governança e monitoramento em tempo real das integrações
  • Segurança e controle sobre o uso de APIs
  • Mecanismos para otimizar o desempenho das aplicações
  • Separação de responsabilidades
  • Escalabilidade
API Management Platform

Comparação detalhada das capacidades da camada de integração que podem ser fornecidas por uma plataforma API Management ou por uma ESB:

CapacidadesPatternsAPI ManagementESBAlternative API ManagementAlternative ESB

Comunicação assíncronaWebSocketYesPartial - algumas ESBs suportamN/AMessaging (ex. AMQP)Synchronous communicationREST / JSONYesPartial - algumas ESBs suportamN/AWS-SOAPGraphQLYesNoN/AN/ASecurityOAuth 2.0YesPartial - algumas ESBs suportamN/AWS-Security e AuthDDoSYesNoN/AUse of third-party solutionsWAF (Injections, XSS, CSRF)SimNãoN/AUtilização de soluções de terceirosPrisão de picosNãoN/AUtilização de soluções de terceirosMonitoramento técnicoAlertas de tempo realSimSimNãoN/AN/ATechnical monitoringDashboards & ReportsYesPartial - requer add-onN/ABAM (add-on)Business MonitoringAlertas de tempo realSimNãoN/AN/ADashboards & ReportsYesPartial - requer add-onN/ABAM (add-on-on)Apoio ao desenvolvimentoPortal do desenvolvedorNotN/Acustom PortalComposição & EnriquecimentoServiço de ChamadaYesYesN/AN/AXSLTYesN/AN/Amessage ManipulaçãoYesYesN/AN/AContracto e Normas de DocumentaçãoOpenAPI SpecYesNoN/AWSDLContrato e padrões de documentaçãoDocumentação iterativaYesNoN/Acustom portalGeração SDKYesNoN/ASDK geração manualJSON Validação do esquemaYesNoN/AXSDGovernançaCotas de usoYesNoN/AUso da terceira...soluções de partidoControle de VisibilidadeYesPartial - requer add-onN/AService Registry & Repository (add-on)API / Service CatalogYesPartial - requerOn dd,N/AService Registry & Repository (add-on)LifeecycleYesPartial - requer add-onN/AService Registry & Repository (add-on)Dependency VisibilityYesPartial - requer add-onN/AService Registry & Repository (add-on)TroubleshootingTraceYesN/AN/AAsynchronous LoggingYesNoN/AN/ACustom ReportsYesNoN/AUse of third-Soluções do partido para processar logs Tradução de MensagensXSLTYesYesN/AN/AMessage Mapping WizardNoYesYesCustom Mapping Code SnippetN/AAutomatic Translation (eg XML to JSON)YesYesN/AN/AMessage ManipulationYesYesN/AN/AText ManipulationYesYesN/AN/AProtocol TranslationSOAP to RESTYesPartial - alguns ESBs supportN/AN/ATo HTTP-baseado em RESTYesPartial - algum suporte ESBsN/Acustom translationN/Acustom translationDatabase ConnectorYesYesN/AN/ASAP ConnectorNoYescustom - algum suporte como addonYesCustom ConnectorN/AFTP ConnectorNoYesCustom ConnectorN/AOrchestrationProcess ChoreographyNoYescustom orquestração com MicroservicesN/ACompensation FlowNoYescustom orquestração com MicroservicesN/ARetry QueuesNoYescustom orquestração com MicroserviçosN/ABatch processingProcessamento paralelo (Alto volume de dados)NoYesUseterceiro-Soluções de terceiros - Plataformas de Integração de DadosN/AJob SchedulingNoYesUse soluções de terceiros - Plataformas de Integração de DadosN/AWorkload AutomationNoPartial - requer soluções adicionais de terceiros - Plataformas de Integração de DadosN/ARoutingStatic RoutingYesYesN/AN/AContent-based RoutingYesYesN/AN/ARules-based RoutingYesYesYesN/AN/APolicy-RoutingYesYesYesN/AN/ALogging & Traceabilitystack TraceYesYesN/AN/ATransaction IdentifierYesNotN/AN/ATransaction ManagementDatabase Transaction HandlingNoYesCustom with MicroservicesN/AXA Transactions (2 Phase Commit)NoYesCustomwith MicroservicesN/AWS-TransactionNoYesCustom with MicroservicesN/ARules EngineBRMSNoPartially - requires add-onUse third-party solutionsN/A

Obrigado pela leitura!