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. Pode aplicar estes padrões no Azure, noutras plataformas cloud, configurações on-premises e ambientes híbridos.

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

As cargas de trabalho na cloud são vulneráveis às falácias da computação distribuída, que são pressupostos comuns mas incorretos sobre como os sistemas distribuídos funcionam. 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 dos 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 a aplicação do padrão e um exemplo baseado nos serviços e ferramentas do Microsoft Azure. Alguns padrões incluem exemplos de código ou excertos 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 Anticorrupção Implemente uma camada de fachada ou de adaptador entre uma aplicação moderna e um sistema legado. - Excelência Operacional
Solicitação-resposta assíncrona 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
Backends para Frontends Crie serviços de back-end separados para 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 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
Operação de Compensação 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
Marcadores 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
Origem do Evento 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
Repositório de Configuração Externa 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
Descentralização de funções do 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
Roteamento de gateway Encaminhar pedidos para vários serviços usando um único endpoint. - Fiabilidade

- Excelência Operacional

- Eficiência de Desempenho
Geode 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 de Saúde de Endpoint 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 Líderes 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
Tubos 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-Subscritor 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 de Agendamento Coordene um conjunto de ações entre serviços e recursos distribuídos. - Fiabilidade

- Eficiência de Desempenho
Comboio 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
Sidecar 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 de 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.