Partilhar via


Padrões de design da cloud

Os arquitetos projetam cargas de trabalho integrando serviços de plataforma, funcionalidade e código para atender aos requisitos funcionais e não funcionais. Para projetar cargas de trabalho eficazes, você deve entender esses requisitos e selecionar topologias e metodologias que abordem os desafios das restrições da sua carga de trabalho. Os padrões de design de nuvem fornecem soluções para muitos desafios comuns.

O projeto do sistema depende fortemente de padrões de projeto estabelecidos. Você pode projetar infraestrutura, código e sistemas distribuídos usando uma combinação desses padrões. Esses padrões são cruciais para a criação de aplicativos confiáveis, altamente seguros, otimizados em termos de custo, operacionalmente eficientes e de alto desempenho na nuvem.

Os seguintes padrões de design de nuvem são agnósticos em relação à tecnologia, o que os torna adequados para qualquer sistema distribuído. Você pode aplicar esses padrões no Azure, em outras plataformas de nuvem, configurações locais e ambientes híbridos.

Como os padrões de design na nuvem melhoram o processo de design

As cargas de trabalho em nuvem são vulneráveis às falácias da computação distribuída, que são suposições comuns, mas incorretas, sobre como os sistemas distribuídos operam. Exemplos dessas falácias incluem:

  • A rede é confiá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.

Esses equívocos podem resultar em projetos de carga de trabalho defeituosos. Os padrões de design não eliminam esses equívocos, mas ajudam a aumentar a conscientização, fornecem estratégias de compensação e fornecem mitigações. Cada padrão de design de nuvem tem compensações. Concentre-se em por que você deve escolher um padrão específico em vez de como implementá-lo.

Considere como usar esses padrões de projeto padrão do setor como os principais blocos de construção para um projeto de carga de trabalho bem arquitetado. Cada padrão de design no Azure Well-Architected Framework representa um ou mais de seus pilares. Alguns padrões podem introduzir compensações que afetam os objetivos de outros pilares.

Catálogo de padrões

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

Padrão Resumo Well-Architected Pilares da estrutura
Embaixador Crie serviços auxiliares que enviem pedidos de rede para 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 Desacople o processamento back-end de um host front-end. Esse padrão é útil quando o processamento de back-end deve ser assíncrono, mas o front-end requer uma resposta clara e oportuna. - Eficiência de Desempenho
Back-ends para Front-ends Crie serviços de back-end separados para interfaces ou aplicativos frontend específicos. - Fiabilidade

- Segurança

- Eficiência de Desempenho
Anteparas 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 quando necessário em uma cache a partir de um repositório de dados. - Fiabilidade

- Eficiência de Desempenho
Coreografia Permita que serviços individuais decidam quando e como uma operação de negócios é processada, em vez de depender de um orquestrador central. - Excelência Operacional

- Eficiência de Desempenho
Disjuntor Automático Lide com falhas que podem levar um tempo variável para corrigir quando um aplicativo se conecta a um serviço ou recurso remoto. - 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
Transação Compensatória Desfaça o trabalho realizado por uma sequência de etapas que coletivamente formam uma operação eventualmente consistente. - Fiabilidade
Consumidores Concorrentes Permita que vários consumidores simultâneos 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 Separe as operações que leem dados daquelas que atualizam dados usando interfaces distintas. - 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
Armazenamento de Eventos Use um armazenamento apenas de acréscimo para registrar uma série completa de eventos que descrevem ações realizadas nos dados dentro de um domínio. - Fiabilidade

- Eficiência de Desempenho
Arquivo de Configuração Externo Mova as informações de configuração de um pacote de implantação de aplicativo para um local centralizado. - Excelência Operacional
Identidade Federada Delegue a autenticação para um fornecedor de identidade externo. - Fiabilidade

- 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 Encaminhar pedidos para vários serviços usando um único endpoint. - Fiabilidade

- Excelência Operacional

- Eficiência de Desempenho
Geodo Implante serviços back-end em nós distribuídos geograficamente. Cada nó pode lidar com solicitações de clientes de 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 em armazenamentos de dados aos quais as consultas fazem referência com frequência. - Fiabilidade

- Eficiência de Desempenho
Eleição de Coordenador Coordene ações em um aplicativo distribuído elegendo uma instância como líder. O líder gerencia uma coleção de instâncias de tarefas colaboradoras. - Fiabilidade
Vista Materializada Gere exibições pré-preenchidas sobre os dados em um ou mais armazenamentos de dados quando os dados estiverem mal formatados para as operações de consulta necessárias. - Eficiência de Desempenho
Ponte de mensagens Crie um intermediário para permitir a comunicação entre sistemas de mensagens que, de outra forma, seriam incompatíveis. - 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 Priorize as solicitações enviadas aos serviços para que as solicitações com prioridade mais alta sejam processadas mais rapidamente. - Fiabilidade

- Eficiência de Desempenho
Publicador/Editor Permita que um aplicativo anuncie eventos para vários consumidores de forma assíncrona, sem vincular remetentes a recetores. - Fiabilidade

- Segurança

- Otimização de Custos

- Excelência Operacional

- Eficiência de Desempenho
Quarentena Certifique-se de que os ativos externos atendam a um nível de qualidade acordado pela equipe antes que a carga de trabalho os consuma. - Segurança

- Excelência Operacional
Equilíbrio de Carga Baseado em Fila Use uma fila que crie um buffer entre uma tarefa e um serviço para suavizar cargas pesadas intermitentes. - Fiabilidade

- Otimização de Custos

- Eficiência de Desempenho
Limitação de Taxa Evite ou minimize erros de limitação controlando o consumo de recursos. - Fiabilidade
Repetir Permita que os aplicativos lidem com falhas temporárias antecipadas tentando novamente operações com falha. - Fiabilidade
Saga Gerencie a consistência de dados em microsserviços em cenários de transações distribuídas. - Fiabilidade
Supervisor de Agente do Scheduler Coordene um conjunto de ações entre serviços e recursos distribuídos. - Fiabilidade

- Eficiência de Desempenho
Transporte sequencial Processe um conjunto de mensagens relacionadas em uma ordem definida sem bloquear 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
Carro lateral Implante componentes em um processo ou contêiner separado para fornecer isolamento e encapsulamento. - Segurança

- Excelência Operacional
Alojamento de Conteúdo Estático Implante conteúdo estático em um serviço de armazenamento baseado em nuvem para entrega direta ao cliente. - Otimização de Custos
Figo Strangler Migre incrementalmente um sistema legado, substituindo gradualmente partes de funcionalidade por novos aplicativos e serviços. - Fiabilidade

- Otimização de Custos

- Excelência Operacional
Escalonamento Controle o consumo de recursos de aplicativos, locatários ou serviços. - Fiabilidade

- Segurança

- Otimização de Custos

- Eficiência de Desempenho
Chave Valet Use um token ou chave para fornecer aos clientes acesso restrito e direto a um recurso ou serviço específico. - Segurança

- Otimização de Custos

- Eficiência de Desempenho

Padrões de orquestração de agentes de IA

Os padrões de design de nuvem anteriores abordam desafios comuns em sistemas distribuídos, mas cargas de trabalho de IA que usam vários agentes autônomos exigem abordagens de coordenação especializadas. Padrões tradicionais como Scheduler Agent Supervisor ou Coreografia fornecem conceitos fundamentais. No entanto, os agentes de IA introduzem desafios únicos, como saídas não determinísticas, capacidades de raciocínio dinâmico e a necessidade de transferências inteligentes entre componentes especializados.

Para cargas de trabalho de IA que incluem vários agentes autônomos, consulte Padrões de orquestração de agentes de IA. Esses padrões complementam os padrões de design de nuvem neste catálogo, abordando os requisitos específicos de coordenação de componentes inteligentes e autônomos que trabalham juntos para alcançar resultados complexos.

Próximos passos

Analise os padrões de design da perspetiva do pilar Well-Architected Framework que o padrão visa otimizar.