Compartilhar via


Padrões de Design de Nuvem

Os arquitetos projetam workloads combinando serviços de plataforma, funcionalidade e código para atender aos requisitos funcionais e não funcionais dos workloads. O projeto de workloads requer a compreensão desses requisitos de workload e, em seguida, a escolha de topologias e abordagens que resolvam os desafios apresentados pelas restrições do workload. Padrões de design de nuvem que abordam muitos desafios comuns.

O design de sistemas está fortemente mergulhado em padrões de design. A infraestrutura, o código e os sistemas distribuídos são projetados em torno de uma combinação de padrões de design. Esses padrões de design são úteis para criar aplicativos confiáveis, seguros, otimizados para custos, operacionalmente sólidos e com performance na nuvem.

Esses padrões de design não são específicos de nenhuma tecnologia e são relevantes para qualquer sistema distribuído, seja ele hospedado no Azure ou em outras plataformas de nuvem, e alguns podem até mesmo se estender a workloads na infraestrutura local ou híbridos.

Os padrões de design de nuvem ajudam o processo de design

As cargas de trabalho na nuvem são propensas às armadilhas da computação distribuída. Alguns exemplos de falácias de design de nuvem são:

  • A rede é confiável
  • A latência é zero
  • A largura de banda é infinita
  • A rede é segura
  • A topologia não muda
  • Existe um administrador
  • O controle de versão de componentes é simples
  • A implementação da observabilidade pode ser atrasada

Os padrões de design não eliminam noções como essas, mas podem ajudar a conscientizar, compensar e mitigá-las. Cada padrão de nuvem tem suas próprias vantagens e desvantagens. Você precisa prestar mais atenção ao motivo pelo qual está escolhendo um determinado padrão do que à forma de implementá-lo.

Uma carga de trabalho bem arquitetada considera como esses padrões de design em todo o setor devem ser usados como os blocos essenciais para a arquitetura da carga de trabalho. Cada pilar do Well-Architected do Azure é representado nesses padrões de design, muitas vezes com o padrão de design introduzindo compensações com as metas de outros pilares.

Catálogo de padrões

Cada padrão neste catálogo descreve o problema ao qual o padrão se destina, as considerações para a aplicação do padrão e um exemplo com base no Microsoft Azure. Alguns padrões inclui exemplos de código ou snippets de código que mostram como implementar o padrão no Azure.

Padrão Resumo Pilares da estrutura bem arquitetada do Azure
Embaixador Crie serviços auxiliares que enviam solicitações de rede em nome de um consumidor de serviço ou aplicativo.
  • Confiabilidade
  • Segurança
Camada anticorrupção Implemente uma camada de fachada ou adaptador entre um aplicativo moderno e um sistema herdado.
  • Excelência Operacional
Solicitação/resposta assíncrona Desvincule o processamento de back-end de um host de front-end: quando o processamento de back-end precisa ser assíncrono, mas o front-end ainda precisa de uma resposta clara.
  • Eficiência de desempenho
Back-ends para Front-ends Crie serviços de back-end separados para serem usados por aplicativos ou interfaces de front-end específicos.
  • Confiabilidade
  • Segurança
  • Eficiência de desempenho
Bulkhead Isole os elementos de um aplicativo em pools para que, se um deles falhar, os outros continuem funcionando.
  • Confiabilidade
  • Segurança
  • Eficiência de desempenho
Cache-Aside Carregue dados sob demanda em um cache a partir de um armazenamento de dados.
  • Confiabilidade
  • Eficiência de desempenho
Coreografia Permita que cada serviço decida quando e como uma operação comercial será processada, em vez de depender de um orquestrador central.
  • Excelência Operacional
  • Eficiência de desempenho
Interruptor de Circuito Trate as falhas que possam consumir uma quantidade variável de tempo para serem corrigidas ao se conectar a um serviço ou recurso remoto.
  • Confiabilidade
  • Eficiência de desempenho
Verificação de declaração Divida uma mensagem grande em uma verificação de declaração e uma carga para evitar sobrecarregar um barramento de mensagem.
  • Confiabilidade
  • Segurança
  • Otimização de Custos
  • Eficiência de desempenho
Transação de Compensação Desfaça o trabalho executado por uma série de etapas que, juntas, definem uma operação que acabe sendo consistente.
  • Confiabilidade
Consumidores Concorrentes Habilite vários consumidores simultâneos para processar as mensagens recebidas no mesmo canal de mensagens.
  • Confiabilidade
  • Otimização de Custos
  • Eficiência de desempenho
Consolidação de Recursos de Computação Consolidar várias tarefas ou operações em uma única unidade de computação.
  • Otimização de Custos
  • Excelência Operacional
  • Eficiência de desempenho
CQRS Separar as operações que leem dados de operações que atualizam dados usando interfaces separadas.
  • Eficiência de desempenho
Carimbos de implantação Implante várias cópias independentes de componentes de aplicativos, incluindo armazenamentos de dados.
  • Excelência Operacional
  • Eficiência de desempenho
Configuração de carga de trabalho de borda Centralize a configuração para resolver o desafio de configurar vários sistemas e dispositivos no chão de fábrica.
Fornecimento de Eventos Use um repositório somente de acréscimo para registrar a série inteira de eventos que descrevem as ações realizadas nos dados em um domínio.
  • Confiabilidade
  • Eficiência de desempenho
Repositório de configuração externo Mova as informações de configuração para fora do pacote de implantação de aplicativo para um local centralizado.
  • Excelência Operacional
Identidade Federada Delegar autenticação a um provedor de identidade externa.
  • Confiabilidade
  • Segurança
  • Eficiência de desempenho
Gatekeeper Proteger aplicativos e serviços usando uma instância de host dedicado que atua como intermediário entre clientes e o aplicativo ou serviço, valida e corrige solicitações e passa solicitações e dados entre eles.
  • Segurança
  • Eficiência de desempenho
Agregação de Gateway Use um gateway para agregar várias solicitações individuais em uma única solicitação.
  • Confiabilidade
  • Segurança
  • Excelência Operacional
  • Eficiência de desempenho
Descarregamento de Gateway Descarregue a funcionalidade de serviço especializado ou compartilhado para um proxy do gateway.
  • Confiabilidade
  • Segurança
  • Otimização de Custos
  • Excelência Operacional
  • Eficiência de desempenho
Roteamento de Gateway Faça o roteamento de solicitações para vários serviços usando um único ponto de extremidade.
  • Confiabilidade
  • Excelência Operacional
  • Eficiência de desempenho
Geode Implante serviços de back-end em um conjunto de nós geográficos. Cada um deles pode atender solicitações de cliente em qualquer região.
  • Confiabilidade
  • Eficiência de desempenho
Monitoramento do Ponto de Extremidade de Integridade Implemente verificações funcionais dentro de um aplicativo cujas ferramentas externas podem acessar por meio de pontos de extremidade expostos em intervalos regulares.
  • Confiabilidade
  • Excelência Operacional
  • Eficiência de desempenho
Tabela de Índice Crie índices nos campos em armazenamentos de dados que são frequentemente referenciados por consultas.
  • Confiabilidade
  • Eficiência de desempenho
Eleição de Líder Coordene as ações executadas por uma coleção de instâncias de tarefa de colaboração em um aplicativo distribuído elegendo uma instância como a líder que assume a responsabilidade por gerenciar as demais instâncias.
  • Confiabilidade
Exibição Materializada Gere exibições pré-preenchidas nos dados em um ou mais armazenamentos de dados quando os dados não estiverem formatados como o ideal para as operações de consulta necessárias.
  • Eficiência de desempenho
Ponte de Mensagens Crie um intermediário para habilitar a comunicação entre sistemas de mensagens que, de outra forma, são incompatíveis devido ao protocolo ou formato.
  • Otimização de Custos
  • Excelência Operacional
Pipes e Filtros Dividir uma tarefa que executa processamento complexo em uma série de elementos separados que podem ser reutilizados.
  • Confiabilidade
Fila de Prioridade Priorize as solicitações enviadas a serviços para que as solicitações com uma prioridade mais alta sejam recebidas e processadas mais rapidamente do que aquelas com uma prioridade mais baixa.
  • Confiabilidade
  • Eficiência de desempenho
Publicador/Assinante Permite a um aplicativo anunciar eventos para vários consumidores de seu interesse assincronamente, sem acoplar os remetentes aos destinatários.
  • Confiabilidade
  • Segurança
  • Otimização de Custos
  • Excelência Operacional
  • Eficiência de desempenho
Quarentena Verifique se os ativos externos atendem a um nível de qualidade acordado pela equipe antes de serem autorizados a consumi-los no workload.
  • Segurança
  • Excelência Operacional
Nivelamento de Carga Baseado em Fila Use uma fila que funcione como um buffer entre uma tarefa e um serviço que ela invoca para simplificar cargas pesadas intermitentes.
  • Confiabilidade
  • Otimização de Custos
  • Eficiência de desempenho
Padrão de limitação de taxa Padrão de limitação para evitar ou minimizar erros de limitação relacionados a esses limites e prever com mais precisão a taxa de transferência.
  • Confiabilidade
Repetir Permita que um aplicativo trate falhas previstas e temporárias quando tentar se conectar a um serviço ou recurso de rede ao repetir de forma transparente uma operação que falhou anteriormente.
  • Confiabilidade
Saga Gerencie a consistência de dados entre microsserviços em cenários de transações distribuídas. Uma saga é uma sequência de transações que atualiza cada serviço e publica uma mensagem ou evento para disparar a próxima etapa de transação.
  • Confiabilidade
Supervisor de Agente do Agendador Coordene um conjunto de ações em um conjunto distribuído de serviços e outros recursos remotos.
  • Confiabilidade
  • Eficiência de desempenho
Comboio Sequencial Processe um conjunto de mensagens relacionadas em uma ordem definida, sem bloquear o processamento de outros grupos de mensagens.
  • Confiabilidade
Fragmentação Divida um armazenamento de dados em um conjunto de partições horizontais ou fragmentos.
  • Confiabilidade
  • Otimização de Custos
Sidecar Implante os componentes de um aplicativo em um processo ou contêiner separado para fornecer isolamento e encapsulamento.
  • Segurança
  • Excelência Operacional
Hospedagem de Conteúdo Estático Implante conteúdo estático em um serviço de armazenamento baseado em nuvem que pode enviá-lo diretamente para o cliente.
  • Otimização de Custos
Estrangulador Fig Migre incrementalmente um sistema herdado substituindo gradualmente partes específicas de funcionalidade por serviços e aplicativos novos.
  • Confiabilidade
  • Otimização de Custos
  • Excelência Operacional
Limitação Controle o consumo de recursos usados por uma instância de um aplicativo, um locatário individual ou todo o serviço.
  • Confiabilidade
  • Segurança
  • Otimização de Custos
  • Eficiência de desempenho
Valet Key Use um token ou chave que fornece aos clientes acesso direto e restrito a um determinado recurso ou serviço.
  • Segurança
  • Otimização de Custos
  • Eficiência de desempenho

Próxima etapa

Examine os padrões de design da perspectiva do pilar Well-Architected do Azure que o padrão busca otimizar.