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)
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)
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)
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é)
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)
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)
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)
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)
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)
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)
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)
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é)
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:
- Cloud Design Patterns (de P&P): http://msdn.microsoft.com/en-us/library/dn568099.aspx
- FailSafe: Building Scalable, Resilient Cloud Services: http://aka.ms/FailsafeCloud
- Cloud Service Fundamentals in Windows Azure : http://aka.ms/csf
- Cloud Architecture Patterns: Using Microsoft Azure – un très bon livre de Bill Wilder
- Building Real-World Cloud Apps with Windows Azure : http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/introduction
Note: n’hésitez pas de poster ci-dessous vos rémarques, commentaires et completions.
Aucun commentaire:
Enregistrer un commentaire