Modèles de conception de cloud
Les architectes conçoivent des charges de travail en combinant les services de plateforme, les fonctionnalités et le code pour répondre aux exigences fonctionnelles et non fonctionnelles dans les charges de travail. La conception de charges de travail nécessite la compréhension de ces exigences de charge de travail, puis le choix des topologies et approches pour résoudre les défis présentés par les contraintes de la charge de travail. Modèles de conception cloud qui répondent à de nombreux défis courants.
La conception des systèmes est fortement imprégnée de modèles de conception. Les systèmes d’infrastructure, de code et distribués sont tous conçus autour d’une combinaison de modèles de conception. Ces modèles de conception sont utiles pour créer des applications fiables, sécurisées, optimisées pour le coût, opérationnelles et performantes dans le cloud.
Ces modèles de conception ne sont pas spécifiques à une technologie et sont pertinents pour n’importe quel système distribué, qu’ils soient hébergés sur Azure, d’autres plateformes cloud, et certains peuvent même s’étendre à des charges de travail locales ou hybrides.
Les modèles de conception cloud aident le processus de conception
Les charges de travail cloud sont sujettes aux illusions de l’informatique distribuée. Voici quelques exemples d’illusions de conception cloud :
- Le réseau est fiable
- Le temps de latence est nul
- La bande passante est infinie
- Le réseau est sûr
- La topologie ne change pas
- Il y a un administrateur
- Le contrôle de version des composants est simple
- L’implémentation de l’observabilité peut être retardée
Les modèles de conception n’éliminent pas ces notions, mais peuvent contribuer à les faire connaître, à les compenser et à les atténuer. Chaque modèle cloud a ses propres compromis. Vous devez vous intéresser davantage aux raisons pour lesquelles vous choisissez un modèle donné qu’à la manière de le mettre en œuvre.
Une charge de travail bien conçue prend en compte la façon dont ces modèles de conception à l’échelle du secteur doivent être utilisés comme blocs de construction principaux pour la conception de la charge de travail. Chaque pilier d’Azure Well-Architected est représenté dans ces modèles de conception, souvent avec le modèle de conception qui introduit des compromis avec les objectifs des autres piliers.
Catalogue de modèles
Chaque modèle de ce catalogue décrit le problème que le modèle traite, les considérations relatives à l’application du modèle et un exemple basé sur Microsoft Azure. Certains modèles incluent des exemples de code ou des extraits de code qui montrent comment implémenter le modèle sur Azure.
Modèle | Résumé | Piliers d’Azure Well-Architected Framework |
---|---|---|
Ambassadeur | Créez des services d’assistance qui envoient des requêtes réseau pour le compte d’applications ou d’un service consommateur. |
|
Couche de lutte contre la corruption | Implémentez une couche de façade ou d’adaptateur entre une application moderne et un système hérité. |
|
Demande-réponse asynchrone | Découplez le traitement de back-end à partir d’un hôte front-end, où le traitement de back-end doit être asynchrone, mais le front-end a quand même besoin d’une réponse claire. |
|
Services principaux destinés aux frontaux | Créez des services principaux distincts à utiliser par des applications ou interfaces front-end spécifiques. |
|
Cloisonnement | Isolez les éléments d’une application dans des pools afin qu’en cas d’échec, les autres continuent à fonctionner. |
|
Cache-Aside | Chargez des données à la demande dans un cache à partir d’un magasin de données. |
|
Chorégraphie | Laissez chaque service décider du moment et de la façon dont une opération métier est traitée, au lieu de dépendre d’un orchestrateur central. |
|
Disjoncteur | Gérer les erreurs dont la résolution peut prendre un certain temps lors de la connexion à une ressource ou à un service distant. |
|
Vérification des revendications | Diviser un message volumineux en une vérification des revendications et une charge utile pour éviter de surcharger un bus de messages. |
|
Transaction de compensation | Annulez le travail effectué par une série d’étapes qui définissent ensemble une opération cohérente. |
|
Consommateurs concurrents | Ce modèle vise à permettre à plusieurs consommateurs concurrents de traiter les messages reçus sur un même canal de messagerie. |
|
Consolidation des ressources de calcul | Consolidez plusieurs tâches ou opérations dans une unité de calcul unique. |
|
CQRS | Séparez les opérations qui lisent les données des opérations qui mettent à jour les données en utilisant des interfaces distinctes. |
|
Empreintes de déploiement | Déployez plusieurs copies indépendantes des composants de l’application, dont les magasins de données. |
|
Configuration de la charge de travail Edge | Centraliser la configuration pour relever le défi de la configuration de plusieurs systèmes et appareils au niveau de l’atelier. | |
Approvisionnement en événements | Utilisez un magasin d’ajout uniquement pour enregistrer la série complète d’événements qui décrivent les actions exécutées sur les données dans un domaine. |
|
Magasin de configurations externes | Déplacez les informations de configuration depuis le package de déploiement d’application vers un emplacement centralisé. |
|
Identité fédérée | Déléguez l’authentification à un fournisseur d’identité externe. |
|
Opérateur de contrôle | Protégez les applications et services à l’aide d’une instance d’hôte dédiée qui agit comme un intermédiaire entre les clients et l’application ou le service, valide et assainit les requêtes, et transmet les requêtes et les données entre eux. |
|
Agrégation de passerelle | Utilisez une passerelle pour agréger plusieurs requêtes individuelles dans une requête unique. |
|
Déchargement de passerelle | Déchargez des fonctionnalités de service partagé ou spécialisé sur un proxy de passerelle. |
|
Routage de passerelle | Acheminez les requêtes vers plusieurs services à l’aide d’un seul point de terminaison. |
|
Geode | Déployez des services back-end dans un ensemble de nœuds géographiques, chacun pouvant traiter une demande client dans n’importe quelle région. |
|
Surveillance de point de terminaison d’intégrité | Implémentez des contrôles fonctionnels dans une application à laquelle des outils externes peuvent accéder par le biais de points de terminaison exposés à intervalles réguliers. |
|
Table d’index | Créez des index sur les champs des magasins de données qui sont souvent référencés par les requêtes. |
|
Élection du responsable | Coordonnez les actions effectuées par un ensemble d’instances de tâche de collaboration dans une application distribuée en élisant l’instance responsable qui sera chargée de gérer les autres instances. |
|
Vue matérialisée | Générez des vues préremplies sur les données d’un ou de plusieurs magasins de données lorsque les données ne sont pas adéquatement formatées pour les opérations de requête requises. |
|
pont de messagerie | Créez un intermédiaire pour permettre la communication entre les systèmes de messagerie qui sont autrement incompatibles en raison du protocole ou du format. |
|
Canaux et filtres | Divisez une tâche qui exécute un traitement complexe en une série d’éléments séparés qui peuvent être réutilisés. |
|
File d’attente de priorité | Classez par ordre de priorité les requêtes envoyées aux services, de telle sorte que les demandes ayant une priorité plus élevée soient reçues et traitées plus rapidement que celles de moindre priorité. |
|
Serveur de publication/abonné | Activez une application pour annoncer des événements à plusieurs consommateurs intéressés de manière asynchrone, sans coupler les expéditeurs aux destinataires. |
|
Quarantaine | Assurez-vous que les ressources externes répondent à un niveau de qualité accepté par l’équipe avant d’être autorisés à les consommer dans la charge de travail. |
|
Nivellement de la charge basé sur une file d’attente | Utilisez une file d’attente qui agit comme mémoire tampon entre une tâche et un service qu’elle appelle, afin d’atténuer les surcharges intermittentes. |
|
Modèle de limite de débit | Un modèle de limitation vous aide à éviter ou à réduire les erreurs liées à ces seuils de limitation, et à prédire le débit de manière plus précise. |
|
Nouvelle tentative | Permettez à une application de gérer les défaillances temporaires anticipées quand elle tente de se connecter à un service ou à une ressource réseau en réessayant d’exécuter en toute transparence une opération qui a échoué précédemment. |
|
Saga | Gérez la cohérence des données entre les microservices dans des scénarios de transactions distribuées. Un saga est une séquence de transactions qui met à jour chaque service et publie un message ou un événement pour déclencher l’étape suivante de la transaction. |
|
Superviseur de l’agent du planificateur | Coordonnez un ensemble d’actions sur un ensemble distribué de services et d’autres ressources à distance. |
|
Convoi séquentiel | Traitez un ensemble de messages connexes dans un ordre défini, sans bloquer le traitement d’autres groupes de messages. |
|
Partitionnement | Divisez un magasin de données en un ensemble de partitions horizontales ou de partitions de base de données. |
|
Sidecar | Déployez les composants d’une application sur un processus ou conteneur distinct pour fournir l’isolation et l’encapsulation. |
|
Hébergement de contenu statique | Déployez un contenu statique dans un service de stockage cloud qui peut distribuer ce contenu directement au client. |
|
Figuier étrangleur | Faites migrer un système hérité de façon incrémentielle en remplaçant progressivement des parties spécifiques des fonctionnalités par de nouveaux services et applications. |
|
Limitation | Contrôlez la consommation des ressources utilisées par une instance d’une application, un locataire ou un service entier. |
|
Clé Valet | Utilisez un jeton ou une clé qui fournissent aux clients un accès direct limité à une ressource ou à un service spécifique. |
|
Étape suivante
Passez en revue les modèles de conception du point de vue d’Azure Well-Architected Pilier que le modèle cherche à optimiser.
- Modèles de conception pour prendre en charge le Pilier Fiabilité
- modèles de conception pour prendre en charge le pilier sécurité
- modèles de conception pour prendre en charge le pilier Optimisation des coûts
- modèles de conception pour soutenir le pilier Excellence opérationnelle
- Modèles de conception pour soutenir le pilier Efficacité de la performance