Partager via


Meilleures pratiques dans les applications cloud

La création d’applications cloud fiables, évolutives et sécurisées nécessite des décisions architecturales délibérées. Les meilleures pratiques de cette section fournissent des conseils sur les problèmes courants qui surviennent dans les systèmes distribués, tels que la mise en cache, le partitionnement des données, la conception d’API et la gestion des erreurs temporaires. Chaque pratique traite d’un ou plusieurs piliers du framework Azure Well-Architected, qui définit cinq attributs de qualité pour la conception de charge de travail : fiabilité, sécurité, optimisation des coûts, excellence opérationnelle et efficacité des performances.

Ces pratiques complètent d’autres conseils fondamentaux dans le Centre d’architecture Azure. Les principes de conception pour les applications Azure fournissent des stratégies de haut niveau, comme la conception pour l'auto-réparation et la mise à l'échelle. Les modèles de conception cloud offrent des solutions réutilisables aux problèmes architecturaux récurrents. Les antimodèles de performances décrivent les défauts courants qui provoquent des problèmes d’extensibilité en cours de chargement. Ces ressources vous aident à faire des choix architecturaux éclairés.

Catalogue des pratiques

Chaque pratique de ce tableau est mappée à un ou plusieurs piliers du Framework Well-Architected. Utilisez ces mappages pour identifier les pratiques les plus pertinentes pour les attributs de qualité que vous hiérarchiser dans votre charge de travail.

Pratique Résumé Piliers connexes
conception d’API Concevoir des API web pour prendre en charge l’indépendance de la plateforme à l’aide de protocoles standard et de formats de données convenus. Promouvoir l’évolution du service afin que les clients puissent découvrir les fonctionnalités sans nécessiter de modification. Améliorez les temps de réponse en prenant en charge les réponses partielles et en fournissant des moyens de filtrer et de paginer les données. Excellence opérationnelle, efficacité des performances
Implémentation de l’API Implémentez des API web pour être efficaces, réactives, évolutives et disponibles. Rendez les actions idempotentes, supportez la négociation de contenu et conformez-vous à la spécification HTTP. Gérez les exceptions et prenez en charge la découverte des ressources. Fournissez des moyens de gérer les requêtes volumineuses et de réduire le trafic réseau. Excellence opérationnelle, efficacité des performances
Mise à l’échelle automatique Concevoir des applications pour allouer et libérer dynamiquement des ressources pour répondre aux exigences de performances et réduire les coûts. Tirez parti de la mise à l’échelle automatique Azure Monitor et de la mise à l’échelle automatique intégrée offertes par de nombreux composants Azure. Optimisation des coûts, efficacité des performances
Travaux en arrière-plan Implémentez des travaux par lots, des tâches de traitement et des flux de travail en tant que travaux en arrière-plan. Utilisez les services de plateforme Azure pour héberger ces tâches. Déclenchez des tâches avec des événements ou des planifications, et renvoyez les résultats aux tâches d’appel. Fiabilité, Excellence opérationnelle
Mise en cache Améliorez les performances en copiant des données vers un stockage rapide proche des applications. Mettre en cache les données que vous lisez souvent mais rarement modifier. Gérer l’expiration et la concurrence des données. Découvrez comment remplir des caches et utiliser le service Azure Managed Redis . Efficacité des performances
Réseau de distribution de contenu Utilisez des réseaux de distribution de contenu (CDN) pour distribuer efficacement du contenu web aux utilisateurs et réduire la charge sur les applications web. Surmonter les problèmes de déploiement, de contrôle de version, de sécurité et de résilience. Fiabilité, efficacité des performances
Partitionnement des données Partitionnez les données pour améliorer l’extensibilité, la disponibilité et les performances, et réduire les coûts de contention et de stockage des données. Utilisez le partitionnement horizontal, vertical et fonctionnel de manière efficace. Optimisation des coûts, efficacité des performances
stratégies de partitionnement de données (par service) Appliquez des stratégies de partitionnement entre les services Azure, notamment Azure SQL Database, Azure Cosmos DB, Stockage Blob Azure, Azure Managed Redis, Azure Service Bus, etc. Distribuer des charges, réduire la latence et prendre en charge la mise à l’échelle horizontale. Optimisation des coûts, efficacité des performances
Préservation du nom d’hôte Découvrez pourquoi il est important de conserver le nom d’hôte HTTP d’origine entre un proxy inverse et son application web back-end et comment implémenter cette recommandation pour les services Azure les plus courants. Fiabilité, sécurité
Considérations relatives à l’encodage des messages Choisissez la structure de charge utile, le format d’encodage et la bibliothèque de sérialisation pour les messages asynchrones échangés entre les composants système. Envisagez des compromis tels que l’interopérabilité, la taille, la lisibilité humaine et l’évolution du schéma. Sécurité
surveillance et diagnostics Effectuez le suivi de l’intégrité du système, de l’utilisation et des performances avec un pipeline de surveillance et de diagnostic. Transformez les données de surveillance en alertes, rapports et déclencheurs qui aident dans différentes situations. Les exemples incluent la détection et la correction des problèmes, la détection des problèmes potentiels, la conformité des garanties de performances et la conformité des exigences d’audit. Excellence opérationnelle
gestion des erreurs temporaires Gérez les erreurs temporaires provoquées par des réseaux ou des ressources indisponibles. Surmonter les défis lors du développement de stratégies de nouvelle tentative appropriées. Évitez de dupliquer des couches de code de nouvelle tentative et d’autres antimodèles. Fiabilité

Principes de conception

Avant de répondre à des problèmes techniques spécifiques, établissez une base architecturale forte. Les principes de conception pour les applications Azure fournissent des stratégies de haut niveau qui s’appliquent à toutes les charges de travail, telles que la conception pour la réparation automatique, la montée en puissance et la réduction de la coordination. Ces principes mettent en forme les décisions que les meilleures pratiques répertoriées précédemment vous aident à implémenter.

modèles de conception cloud

Avec des principes en place, les modèles de conception cloud vous offrent des solutions réutilisables pour les problèmes récurrents dans les systèmes distribués. La plupart des meilleures pratiques de cette section s’appuient sur un ou plusieurs de ces modèles. Par exemple, les instructions de gestion des erreurs temporaires s’appuient sur le modèle Retry et le modèle Disjoncteur, les instructions de mise en cache sont liées au modèle Cache-Aside, et les instructions relatives aux travaux en arrière-plan utilisent des modèles tels que le modèle Consommateurs Concurrents et le modèle Niveaux de Charge Basé sur la File d'attente. Passez en revue le catalogue complet pour identifier les modèles qui répondent aux défis architecturaux de votre charge de travail.

Anti-modèles de performance

Même avec des principes solides, de bons modèles et des bonnes pratiques appliquées, les défauts peuvent apparaître sous la charge de production. Les antimodèles de performances pour les applications cloud décrivent les conceptions courantes qui ne sont pas mises à l’échelle ou les raccourcis qui s’accumulent en tant que fonctionnalités ajoutées. Utilisez ces antimodèles comme liste de contrôle pendant les révisions de conception et les révisions de code pour détecter les problèmes avant qu’ils atteignent la production.

Étapes suivantes