Compartilhar via


Padrões de design na nuvem

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 criar cargas de trabalho eficazes, você deve entender esses requisitos e selecionar topologias e metodologias que resolvam os desafios das restrições da carga de trabalho. Os padrões de design de nuvem fornecem soluções para muitos desafios comuns.

O design do sistema depende muito de padrões de design estabelecidos. Você pode projetar a infraestrutura, o código e os 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, com otimização de custo, operacionalmente eficientes e de alto desempenho na nuvem.

Os seguintes padrões de design de nuvem são independentes de 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 de nuvem aprimoram o processo de design

As cargas de trabalho de 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.
  • Latência é zero.
  • A largura de banda é infinita.
  • A rede é segura.
  • A topologia não muda.
  • Há um administrador.
  • O versionamento de componentes é simples.
  • A implementação da observabilidade pode ser atrasada.

Esses equívocos podem resultar em designs de carga de trabalho com falhas. 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 no motivo pelo qual você deve escolher um padrão específico em vez de como implementá-lo.

Considere como usar esses padrões de design padrão do setor como os principais blocos de construção para um design de carga de trabalho bem projetado. 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 as metas de outros pilares.

Catálogo de padrões

Cada padrão neste catálogo descreve o problema que ele resolve, considerações para aplicar o padrão e um exemplo com base nos serviços e ferramentas do 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 do Well-Architected Framework
Embaixador Crie serviços auxiliares que enviam solicitações de rede em nome de um consumidor de serviço ou aplicativo. -Fiabilidade

-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 Desacoplar o processamento de 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 aplicativos ou interfaces de front-end específicos. -Fiabilidade

-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. -Fiabilidade

-Segurança

- Eficiência de desempenho
Cache-Aside Carregue dados sob demanda em um cache a partir de um armazenamento de dados. -Fiabilidade

- Eficiência de desempenho
Coreografia Permitir 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
Interruptor de Circuito Lidar com falhas que podem levar um tempo variável para ser corrigido quando um aplicativo se conecta a um serviço ou recurso remoto. -Fiabilidade

- 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. -Fiabilidade

-Segurança

– Otimização de custo

- Eficiência de desempenho
Transação de compensação Desfazer o trabalho realizado por uma sequência de etapas que, juntas, formam uma operação que é eventualmente consistente. -Fiabilidade
Consumidores Concorrentes Habilite vários consumidores simultâneos para processar mensagens que recebem no mesmo canal de mensagens. -Fiabilidade

– Otimização de custo

- 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 custo

– Excelência Operacional

- Eficiência de desempenho
CQRS Separe as operações que leem dados daqueles que atualizam dados usando interfaces distintas. - 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
Fornecimento de Eventos Utilize um repositório somente para adição para registrar uma série completa de eventos que descrevem as ações executadas em dados em um domínio. -Fiabilidade

- Eficiência de desempenho
Repositório 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 Delegar autenticação a um provedor de identidade externa. -Fiabilidade

-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. -Fiabilidade

-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. -Fiabilidade

-Segurança

– Otimização de custo

– Excelência Operacional

- Eficiência de desempenho
Roteamento de Gateway Direcione solicitações para vários serviços através de um único endpoint. -Fiabilidade

– Excelência Operacional

- Eficiência de desempenho
Geode Implante serviços de back-end em nós geograficamente distribuídos. Cada nó pode lidar com solicitações de cliente de qualquer região. -Fiabilidade

- 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. -Fiabilidade

– Excelência Operacional

- Eficiência de desempenho
Tabela de Índice Crie índices sobre os campos em armazenamentos de dados que as consultas fazem referência com frequência. -Fiabilidade

- Eficiência de desempenho
Eleição de Líder Coordene as 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 tarefa de colaboração. -Fiabilidade
Visão 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 habilitar a comunicação entre sistemas de mensagens incompatíveis. – Otimização de custo

– Excelência Operacional
Pipes e Filtros Dividir uma tarefa que executa processamento complexo em uma 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
Editor/Assinante Habilite um aplicativo para anunciar eventos a vários consumidores de forma assíncrona, sem acoplar remetentes a receptores. -Fiabilidade

-Segurança

– Otimização de custo

– Excelência Operacional

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

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

– Otimização de custo

- Eficiência de desempenho
Limitação de taxa Evite ou minimize erros de limitação controlando o consumo de recursos. -Fiabilidade
Tentar novamente Habilite os aplicativos para lidar com falhas temporárias previstas repetindo operações com falha. -Fiabilidade
Saga Gerencie a consistência de dados entre microsserviços em cenários de transações distribuídas. -Fiabilidade
Supervisor de agente do agendador 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 armazenamento de dados em um conjunto de partições horizontais ou fragmentos. -Fiabilidade

– Otimização de custo
Sidecar Implante componentes 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 para entrega direta do cliente. – Otimização de custo
Estrangulador Fig Migre incrementalmente um sistema herdado substituindo gradualmente partes de funcionalidade por novos aplicativos e serviços. -Fiabilidade

– Otimização de custo

– Excelência Operacional
Limitação Controlar o consumo de recursos de aplicativos, locatários ou serviços. -Fiabilidade

-Segurança

– Otimização de custo

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

– Otimização de custo

- 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 Agente Supervisor de Agendamento ou Coreografia, fornecem conceitos fundamentais. No entanto, os agentes de IA introduzem desafios exclusivos, como saídas não determinísticas, recursos de raciocínio dinâmico e a necessidade de entregas inteligentes entre componentes especializados.

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

Próximas etapas

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