Partilhar via


Padrões de Conceção de Nuvem

Os arquitetos projetam cargas de trabalho combinando serviços de plataforma, funcionalidade e código para atender aos requisitos funcionais e não funcionais em cargas de trabalho. Projetar cargas de trabalho requer a compreensão desses requisitos de carga de trabalho e, em seguida, escolher topologias e abordagens para resolver os desafios apresentados pelas restrições da carga de trabalho. Padrões de design de nuvem que abordam muitos desafios comuns.

O design de sistemas está fortemente mergulhado em padrões de projeto. Infraestrutura, código e sistemas distribuídos são projetados em torno de uma combinação de padrões de projeto. Esses padrões de design são úteis para criar aplicativos confiáveis, seguros, com custo otimizado, operacionalmente sólidos e de alto desempenho 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 hospedado no Azure, em outras plataformas de nuvem e alguns podem até se estender a cargas de trabalho locais ou híbridas.

Os padrões de design na nuvem ajudam no processo de design

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

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

Os padrões de design não eliminam noções como essas, mas podem ajudar a trazer conscientização, compensações e mitigações delas. Cada padrão de nuvem tem suas próprias compensações. Você precisa prestar mais atenção ao motivo pelo qual está escolhendo um determinado padrão do que a como implementá-lo.

Uma carga de trabalho bem arquitetada considera como esses padrões de projeto em todo o setor devem ser usados como os principais blocos de construção para o design da carga de trabalho. Cada pilar do Azure Well-Architected é representado nesses padrões de design, geralmente com o padrão de design introduzindo compensações com os objetivos de outros pilares.

Catálogo de padrões

Cada padrão neste catálogo descreve o problema que o padrão aborda, considerações para aplicar o padrão e um exemplo baseado no Microsoft Azure. Alguns padrões incluem exemplos de código ou trechos que mostram como implementar o padrão no Azure.

Padrão Resumo Pilares do Azure Well-Architected Framework
Ambassador Crie serviços de programa auxiliar que enviam pedidos de rede em nome de um serviço ou aplicação de consumidor.
  • Fiabilidade
  • Segurança
Camada Anti-corrupção Implemente uma camada de fachada ou de adaptador entre uma aplicação moderna e um sistema legado.
  • Excelência Operacional
Pedido-resposta assíncrono Dissociar o processamento de back-end de um host front-end onde o processamento de back-end tem de ser assíncrono mas o front-end continua a necessitar de uma resposta clara.
  • Eficiência de desempenho
Back-ends para Front-ends Crie serviços de back-end separados para serem usados por interfaces ou aplicativos frontend específicos.
  • Fiabilidade
  • Segurança
  • Eficiência de desempenho
Bulkhead Isole elementos de um aplicativo em pools para que, se um falhar, os outros continuem a funcionar.
  • Fiabilidade
  • Segurança
  • Eficiência de desempenho
Cache-Aside Carregue dados sob demanda em um cache de um armazenamento de dados.
  • Fiabilidade
  • Eficiência de desempenho
Coreografia Permita que cada serviço decida quando e como uma operação de negócio será processada em vez de depender de um orquestrador central.
  • Excelência Operacional
  • Eficiência de desempenho
Disjuntor Automático Processe falhas que possam demorar um período de tempo a corrigir ao ligar a um serviço ou recurso remoto variável.
  • Fiabilidade
  • Eficiência de desempenho
Verificação de Afirmações Divida uma mensagem grande numa verificação de afirmações e num payload para evitar sobrecarregar um barramento de mensagens.
  • Fiabilidade
  • Segurança
  • Otimização de Custos
  • Eficiência de desempenho
Compensação de Transação Anule o trabalho realizado por uma série de passos, que em conjunto definem uma operação eventualmente consistente.
  • Fiabilidade
Consumidores Concorrentes Permita que vários consumidores em simultâneo processem mensagens recebidas no mesmo canal de mensagens.
  • Fiabilidade
  • Otimização de Custos
  • Eficiência de desempenho
Consolidação de Recursos de Computação Consolide várias tarefas ou operações em uma única unidade computacional.
  • Otimização de Custos
  • Excelência Operacional
  • Eficiência de desempenho
CQRS Segregue operações de leitura de dados a partir de operações que atualizam dados através de interfaces separadas.
  • Eficiência de desempenho
Carimbos de Implementação Implemente várias cópias independentes de componentes de aplicações, incluindo arquivos de dados.
  • Excelência Operacional
  • Eficiência de desempenho
Configuração da carga de trabalho de borda Centralize a configuração para enfrentar o desafio de configurar vários sistemas e dispositivos no chão de fábrica.
Origem do Evento Utilize um arquivo só com anexos para registar a série completa dos eventos que descrevem ações tomadas nos dados de um domínio.
  • Fiabilidade
  • Eficiência de desempenho
Arquivo de Configuração Externo Mova as informações de configuração para fora do pacote de implementação de aplicação para uma localização centralizada.
  • Excelência Operacional
Identidade Federada Delegue a autenticação para um fornecedor de identidade externo.
  • Fiabilidade
  • Segurança
  • Eficiência de desempenho
Controlador de chamadas Proteja aplicações e serviços com uma instância de anfitrião dedicada que age como um mediador entre clientes e a aplicação ou serviço, valida e limpa pedidos, e transmite dados e pedidos entre eles.
  • Segurança
  • Eficiência de desempenho
Agregação de Gateway Utilize um gateway para agregar vários pedidos individuais num único pedido.
  • Fiabilidade
  • Segurança
  • Excelência Operacional
  • Eficiência de desempenho
Descarregamento de Gateway Descarregue funcionalidade de serviço partilhado ou especializado para um proxy de gateway.
  • Fiabilidade
  • Segurança
  • Otimização de Custos
  • Excelência Operacional
  • Eficiência de desempenho
Encaminhamento de Gateway Encaminhe pedidos para vários serviços com um único ponto final.
  • Fiabilidade
  • Excelência Operacional
  • Eficiência de desempenho
Geode Implemente serviços de back-end num conjunto de nós geográficos, cada um dos quais pode atender qualquer pedido de cliente, em qualquer região.
  • Fiabilidade
  • Eficiência de desempenho
Monitorização do Ponto Final do Estado de Funcionamento Implemente verificações funcionais numa aplicação que as ferramentas externas podem aceder através de pontos finais expostos em intervalos regulares.
  • Fiabilidade
  • Excelência Operacional
  • Eficiência de desempenho
Tabela de Índice Crie índices sobre os campos nos arquivos de dados que são frequentemente referenciados por consultas.
  • Fiabilidade
  • Eficiência de desempenho
Eleição de Coordenador Coordene as ações executadas por uma coleção de instâncias de tarefa de colaboração numa aplicação distribuída, ao eleger uma instância como a líder que assume a responsabilidade para gerir as outras instâncias.
  • Fiabilidade
Vista Materializada Gere vistas pré-preenchidas sobre os dados em um ou mais arquivos de dados quando os dados não estão formatados idealmente para operações de consulta necessárias.
  • Eficiência de desempenho
Messaging Bridge Crie um intermediário para permitir a comunicação entre sistemas de mensagens que, de outra forma, seriam incompatíveis devido ao protocolo ou formato.
  • Otimização de Custos
  • Excelência Operacional
Pipes e Filtros Divida uma tarefa que realiza processamento complexo numa série de elementos separados que podem ser reutilizados.
  • Fiabilidade
Fila de Prioridade Defina prioridades dos pedidos enviados para os serviços, de modo a que os pedidos com uma prioridade mais alta sejam recebidos e processados mais rapidamente do que aqueles com uma prioridade mais baixa.
  • Fiabilidade
  • Eficiência de desempenho
Publicador/Editor Permita que uma aplicação anuncie os eventos para vários consumidores interessados de forma assíncrona, sem acoplar os remetentes aos destinatários.
  • Fiabilidade
  • Segurança
  • Otimização de Custos
  • Excelência Operacional
  • Eficiência de desempenho
Quarentena Garanta que os ativos externos atendam a um nível de qualidade acordado pela equipe antes de serem autorizados a consumi-los na carga de trabalho.
  • Segurança
  • Excelência Operacional
Redistribuição de Carga Baseada na Fila Utilize uma fila que age como uma memória intermédia entre uma tarefa e um serviço que este invoca para cargas pesadas intermitentes.
  • Fiabilidade
  • Otimização de Custos
  • Eficiência de desempenho
Padrão de limite de taxa Padrão de limitação para ajudá-lo a evitar ou minimizar erros de limitação relacionados a esses limites de limitação e para ajudá-lo a prever com mais precisão a taxa de transferência.
  • Fiabilidade
Repetir Permita que uma aplicação processe falhas previstas e temporárias quando tentar ligar a um recurso ou serviço de rede, ao repetir de forma transparente uma operação que falhou anteriormente.
  • Fiabilidade
Saga Gerencie a consistência de dados em 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 acionar a próxima etapa da transação.
  • Fiabilidade
Supervisor de Agente do Scheduler Coordene um conjunto de ações entre um conjunto distribuído de serviços e outros recursos remotos.
  • Fiabilidade
  • Eficiência de desempenho
Transporte sequencial Processe um conjunto de mensagens relacionadas numa ordem definida sem bloquear o processamento de outros grupos de mensagens.
  • Fiabilidade
Fragmentação Divida um arquivo de dados num conjunto de partições horizontais ou shards.
  • Fiabilidade
  • Otimização de Custos
Sidecar Implemente componentes de uma aplicação num processo ou contentor separado, para oferecer isolamento e encapsulamento.
  • Segurança
  • Excelência Operacional
Alojamento de Conteúdo Estático Implemente conteúdo estático num serviço de armazenamento baseado na cloud que o pode oferecer diretamente ao cliente.
  • Otimização de Custos
Strangler Fig Migre incrementalmente um sistema legado, ao substituir gradualmente partes específicas de funcionalidades por novas aplicações e serviços.
  • Fiabilidade
  • Otimização de Custos
  • Excelência Operacional
Limitação Controle o consumo dos recursos utilizados por uma instância de uma aplicação, um inquilino individual ou um serviço completo.
  • Fiabilidade
  • Segurança
  • Otimização de Custos
  • Eficiência de desempenho
Chave Valet Utilize um token ou chave que oferece aos clientes um acesso direto restrito a um recurso ou serviço específico.
  • Segurança
  • Otimização de Custos
  • Eficiência de desempenho

Próximo passo

Analise os padrões de design da perspetiva do Pilar Well-Architected do Azure que o padrão procura otimizar.