29 Avril 2014, Paris, FranceLa Communauté Open Source Azure Française
PATTERNS CLOUD / AZURE
Marius Zaharia
Marius Zaharia
Expert Azure & Cloud
Twitter : @marius_on_azure
Blog : http://marius-zaharia.blogspot.com
LinkedIn : http:/...
Agenda
Problématiques type
Rubriques d’orientation et guidage
Patrons de conception
Récapitulatif
Références
PROBLEMATIQUES
ORIENTATION
Problématiques type
1. Disponibilité
2. Gestion des données
3. Conception et implémentation
4. Echange de messages
5. Gest...
Rubriques de orientation/guidage
a) Messagerie asynchrone
(Asynchronous Messaging)
b) Mise à l’échelle automatique
(Autosc...
PATRONS DE CONCEPTION CLOUD
Patron: CACHE-ASIDE (mise en cache à-côté)
A la demande, charge des données provenant
d’une structure de données et les ga...
Patron : CIRCUIT BREAKER (Disjoncteur)
Permet de gérer les erreurs qui
peuvent prendre une quantité
variable de temps pour...
Patron: COMPENSATING TRANSACTION (Transaction compensée)
Permet annuler les actions effectuées par une série d'étapes qui,...
Patron: COMPETING CONSUMERS (consommateurs concurrents)
Utilise plusieurs consommateurs simultanés pour traiter les messag...
Patron: COMPUTE RESOURCE CONSOLIDATION
(consolidation des ressources de calcul)
Permet consolider les tâches ou
opérations...
Patron: CQRS - COMMAND & QUERY RESPONSIBILITY SEGREGATION
(séparation des responsabilités commande vs demande)
Séparer les...
Patron: EVENT SOURCING (Matérialisation d’événements)
Utilisez une structure de données en mode ajout-
uniquement pour enr...
Patron: EXTERNAL CONFIGURATION STORE
(structure de configuration externe)
Permet déplacer les informations de
configuratio...
Patron: FEDERATED IDENTITY (Identité fédérée)
Permet déléguer l'authentification à un
fournisseur d'identité externe.
Ce m...
Patron: GATEKEEPER (« garde-porte »)
Protège les applications et services à l'aide d'une instance de serveur dédiée qui ag...
PATRON: HEALTH MONITORING ENDPOINT
(point de terminaison pour la surveillance de fonctionnement)
Mets en œuvre des contrôl...
Patron: INDEX TABLE (Tableau indexé)
Créer des index sur les champs
dans les structures de données qui
sont souvent référe...
Patron: LEADER ELECTION (Election du leader)
Permet coordonner les actions effectuées
par une collection d’instances
colla...
Patron: MATERIALIZED VIEW (vue matérialisée)
Générer des vues pré-peuplées
sur les données dans un ou
plusieurs magasins d...
Patron: PIPES AND FILTRERS (Tuyaux et filtres)
Décomposer une tâche qui
effectue un traitement complexe en
une série d'élé...
Patron: PRIORITY QUEUE (file d’attente de priorité)
Permet prioriser les demandes
envoyées aux services afin que les
deman...
Patron: QUEUE-BASED LOAD LEVELING
(nivellement de charge basée sur des files)
Utilisez une file d'attente qui agit comme u...
Patron: RETRY (ré-essai)
Permet à une application de gérer les échecs temporaires lors de la connexion à un
service ou une...
Patron: RUNTIME RECONFIGURATION
(reconfiguration au moment de l’exécution)
Permet concevoir une application de sorte qu'el...
Patron: SCHEDULER AGENT SUPERVISOR
(planificateur-agent-superviseur)
Coordonne un ensemble d'actions à travers un
ensemble...
Patron: SHARDING (Fragmentation)
Diviser un magasin de données en un
ensemble de cloisons horizontales
éclatées.
Ce modèle...
Patron: STATIC CONTENT HOSTING
(hébergement de contenu statique)
Déployer du contenu statique à un
service de stockage en ...
Patron: THROTTLING (Limitation de niveau)
Permet de contrôler la consommation
des ressources utilisées par une
instance d'...
Patron: VALET KEY (Clé de sureté)
Utilisez un jeton ou une clé qui fournit aux
clients un accès direct restreint à une
res...
Récapitulatf
Patterns étudiés:
1. Cache-aside
2. Circuit Breaker
3. Compensating Transaction
4. Competing Consumers
5. Com...
Références, à suivre
Cloud Design Patterns (de P&P):
http://msdn.microsoft.com/en-us/library/dn568099.aspx
FailSafe: Build...
QUESTIONS ?
MERCI !
Prochain SlideShare
Chargement dans…5
×

Patterns azure cloud

285 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
285
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Patterns azure cloud

  1. 1. 29 Avril 2014, Paris, FranceLa Communauté Open Source Azure Française
  2. 2. PATTERNS CLOUD / AZURE Marius Zaharia
  3. 3. Marius Zaharia Expert Azure & Cloud Twitter : @marius_on_azure Blog : http://marius-zaharia.blogspot.com LinkedIn : http://www.linkedin.com/in/mzaharia Email : zaharia@outlook.com
  4. 4. Agenda Problématiques type Rubriques d’orientation et guidage Patrons de conception Récapitulatif Références
  5. 5. PROBLEMATIQUES ORIENTATION
  6. 6. Problématiques type 1. Disponibilité 2. Gestion des données 3. Conception et implémentation 4. Echange de messages 5. Gestion applicative et monitoring 6. Performance et évolutivité (scaling) 7. Résilience 8. Sécurité
  7. 7. Rubriques de orientation/guidage a) Messagerie asynchrone (Asynchronous Messaging) b) Mise à l’échelle automatique (Autoscaling) c) Mise en cache d) Consistance des données e) Partitionnement des données f) Réplication et synchronisation des données g) Instrumentation et télémétrie h) Déploiement distribué (multi-datacenter) i) Service metering
  8. 8. PATRONS DE CONCEPTION CLOUD
  9. 9. 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 (en preview)
  10. 10. 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
  11. 11. 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)
  12. 12. 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)
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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, …
  17. 17. 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
  18. 18. 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. Service Azure: Pare-feu de CLOUD SERVICES, SQL DATABASE (restriction/ACL de plages d’IP); code custom via web services (Cloud Services)
  19. 19. 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. Service Azure: Endpoints pour les Web Sites, VMs
  20. 20. 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. Service Azure: SQL DATABASE, AZURE STORAGE TABLE
  21. 21. 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. Service Azure: code custom
  22. 22. Patron: MATERIALIZED VIEW (vue matérialisée) 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. Service Azure: vues SQL DATABASE (custom)
  23. 23. 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
  24. 24. 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. Service Azure: SERVICE BUS TOPICS AND SUBSCRIPTIONS
  25. 25. 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. Service Azure: AZURE STORAGE QUEUE + WORKER ROLES
  26. 26. 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. Service Azure: Entity Framework*; Enterprise Library*
  27. 27. 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. Service Azure: configuration de Cloud Services, Web Sites, …
  28. 28. 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. Service Azure: AZURE MANAGEMENT API BizTalk Server (sur IaaS)
  29. 29. 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. Service Azure: SQL DATABASE FEDERATION
  30. 30. Patron: STATIC CONTENT HOSTING (hébergement de contenu statique) Déployer du contenu statique à un service de stockage en nuage qui peut livrer ceux-ci directement au client. Ce modèle peut réduire la nécessité d'instances de calcul potentiellement coûteux. Service Azure: AZURE CDN
  31. 31. 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. Service Azure: Connexions à SQL DATABASE
  32. 32. 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
  33. 33. Récapitulatf Patterns é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
  34. 34. Références, à suivre 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
  35. 35. QUESTIONS ?
  36. 36. MERCI !

×