Editar

Partilhar via


Arquitetura monolítica limpa de Gridwich

Azure Event Grid
Azure Functions

O código neste projeto é organizado como um monólito de arquitetura limpa, com os seguintes componentes conceituais típicos:

  • Adaptadores API
  • Lógica de negócios de aplicativos dissociados
  • Objetos de domínio principais
  • Gateways de infraestrutura
  • Inversão de controle (IoC)

Diagram showing typical conceptual components of a clean monolith architecture.

A solução é sem monitoração de estado, portanto, não contém nenhum gateway para camadas de persistência. A solução não tem interface de usuário, por isso não tem controladores ou apresentadores.

A composição do componente de software usa a classe GridwichConfigureServices para definir quais classes concretas estão disponíveis no contêiner IoC para o Aplicativo Azure Functions.

Arquitetura

Diagram showing components of the Gridwich monolith architecture.

A solução Gridwich tem uma biblioteca Core.EventGrid , que contém:

  • Os DTOs (objetos de transferência de dados de solicitação e resposta) de domínio.
  • Interfaces para todos os aplicativos, lógica de negócios ou objetos de serviço.
  • As classes base que ajudam a alcançar uma lógica ou atividades comuns orientadas por domínio.
  • Registro em log, observabilidade e definições de exceção para uso em todo o aplicativo.

Para encapsular a Grade de Eventos do Azure como um agente de solicitação e resposta, a biblioteca tem:

  • Um despachante de eventos que usa o IoC para identificar e enviar eventos para ouvintes.
  • Um editor de eventos para colocar as respostas no tópico correto da Grade de Eventos.

O adaptador de solicitação de Grade de Eventos é um ponto de extremidade HTTP na forma de um Ponto de Extremidade HTTP da Função do Azure. Um adaptador para converter solicitações da Web em matrizes de grade de eventos também está no mesmo EventGridFunction.

O gateway de resposta da Grade de Eventos consiste em:

  • O EventGridHandlerBase, que converte um DTO de resposta em um EventGridEvent objeto.
  • O EventGridDispatcher, que coloca o evento Event Grid no URI de ponto de extremidade do tópico Event Grid de resposta correto usando a chave de tópico.

A solução separa os participantes da saga nas seguintes bibliotecas, que têm responsabilidades sobre a lógica de negócios de aplicativos específicos do domínio. As bibliotecas contêm gateways de infraestrutura necessários e seus SDKs, que realizam as ações que a lógica de negócios exige.

Para reutilização e centralização de código, o Gridwich consolida a lógica de negócios ou gateways de infraestrutura que vários participantes usam nas seguintes bibliotecas compartilhadas:

Alternativa de microsserviços

Nada no espaço ou arquitetura do problema de Gridwich explicitamente empurra a solução para um aplicativo monolítico ou vários microsserviços.

Você pode facilmente refatorar o aplicativo em microsserviços, cada um um aplicativo de função hospedando um único participante da saga. Cada aplicativo de função vincularia as bibliotecas principais e principais da Grade de Eventos. Cada aplicativo teria uma ligação ou usaria uma biblioteca comum para gateways de infraestrutura.

Diagram showing an alternative Gridwich microservices architecture.

A vantagem dessa abordagem de microsserviços é a capacidade de escalar de forma diferente para cada tipo de solicitação. Se houvesse milhares de um tipo de solicitação por segundo, mas apenas centenas de outro tipo de solicitação por dia, a solução geral se beneficiaria de ter funções menores, fáceis de instanciar e rápidas de executar para as solicitações de alto volume.

A desvantagem dos microsserviços é que qualquer modelo compartilhado requer a distribuição sincronizada dos microsserviços ou solicita drenagem e alternância do pool se houver uma alteração no esquema de dados. Este requisito complicaria o desenvolvimento futuro, a implantação contínua e as operações. Como o problema de negócios não demonstrou a necessidade de microsserviços, a arquitetura Gridwich usa uma abordagem de monólito limpo.

Próximos passos