Compartilhar via


Práticas recomendadas em aplicativos de nuvem

A criação de aplicativos de nuvem confiáveis, escalonáveis e seguros requer decisões de arquitetura deliberadas. As práticas recomendadas nesta seção fornecem diretrizes para preocupações comuns que surgem em sistemas distribuídos, como cache, particionamento de dados, design de API e tratamento transitório de falhas. Cada prática aborda um ou mais pilares do Azure Well-Architected Framework, que define cinco atributos de qualidade para design de carga de trabalho: Confiabilidade, Segurança, Otimização de Custos, Excelência Operacional e Eficiência de Desempenho.

Essas práticas complementam outras diretrizes fundamentais no Centro de Arquitetura do Azure. Os princípios de design para aplicativos do Azure fornecem estratégias de alto nível, como projetar para autorrecuperação e dimensionamento. Os padrões de design de nuvem oferecem soluções reutilizáveis para problemas de arquitetura recorrentes. Os antipadrões de desempenho descrevem defeitos comuns que causam problemas de escalabilidade sob carga. Esses recursos ajudam você a fazer escolhas de arquitetura informadas.

Catálogo de práticas

Cada prática nesta tabela mapeia para um ou mais pilares do Well-Architected Framework. Use esses mapeamentos para identificar quais práticas são mais relevantes para os atributos de qualidade que você está priorizando em sua carga de trabalho.

Prática Resumo Pilares relacionados
Design de API Crie APIs Web para dar suporte à independência da plataforma usando protocolos padrão e formatos de dados acordados. Promova a evolução do serviço para que os clientes possam descobrir a funcionalidade sem a necessidade de modificação. Melhore os tempos de resposta dando suporte a respostas parciais e fornecendo maneiras de filtrar e paginar dados. Excelência Operacional, Eficiência de Desempenho
Implementação da API Implemente APIs Web para serem eficientes, responsivas, escalonáveis e disponíveis. Torne as ações idempotentes, dê suporte à negociação de conteúdo e siga a especificação HTTP. Lide com exceções e dê suporte à descoberta de recursos. Forneça maneiras de lidar com solicitações grandes e minimizar o tráfego de rede. Excelência Operacional, Eficiência de Desempenho
Escala automática Crie aplicativos para alocar e desalocar recursos dinamicamente para atender aos requisitos de desempenho e minimizar os custos. Aproveite o dimensionamento automático do Azure Monitor e o dimensionamento automático interno que muitos componentes do Azure oferecem. Otimização de Custos, Eficiência de Desempenho
Trabalhos em segundo plano Implemente trabalhos em lotes, tarefas de processamento e fluxos de trabalho como trabalhos em segundo plano. Use os serviços de plataforma do Azure para hospedar essas tarefas. Disparar tarefas com eventos ou agendamentos e retornar resultados para tarefas de chamada. Confiabilidade, Excelência Operacional
Cache Melhore o desempenho copiando dados para um armazenamento rápido próximo a aplicativos. Armazene dados em cache que você lê com frequência, mas raramente modifique. Gerenciar a expiração e a simultaneidade de dados. Veja como preencher caches e usar o serviço Redis Gerenciado do Azure . Eficiência de desempenho
Rede de Distribuição de Conteúdo Use CDNs (redes de distribuição de conteúdo) para fornecer conteúdo da Web com eficiência aos usuários e reduzir a carga em aplicativos Web. Supere os desafios de implantação, controle de versão, segurança e resiliência. Confiabilidade, Eficiência de Desempenho
Particionamento de dados Dados de partição para melhorar a escalabilidade, a disponibilidade e o desempenho e reduzir os custos de contenção e armazenamento de dados. Use o particionamento horizontal, vertical e funcional de maneiras eficientes. Otimização de Custos, Eficiência de Desempenho
Estratégias de particionamento de dados (por serviço) Aplique estratégias de particionamento nos serviços do Azure, incluindo o Banco de Dados SQL do Azure, o Azure Cosmos DB, o Armazenamento de Blobs do Azure, o Redis Gerenciado do Azure, o Barramento de Serviço do Azure e outros. Distribua cargas, reduza a latência e dê suporte ao dimensionamento horizontal. Otimização de Custos, Eficiência de Desempenho
Preservação do nome do host Saiba por que é importante preservar o nome do host HTTP original entre um proxy reverso e seu aplicativo Web de back-end e como implementar essa recomendação para os serviços mais comuns do Azure. Confiabilidade, Segurança
considerações sobre codificação de mensagens Escolha a estrutura de conteúdo, o formato de codificação e a biblioteca de serialização para mensagens assíncronas trocadas entre componentes do sistema. Considere compensações como interoperabilidade, tamanho, legibilidade humana e evolução do esquema. Segurança
Monitoramento e diagnóstico Acompanhe a integridade, o uso e o desempenho do sistema com um pipeline de monitoramento e diagnóstico. Transforme dados de monitoramento em alertas, relatórios e gatilhos que ajudam em várias situações. Exemplos incluem detectar e corrigir problemas, detectar possíveis problemas, atender a garantias de desempenho e atender aos requisitos de auditoria. Excelência Operacional
Tratamento de falhas transitórias Lidar com falhas transitórias causadas por redes ou recursos indisponíveis. Supere os desafios ao desenvolver estratégias de repetição apropriadas. Evite duplicar camadas de código de repetição e outros antipadrões. Fiabilidade

Princípios de design

Antes de resolver questões técnicas específicas, estabeleça uma base de arquitetura forte. Os princípios de design para aplicativos do Azure fornecem estratégias de alto nível que se aplicam a diferentes cargas de trabalho, como projetar para autorrecuperação, escalabilidade horizontal e reduzir a necessidade de coordenação. Esses princípios moldam as decisões que as práticas recomendadas listadas anteriormente ajudam você a implementar.

Padrões de design na nuvem

Com os princípios em vigor, os padrões de design de nuvem oferecem soluções reutilizáveis para problemas recorrentes em sistemas distribuídos. Muitas das práticas recomendadas nesta seção dependem de um ou mais desses padrões. Por exemplo, as diretrizes transitórias de tratamento de falhas se baseiam no padrão de nova tentativa e no padrão Circuit Breaker, as diretrizes de cache se relacionam com o padrão de Cache-Aside e as diretrizes de trabalhos em segundo plano usam padrões como Consumidores Concorrentes e Nivelamento de Carga baseado em Fila. Examine o catálogo completo para identificar padrões que abordam os desafios de arquitetura em sua carga de trabalho.

Antipadrões de desempenho

Mesmo com princípios sólidos, bons padrões e práticas recomendadas aplicadas, os defeitos podem surgir sob carga de produção. Antipadrões de desempenho para aplicativos de nuvem descrevem designs comuns que não dimensionam ou atalhos que se acumulam à medida que os recursos são adicionados. Use esses antipadrões como uma lista de verificação durante revisões de design e revisões de código para capturar problemas antes que eles cheguem à produção.

Próximas etapas