PATRONS DE CONCEPTION CLOUD / AZURE (1ère partie)

Suite à l’accélération rapide de l’utilisation du Cloud dans les solutions informatiques, un besoin de mieux organiser la conception et l’assemblage les solutions se profile. Bien que les modèles qui se définissent ne sont pas nécessairement spécifiques au Cloud Computing, mais aux approches systématiques SOA, [Big] Data ou autres, il y a bien des nouveaux cas apparus avec les architectures spécifiques Cloud (et plus particulièrement cloud public), sans dire que les modèles qui étaient plus au moins appliqués dans déploiements à demeure devient impératifs dans le contexte cloud.
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é)

clip_image003
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)

clip_image005
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)

clip_image006
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)

clip_image007
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)

clip_image009
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)

clip_image011
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)

image
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)

image
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)

image
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 »)

image
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)

image
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é)

image
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