Arquitetura orientada a serviços
Gorjeta
Este conteúdo é um trecho do eBook, .NET Microservices Architecture for Containerized .NET Applications, disponível no .NET Docs ou como um PDF para download gratuito que pode ser lido offline.
Arquitetura orientada a serviços (SOA) foi um termo muito usado e significou coisas diferentes para pessoas diferentes. Mas, como um denominador comum, SOA significa que você estrutura seu aplicativo decompondo-o em vários serviços (mais comumente como serviços HTTP) que podem ser classificados como diferentes tipos, como subsistemas ou camadas.
Esses serviços agora podem ser implantados como contêineres do Docker, o que resolve problemas de implantação, porque todas as dependências são incluídas na imagem do contêiner. No entanto, quando você precisa expandir aplicativos SOA, pode ter desafios de escalabilidade e disponibilidade se estiver implantando com base em hosts Docker únicos. É aqui que o software de cluster do Docker ou um orquestrador podem ajudá-lo, conforme explicado nas seções posteriores, onde as abordagens de implantação para microsserviços são descritas.
Os contêineres do Docker são úteis (mas não necessários) tanto para arquiteturas tradicionais orientadas a serviços quanto para as arquiteturas de microsserviços mais avançadas.
Os microsserviços derivam da SOA, mas a SOA é diferente da arquitetura de microsserviços. Recursos como grandes corretores centrais, orquestradores centrais no nível da organização e o Enterprise Service Bus (ESB) são típicos em SOA. Mas, na maioria dos casos, estes são anti-padrões na comunidade de microsserviços. Na verdade, algumas pessoas argumentam que "A arquitetura de microsserviço é SOA feita corretamente".
Este guia se concentra em microsserviços, porque uma abordagem SOA é menos prescritiva do que os requisitos e técnicas usados em uma arquitetura de microsserviços. Se você sabe como criar um aplicativo baseado em microsserviços, também sabe como criar um aplicativo orientado a serviços mais simples.