Melhores práticas em aplicações na nuvem
Essas práticas recomendadas podem ajudá-lo a criar aplicativos confiáveis, escaláveis e seguros na nuvem. Eles 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 aplicam-se a qualquer sistema distribuído, quer o seu anfitrião seja o Azure ou uma plataforma de nuvem diferente.
Catálogo de práticas
Esta tabela lista várias práticas recomendadas. A coluna Pilares ou padrões relacionados contém os seguintes links:
- Desafios de desenvolvimento em nuvem que a prática e os padrões de design relacionados abordam.
- Pilares do Microsoft Azure Well-Architected Framework nos quais a prática se concentra.
Prática | Resumo | Pilares ou padrões relacionados |
---|---|---|
Conceção da API | Projete APIs da Web para oferecer 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 funcionalidades sem a necessidade de modificações. Melhore os tempos de resposta e evite falhas transitórias suportando respostas parciais e fornecendo maneiras de filtrar e paginar dados. | Desenho e implementação, Eficiência de desempenho, Excelência operacional |
Implementação de API | Implemente APIs da Web para ser eficiente, responsivo, escalável e disponível. Torne as ações idempotentes, ofereça suporte à negociação de conteúdo e siga a especificação HTTP. Lide com exceções e ofereça suporte à descoberta de recursos. Forneça maneiras de lidar com grandes solicitações e minimizar o tráfego de rede. | Conceção e implementação, Excelência operacional |
Dimensionamento automático | Projete aplicativos para alocar e desalocar recursos dinamicamente para satisfazer os 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. | Eficiência de desempenho, Otimização de custos |
Trabalhos em segundo plano | Implemente trabalhos em lote, tarefas de processamento e fluxos de trabalho como trabalhos em segundo plano. Use os serviços da plataforma Azure para hospedar essas tarefas. Acione tarefas com eventos ou agendas e retorne resultados para tarefas de chamada. | Conceção e implementação, Excelência operacional |
Armazenamento em cache | Melhore o desempenho copiando dados para um armazenamento rápido próximo de aplicativos. Armazene em cache dados que você lê com frequência, mas raramente modifica. Gerencie a expiração e a simultaneidade de dados. Veja como preencher caches e usar o serviço Cache do Azure para Redis . | Gestão de dados, Eficiência de desempenho |
Rede de distribuição de conteúdos | Use redes de distribuição de conteúdo (CDNs) para fornecer conteúdo da Web de forma eficiente aos usuários e reduzir a carga em aplicativos da Web. Supere os desafios de implantação, controle de versão, segurança e resiliência. | Gestão de dados, Eficiência de desempenho |
Criação de partições de dados | Particione dados para melhorar a escalabilidade, a disponibilidade e o desempenho, além de reduzir os custos de contenção e armazenamento de dados. Use particionamento horizontal, vertical e funcional de maneira eficiente. | Gestão de dados, Eficiência de desempenho, Otimização de custos |
Estratégias de particionamento de dados (por serviço) | Particione dados no Banco de Dados SQL do Azure e nos serviços de Armazenamento do Azure, como o Armazenamento de Tabela do Azure e o Armazenamento de Blob do Azure. Fragmente seus dados para distribuir cargas, reduzir a latência e oferecer suporte ao dimensionamento horizontal. | Gestão de dados, Eficiência de desempenho, Otimização de custos |
Preservação do nome do host | Saiba por que é importante preservar o nome de host HTTP original entre um proxy reverso e seu aplicativo Web back-end e como implementar essa recomendação para os serviços mais comuns do Azure. | Conceção e implementação, Fiabilidade |
Considerações sobre codificação de mensagens | Use mensagens assíncronas para trocar informações entre os componentes do sistema. Escolha a estrutura de carga útil, o formato de codificação e a biblioteca de serialização que funcionam melhor com seus dados. | Mensagens, Segurança |
Monitorização e diagnóstico | Acompanhe a integridade, o uso e o desempenho do sistema com um pipeline de monitoramento e diagnóstico. Transforme os dados de monitoramento em alertas, relatórios e gatilhos que ajudam em várias situações. Os exemplos incluem a deteção e correção de problemas, a deteção de potenciais problemas, o cumprimento das garantias de desempenho e o cumprimento dos requisitos de auditoria. | Excelência operacional |
Retry guidance for specific services (Orientações do mecanismo de repetição para serviços específicos) | Use, adapte e estenda os mecanismos de repetição que os serviços do Azure e os SDKs de cliente oferecem. Desenvolva uma abordagem sistemática e robusta para gerenciar problemas temporários com conexões, operações e recursos. | Conceção e implementação, Fiabilidade |
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. | Conceção e implementação, Fiabilidade |