Melhores práticas para aplicativos de nuvem

Essas melhores práticas podem ajudá-lo a criar aplicativos confiáveis, escalonáveis e seguros na nuvem. Elas oferecem diretrizes e dicas para projetar e implementar sistemas, mecanismos e abordagens eficientes e robustos. Muitos também incluem exemplos de código que você pode usar com os serviços do Azure. As práticas se aplicam a qualquer sistema distribuído, seja o host do Azure ou uma plataforma de nuvem diferente.

Catálogo de práticas

Esta tabela lista várias melhores práticas. A coluna Pilares ou padrões relacionados contém os seguintes links:

Prática Resumo Pilares ou padrões relacionados
Design de API Projetar APIs Web para dar suporte à independência da plataforma usando protocolos padrão e formatos de dados acordados. Promover a evolução do serviço para que os clientes possam descobrir a funcionalidade sem a necessidade de modificação. Melhorar os tempos de resposta e impedir falhas transitórias, dando suporte a respostas parciais e fornecendo maneiras de filtrar e paginar dados. Design e implementação, Eficiência de desempenho, Excelência operacional
Implementação da API Implementar APIs Web para serem eficientes, responsivas, escalonáveis e disponíveis. Realizar ações idempotentes, dar suporte à negociação de conteúdo e seguir a especificação HTTP. Tratar exceções e dar suporte à descoberta de recursos. Apresentar maneiras de lidar com solicitações grandes e minimizar o tráfego de rede. Design e implementação, Excelência operacional
Dimensionamento automático Projetar aplicativos para alocar e desalocar recursos dinamicamente para atender aos requisitos de desempenho e minimizar os custos. Aproveitar o dimensionamento automático do Azure Monitor e o dimensionamento automático integrado que muitos componentes do Azure oferecem. Eficiência de desempenho, Otimização de custo
Trabalhos em segundo plano Implementar trabalhos em lotes, tarefas de processamento e fluxos de trabalho como trabalhos em segundo plano. Usar os serviços de plataforma do Azure para hospedar essas tarefas. Disparar tarefas com eventos ou agendamentos e retornar resultados para tarefas de chamada. Design e implementação, Excelência operacional
Cache Melhorar o desempenho copiando dados para um armazenamento rápido próximo aos aplicativos. Armazenar dados em cache que você lê com frequência, mas raramente modifica. Gerenciar a expiração e a simultaneidade de dados. Ver como preencher caches e usar o serviço Cache do Azure para Redis. Gerenciamento de dados, Eficiência de desempenho
Rede de distribuição de conteúdo Usar 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. Superar os desafios de implantação, versão, segurança e resiliência. Gerenciamento de dados, Eficiência de desempenho
Particionamento de dados Particionar dados para melhorar a escalabilidade, a disponibilidade e o desempenho e reduzir os custos de contenção e armazenamento de dados. Usar o particionamento horizontal, vertical e funcional de maneiras eficientes. Gerenciamento de dados, Eficiência de desempenho, Otimização de custo
Estratégias de particionamento de dados (por serviço) Particionar dados nos serviços Banco de Dados SQL do Azure e Armazenamento do Microsoft Azure, como o Armazenamento de Tabelas do Azure e o Armazenamento de Blobs do Azure. Fragmentar seus dados para distribuir cargas, reduzir a latência e dar suporte ao dimensionamento horizontal. Gerenciamento de dados, Eficiência de desempenho, Otimização de custo
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. Design e implementação, Confiabilidade
Considerações sobre codificação de mensagens Usar mensagens assíncronas para trocar informações entre componentes do sistema. Escolher a estrutura de conteúdo, o formato de codificação e a biblioteca de serialização que funcionam melhor com seus dados. Mensagens, Segurança
Monitoramento e diagnósticos Acompanhar a integridade, o uso e o desempenho do sistema com um pipeline de monitoramento e diagnóstico. Transformar os dados de monitoramento em alertas, relatórios e gatilhos que ajudam em várias situações. Os exemplos incluem detectar e corrigir problemas, identificar possíveis problemas, atender às garantias de desempenho e atender aos requisitos de auditoria. Excelência operacional
Diretrizes de repetição para serviços específicos Usar, adaptar e estender os mecanismos de nova tentativa que os serviços do Azure e os SDKs de cliente oferecem. Desenvolver uma abordagem sistemática e robusta para gerenciar problemas temporários com conexões, operações e recursos. Design e implementação, Confiabilidade
Tratamento de falhas transitórias Tratar falhas transitórias causadas por redes ou recursos não disponíveis. Superar desafios ao desenvolver estratégias de novas tentativas apropriadas. Evitar duplicar camadas de código de repetições e outros antipadrões. Design e implementação, Confiabilidade

Próximas etapas