Now Reading
Passos para um Eficiente Design de Microsserviços

Passos para um Eficiente Design de Microsserviços

3 Passos para um Eficiente Design de Microsserviços

Microsserviços é um estilo de arquitetura que cria aplicações resilientes, altamente dimensionáveis, possíveis de implementar de forma independente e capazes de evoluir rapidamente. Contudo, uma boa arquitetura de microsserviços requer uma abordagem diferente no que respeita a conceção e criação de aplicações, que comporta enormes benefícios e alguns desafios.

Uma arquitetura de microsserviços consiste numa coleção de pequenos serviços autónomos. Cada serviço é independente e deve implementar uma única capacidade de negócio num contexto vinculado. Um contexto vinculado é uma divisão natural dentro de uma empresa e fornece uma fronteira explícita dentro do qual existe um modelo de domínio.

Devemos por isso, seguir alguns passos de forma a definir os limites dos microsserviços. Queres saber quais?

  1. Orientação por Domínio de Negócio; Business Domain Oriented
  2.  DDD Tático; Tactical Domain-Driven Design
  3. Identificação dos microsserviços da aplicação; Identifying Application Microservices

Passo 1: Orientação por Domínio de Negócio

Durante a fase estratégica, temos alguns desafios e alguns elementos a ter em consideração. Um dos primeiros e maiores desafios dos microsserviços é definir os limites dos serviços individuais. A regra geral é que um serviço deve fazer “uma coisa”, contudo, na prática, esta regra requer ums análise cuidadosa. Não há nenhum processo mecânico que produza o design “certo”. Terás de pensar profundamente no seu domínio empresarial, requisitos e objetivos.

A estruturação baseada em domínio (DDD) fornece uma estrutura que pode ajudar-te a percorrer a maior parte do caminho para um conjunto de microsserviços bem estruturados. A DDD tem duas fases distintas: estratégica e tática.

A DDD estratégica ajuda a garantir que a arquitetura permanece focada nas capacidades do negócio. O DDD tático fornece um conjunto de padrões de design que podes utilizar para criar o modelo de domínio.

Começa por analisar o domínio de negócio para entender os requisitos funcionais da aplicação. A saída deste passo é uma descrição informal do domínio, que pode ser melhorada para um conjunto mais formal de modelos de domínio.

Em seguida, define os contextos vinculados do domínio. Cada contexto vinculado contém um modelo de domínio que representa um subdomínio específico da aplicação maior.

Dentro de um contexto vinculado, aplica padrões de DDD táticos para definir entidades, agregações e serviços de domínio.

Utiliza os resultados do passo anterior para identificar os microsserviços na sua aplicação.

Passo 2: DDD Tático

O DDD tático define os modelos de domínio com mais precisão. Nesta fase são identificados e definidos:

See Also
Tendências em serviços de IT Nearshore na agenda dos decisores em 2022

  • Entidades (entities);
  • Value Objects (value objects);
  • Agregações (aggregates);
  • Serviços de Domínio e Aplicações (domain and application services);
  • Eventos de Domínio (domain events).

Passo 3: Identificação dos Microserviços da aplicação

Começa com um contexto vinculado. De modo geral, a funcionalidade num microsserviço não deve abranger mais do que um contexto vinculado. Por definição, um contexto vinculado marca o limite de um modelo de domínio específico. Se descobrires que um microsserviço combina diferentes modelos de domínio juntos, é sinal de que talvez seja necessário voltar atrás e aperfeiçoar a análise de domínio.

De seguida, observa as agregações no modelo de domínio. As agregações geralmente são bons candidatos para microsserviços. Uma agregação bem concebida apresenta muitas das características de um microsserviço bem concebido, como:

  • Uma agregação deriva dos requisitos de negócio, em vez de questões técnicas, como acesso a dados ou mensagens.
  • Uma agregação deve ter elevada coesão funcional.
  • Uma agregação é um limite de persistência.
  • As agregações devem ser conjugadas livremente.

 Os serviços de domínio são também bons candidatos para microsserviços. Os serviços de domínio são operações sem estado em múltiplas agregações. Um exemplo típico é um fluxo de trabalho que envolve vários microsserviços.

 Por fim, considera requisitos não funcionais. Observa fatores como tamanho da equipa, tipos de dados, tecnologias, requisitos de escalabilidade, requisitos de disponibilidade e requisitos de segurança. Estes fatores podem levar-te a decompor ainda mais um microsserviço, em dois ou mais serviços pequenos ou fazer o oposto e combinar vários microsserviços num.

Imagem: Microservices designed for particular Business Domains (fonte: https://www.mulesoft.com/integration-resources?type[0]=Whitepaper)

Outras fontes:

What's Your Reaction?
Like
2
View Comments (0)

Leave a Reply

Your email address will not be published.