Cette liste est censée à donner une vision unitaire et synthétique autour de ces « patrons », avec typiquement un schéma conceptuel, une définition / description, ainsi que des exemples d’application en utilisant le cloud public Microsoft Azure.
A noter qu’ici on parle d’abord des patrons de conception (design patterns), et pas (pour l’instan) des patrons de développement ou d’architecture (qui seront sujet des articles ultérieurs).
1. Patron: CACHE-ASIDE (mise en cache à-côté)
A la demande, charge des données provenant d’une structure de données et les garde disponible pour utilisation.
Ce modèle peut améliorer les performances et aide à maintenir la cohérence entre les données contenues dans le cache et les données dans le magasin de données sous-jacent.
Solution Azure : AZURE CACHE
2. Patron : CIRCUIT BREAKER (Disjoncteur)
Permet de gérer les erreurs qui peuvent prendre une quantité variable de temps pour les rectifier, lors de la connexion à un service distant ou à une ressource.
Ce modèle peut améliorer la stabilité et la résilience d’une application.
Solution Azure: code custom (pas de service Azure dédié)
3. Patron: COMPENSATING TRANSACTION (Transaction compensée)
Permet annuler les actions effectuées par une série d'étapes qui, ensemble, définissent une opération unitaire et consistante, si une ou plusieurs des étapes échoue.
Les opérations qui suivent le modèle de cohérence éventuelle sont généralement trouvées dans les applications hébergé dans le cloud, qui mettent en œuvre des processus et des flux de travail complexes.
Solution Azure: BizTalk Server (en mode IaaS)
4. Patron: COMPETING CONSUMERS (consommateurs concurrents)
Utilise plusieurs consommateurs simultanés pour traiter les messages reçus sur le même canal de messagerie.
Ce modèle permet à un système de traiter plusieurs messages simultanément pour optimiser le débit, pour améliorer l'évolutivité et de la disponibilité, et d'équilibrer la charge de travail.
Solution Azure:
- STORAGE QUEUE ou SERVICE BUS QUEUE;
- CLOUD SERVICES/Worker Rôles (comme consommateurs)
5. Patron: COMPUTE RESOURCE CONSOLIDATION (consolidation des ressources de calcul)
Permet consolider les tâches ou opérations multiples dans une unité de calcul unique.
Ce modèle peut augmenter l'utilisation des ressources de calcul et de réduire les coûts et les frais de gestion associés à la réalisation d'un traitement de calcul dans les applications hébergées dans le cloud.
Solution Azure:
- plusieurs web sites dans un Web Role
- plusieurs web sites dans un Web Site
- plusieurs services dans un Worker Role
6. Patron: CQRS - COMMAND & QUERY RESPONSIBILITY SEGREGATION (séparation des responsabilités commande vs demande)
Séparer les opérations qui lisent les données provenant de l'exploitation des opérations de mise à jour de données, à l'aide des interfaces distinctes.
Ce modèle peut optimiser les performances, l'évolutivité et la sécurité; soutenir l'évolution du système au fil du temps grâce à une plus grande flexibilité, et empêcher les commandes de mise à jour de causer des conflits de fusion au niveau du domaine.
Solution Azure: code custom (pas de service spécifique Azure)
7. Patron: EVENT SOURCING (Matérialisation d’événements)
Utilisez une structure de données en mode ajout-uniquement pour enregistrer la série complète d'événements qui décrivent les mesures prises sur les données dans un domaine, plutôt que de stocker seulement l'état actuel, de sorte que le magasin peut être utilisé pour matérialiser les objets de domaine.
Ce modèle peut simplifier les tâches dans des domaines complexes, améliorer les performances, l'évolutivité et réactivité; assurer la cohérence des données transactionnelles et maintenir des pistes de vérification complètes et l'historique qui peut permettre des actions de compensation.
Solution Azure: code custom
8. Patron: EXTERNAL CONFIGURATION STORE (structure de configuration externe)
Permet déplacer les informations de configuration de l’intérieur du package de déploiement de l'application à un emplacement centralisé.
Ce modèle peut offrir des possibilités de gestion et de contrôle des données de configuration plus facile, et pour le partage de données de configuration entre les applications ou les instances d'application.
Solution Azure: configuration externalisée (au niveau portail) des Web Sites, Cloud Services, …
9. Patron: FEDERATED IDENTITY (Identité fédérée)
Permet déléguer l'authentification à un fournisseur d'identité externe.
Ce modèle peut simplifier le développement, de réduire l'obligation pour l'administration de l'utilisateur, et d'améliorer l'expérience utilisateur de l'application.
Solution Azure: AZURE ACTIVE DIRECTORY / ACCESS CONTROL SERVICES
10. Patron: GATEKEEPER (« garde-porte »)
Protège les applications et services à l'aide d'une instance de serveur dédiée qui agit comme un intermédiaire entre les clients et l'application ou le service, valide et assainit les demandes, et transfère des demandes et des données entre eux.
Ce modèle peut fournir une couche supplémentaire de sécurité et limiter la surface d'attaque du système.
Solution Azure: Pare-feu de CLOUD SERVICES, SQL DATABASE (restriction/ACL de plages d’IP); code custom via web services (Cloud Services)
11. Patron: HEALTH MONITORING ENDPOINT (point de terminaison pour la surveillance de fonctionnement)
Mets en œuvre des contrôles fonctionnels d'une application que les outils externes peuvent accéder par l'intermédiaire des points de terminaison exposés à intervalles réguliers.
Ce modèle peut aider à vérifier que les applications et services s’exécutent correctement.
Solution Azure: Endpoints pour les Web Sites, VMs
12. Patron: INDEX TABLE (Tableau indexé)
Créer des index sur les champs dans les structures de données qui sont souvent référencés par les critères de requête.
Ce modèle peut améliorer les performances des requêtes en permettant aux applications de récupérer plus rapidement les données à partir d‘une base de données.
Solution Azure: SQL DATABASE, AZURE STORAGE TABLE
[à suivre]
Sources : Microsoft Patterns & Practices; session “Patterns Cloud / Azure” présentée à Global Windows Azure Bootcamp Paris 2014
Aucun commentaire:
Enregistrer un commentaire