PATRONS DE CONCEPTION CLOUD / AZURE (2ème partie)

Il y a quelque jours, j’avais publié PATRONS DE CONCEPTION CLOUD /AZURE (1ère partie).
Voici la suite de la liste des plus importants modèles de conception (design patterns) concernant le Cloud:

13. Patron: LEADER ELECTION (Election du leader)

image_thumb16
Permet coordonner les actions effectuées par une collection d’instances collaboratives de tâches dans une application distribuée en élisant un cas comme le leader qui assume la responsabilité de la gestion des autres cas.
Ce modèle peut aider à s'assurer que les tâches ne sont pas en conflit les uns avec les autres, provoquer des conflits pour les ressources partagées, ou interférer par inadvertance avec le travail que d'autres instances de tâche exécutent.
Solution Azure: code custom (pas de solution dans l’état sur Azure)



14. Patron: MATERIALIZED VIEW (vue matérialisée)

image
Permet générer des vues pré-peuplées sur les données dans un ou plusieurs magasins de données lorsque les données sont formatées d'une manière qui ne favorise pas les opérations de requête nécessaires.
Ce modèle peut aider à soutenir l'interrogation efficace et extraction de données, et d'améliorer les performances des applications.
Solution Azure: vues SQL DATABASE (custom); tables dénormalisées dans AZURE STORAGE (solution customisée)

15. Patron: PIPES AND FILTRERS (Tuyaux et filtres)

image
Décomposer une tâche qui effectue un traitement complexe en une série d'éléments discrets qui peuvent être réutilisés.
Ce modèle peut améliorer les performances, l'évolutivité et la réutilisabilité en permettant éléments de la tâche qui effectuent le traitement à être déployés et mis à l'échelle de façon indépendante.
Service Azure: BizTalk Services

16. Patron: PRIORITY QUEUE (file d’attente de priorité)

image
Permet prioriser les demandes envoyées aux services afin que les demandes avec une priorité plus élevée sont reçues et traitées plus rapidement que celles d'une priorité inférieure.
Ce modèle est utile dans les applications qui offrent différentes garanties de niveau de service pour différents types de client.
Solution Azure: SERVICE BUS TOPICS AND SUBSCRIPTIONS (Rubriques et Abonnements)

17. Patron: QUEUE-BASED LOAD LEVELING (nivellement de charge basée sur des files)

image
Utilisez une file d'attente qui agit comme un tampon entre une tâche et un service qu'il invoque afin de lisser les charges intermittent lourds qui peuvent causer d'autres le service à l'échec ou la tâche à expiration.
Ce modèle peut aider à minimiser l'impact des pics de la demande de la disponibilité et de la réactivité à la fois pour la tâche et le service.
Solution Azure: AZURE STORAGE QUEUE + WORKER ROLES (Cloud Services)

18. Patron: RETRY (ré-essai)

image
Permet à une application de gérer les échecs temporaires lors de la connexion à un service ou une ressource réseau en toute transparence, afin de relancer l'opération dans l'espoir que l'échec est transitoire.
Cette configuration permet d'améliorer la stabilité de l'application.
Solution Azure: Entity Framework; Enterprise Library (solutions non spécifiques à Azure)

19.  Patron: RUNTIME RECONFIGURATION (reconfiguration au moment de l’exécution)

image
Permet concevoir une application de sorte qu'elle peut être reconfiguré sans nécessiter le redéploiement ou le redémarrage de l'application.
Cela permet de maintenir la disponibilité et de minimiser les temps d'arrêt.
Solution Azure: configuration de CLOUD SERVICES, AZURE WEB SITES…

20. Patron: SCHEDULER AGENT SUPERVISOR (planificateur-agent-superviseur)

image
Coordonne un ensemble d'actions à travers un ensemble distribué de services et autres ressources distantes, tenter de gérer de manière transparente les défauts si l'une de ces actions échouent, ou annuler les effets du travail effectué si le système ne peut pas récupérer d'une faute.
Ce modèle peut améliorer la résilience d'un système distribué en lui permettant de récupérer et recommencer actions qui échouent à cause des exceptions transitoires, les défauts de longue durée, et les échecs du processus.
Solution Azure: AZURE MANAGEMENT API; BizTalk Server (sur IaaS)

21. Patron: SHARDING (Fragmentation)

image
Diviser un magasin de données en un ensemble de cloisons horizontales éclatées.
Ce modèle peut améliorer l'évolutivité (scalabilité) lors de l'enregistrement et l'accès à de grands volumes de données.
Solution Azure: SQL DATABASE FEDERATION

22. Patron: STATIC CONTENT HOSTING  (hébergement de contenu statique)

image
Permet de déployer du contenu statique à un service de stockage Cloud qui peut le livrer directement au client.
Ce modèle peut réduire la nécessité d'instances de calcul (Compute) potentiellement coûteux.
Solution Azure: AZURE CDN

23. Patron: THROTTLING (Limitation de niveau)

image
Permet de contrôler la consommation des ressources utilisées par une instance d'une application, un locataire particulier ou un service entier.
Ce modèle peut permettre au système de continuer à fonctionner et respecter les contrats de niveau de service, même si une augmentation de la demande impose une charge extrême sur les ressources.
Solution Azure: Connexions à SQL DATABASE

24. Patron: VALET KEY (Clé de sureté)

image
Utilisez un jeton ou une clé qui fournit aux clients un accès direct restreint à une ressource ou un service spécifique afin de décharger des opérations de transfert de données de code de l'application.
Ce modèle est particulièrement utile dans les applications qui utilisent des systèmes ou des files d'attente de stockage en cloud et peut réduire les coûts et maximiser l'évolutivité et les performances.
Solution Azure: accès aux conteneurs/blobs de AZURE STORAGE BLOB

Récapitulatif

Voici la liste des patrons de conception étudiés:
1.Cache-aside
2.Circuit Breaker
3.Compensating Transaction
4.Competing Consumers
5. Compute Resource Consolidation
6.Command and Query Responsibility Segregation (CQRS)
7.Event Sourcing
8.External Configuration Store
9.Federated Identity
10.Gatekeeper
11.Health Endpoint Monitoring
12.Index Table
13.Leader Election
14.Materialized View
15.Pipes and Filters
16.Priority Queue
17.Queue-based Load Leveling
18.Retry Pattern
19.Runtime Reconfiguration
20.Scheduler Agent Supervisor
21.Sharding
22.Static Content Hosting
23.Throttling
24.Valet Key

Avez-vous d’autres modèles que vous considérez importants dans le contexte Cloud ?

Références:


Note: n’hésitez pas de poster ci-dessous vos rémarques, commentaires et completions.

Aucun commentaire:

Enregistrer un commentaire