O que é arquitetura orientada a serviços (SOA)?

Arquitetura orientada a serviços (SOA) é uma abordagem arquitetônica para projetar aplicativos em torno de uma coleção de serviços independentes. Um serviço pode ser qualquer funcionalidade comercial que conclui uma ação e fornece um resultado específico, como processar um pedido de cliente ou compilar um relatório de inventário. Os serviços podem ser unidos para criar aplicativos compostos, fornecendo maior funcionalidade aos usuários finais.

Os benefícios da abordagem SOA incluem maior facilidade de manutenção e atualização de componentes de serviço – com cada componente mais condensado e contido, é mais fácil corrigir código ou substituir elementos sem impactar todos os outros elementos. Entretanto, surgem problemas quando determinamos a melhor forma de habilitar a comunicação entre serviços. SOA é normalmente associado ao Enterprise Service Bus (ESB) como o meio central de comunicação entre serviços. Os ESBs geralmente não respondem bem a mudanças, geralmente resultam em mais complexidade e dificultam a compreensão de onde um serviço começa e termina.

SOA vs. Microsserviços

Se você acha que SOA se parece muito com a definição atual de microsserviços , você não está sozinho. Microsserviços também são serviços pequenos e independentes, projetados para funcionar de forma independente e, ao mesmo tempo, trabalhar em conjunto. Mas há diferenças importantes entre SOA e microsserviços. Aqui estão alguns pontos a serem observados:

  • Microsserviços são serviços muito detalhados, separados em um certo nível de granularidade por uma razão funcional . Isso significa que, em uma arquitetura de microsserviços, um serviço – incluindo os servidores de banco de dados e aplicativos, bem como o suporte ao produto – é gerenciado de ponta a ponta pela mesma equipe. SOA, por outro lado, separa serviços de maneira lógicaA distinção aqui é que serviços agrupados logicamente são compartilhados entre funções. Parece bom... até que o serviço falha e todas as funções que dependem dele são afetadas. As arquiteturas de microsserviços são projetadas para eliminar esse impacto, contendo completamente os serviços de negócios dentro de suas funções exclusivas, juntamente com tudo o que é necessário para cumprir essas funções e fornecer valor comercial, mesmo que isso signifique duplicar algo ao longo do caminho.
  • Os microsserviços, por serem contidos inteiramente pela função, também não estão vinculados às mesmas estruturas de comunicação, protocolos e especificações que, em última análise, limitam o SOA. Em vez disso, os microsserviços se concentram em manter a inteligência dentro de cada conjunto de endpoints e ter uma estrutura simples para conectá-los. Isso geralmente é melhor alcançado implementando um único gateway de API que abriga a arquitetura interna do sistema e roteia solicitações usando protocolos Web leves, como REST, para cada microsserviço independente. Além disso, cada microsserviço frequentemente consome APIs de outros serviços, mas o gateway impede que aplicativos móveis cheguem ao back-end. Esse nível de flexibilidade é algo que o SOA, sobrecarregado por especificações de serviços web e dependendo do ESB para conectar aplicativos, nunca consegue alcançar.

Embora muitas pessoas pensem em microsserviços como SOA finalmente feito da maneira certa, na verdade há uma série de diferenças críticas que distinguem os dois – e que, em muitos aspectos, tornam os microsserviços a escolha de arquitetura mais eficaz para aplicativos complexos. Para mais informações sobre SOA e microsserviços, baixe o e-book gratuito, Building Microservices: Projetando sistemas de granulação fina .

Como o NGINX pode ajudar?

NGINX Plus e NGINX são as melhores soluções de balanceamento de carga usadas por sites de alto tráfego, como Dropbox, Netflix e Zynga. Mais de 350 milhões de sites no mundo todo contam com o NGINX Plus e o NGINX Open Source para entregar seu conteúdo de forma rápida, confiável e segura.

Como um controlador de entrega de aplicativos (ADC) baseado em software, o NGINX Plus foi projetado para facilitar arquiteturas de microsserviços de forma muito mais eficaz e acessível do que soluções de hardware com recursos comparáveis.

  • O NGINX Plus fornece uma solução completa de entrega de aplicações e balanceamento de carga que aumenta o desempenho e a confiabilidade para cada microsserviço
  • O NGINX Plus é flexível e escalável o suficiente para caber em sua pilha como um gateway de API e como um ponto final para cada serviço
  • O NGINX Plus atua como um servidor HTTP de alto desempenho para concluir ações de microsserviços com a máxima velocidade e eficiência