Padrões de design dos microsserviços

O objetivo dos microserviços é aumentar a velocidade das versões dos aplicativos, decompondo o aplicativo em serviços autônomos pequenos que podem ser implantados de forma independente. Uma arquitetura de microserviços também traz alguns desafios. Os padrões de design mostrados aqui podem ajudar a mitigar esses desafios.

Padrões de design de microserviços

O embaixador pode ser usado para descarregar tarefas comuns de conectividade de cliente, como monitoramento, registro em log, roteamento e segurança (como TLS) de forma independente de linguagem. Os serviços embaixadors geralmente são implantados como um sidecar (veja abaixo).

A camada anticorrupção implementa uma fachada entre aplicativos novos e herdados, para garantir que o design de um novo aplicativo não seja limitado por dependências em sistemas herdados.

Os back-ends para front-ends criam serviços de back-end separados para diferentes tipos de clientes, como desktops e móveis. Dessa forma, um único serviço de back-end não precisa lidar com os requisitos conflitantes de vários tipos de clientes. Esse padrão pode ajudar a manter cada microserviço simples, separando as preocupações específicas do cliente.

O bulkhead isola recursos críticos, como pool de conexões, memória e CPU, para cada carga de trabalho ou serviço. Usando o bulkheads, uma única carga de trabalho (ou serviço) não pode consumir todos os recursos, privando outros. Esse padrão aumenta a resiliência do sistema ao evitar falhas em cascata causadas por um serviço.

A agregação de gateway agrega solicitações a vários microserviços individuais em uma única solicitação, reduzindo a informação entre consumidores e serviços.

O descarregamento de gateway permite que cada microserviço descarregue a funcionalidade do serviço compartilhado, como o uso de certificados SSL, em um gateway de API.

O Roteamento de gateway roteia solicitações para vários microserviços usando um único ponto de extremidade, para que os consumidores não precisem gerenciar muitos pontos de extremidade separados.

O sidecar implanta componentes auxiliares de um aplicativo como um contêiner ou processo separado para fornecer isolamento e encapsulamento.

O Estrangulador Fig dá suporte à refatoração incremental de um aplicativo, substituindo gradualmente partes específicas de funcionalidade por novos serviços.

Para obter o catálogo completo dos padrões de design de nuvem no Centro de Arquitetura do Azure, consulte padrões de design de nuvem.