SlideShare ist ein Scribd-Unternehmen logo
1 von 36
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://www.linkedin.com/in/mzaharia
Email : zaharia@outlook.com
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. Gestion applicative et monitoring
6. Performance et évolutivité (scaling)
7. Résilience
8. Sécurité
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
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 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)
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
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)
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)
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
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
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
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, …
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
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)
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
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
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
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)
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
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
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
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*
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, …
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)
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
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
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
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é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
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
QUESTIONS ?
MERCI !

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (12)

Tp Sql Server Integration Services 2008
Tp  Sql Server Integration Services  2008Tp  Sql Server Integration Services  2008
Tp Sql Server Integration Services 2008
 
DB Forum 2012 - EM12c & DBaaS
DB Forum 2012 - EM12c & DBaaSDB Forum 2012 - EM12c & DBaaS
DB Forum 2012 - EM12c & DBaaS
 
Integration Drupal systemes d'informations
Integration Drupal systemes d'informationsIntegration Drupal systemes d'informations
Integration Drupal systemes d'informations
 
SQL Server HA-DR
SQL Server HA-DRSQL Server HA-DR
SQL Server HA-DR
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)
 
Implémenter de l’authentification forte pour vos environnements Cloud
Implémenter de l’authentification forte pour vos environnements CloudImplémenter de l’authentification forte pour vos environnements Cloud
Implémenter de l’authentification forte pour vos environnements Cloud
 
Azure Data Factory, Mouvement de données hybride
Azure Data Factory, Mouvement de données hybrideAzure Data Factory, Mouvement de données hybride
Azure Data Factory, Mouvement de données hybride
 
TechDays 2010 (CLO301) : Windows Azure Comment Migrer Une Application
TechDays 2010 (CLO301) : Windows Azure Comment Migrer Une ApplicationTechDays 2010 (CLO301) : Windows Azure Comment Migrer Une Application
TechDays 2010 (CLO301) : Windows Azure Comment Migrer Une Application
 
Azure Roadshow
Azure RoadshowAzure Roadshow
Azure Roadshow
 
Sql saturday 323 paris 2014 azure migration iaas et paas
Sql saturday 323 paris 2014   azure migration iaas et paasSql saturday 323 paris 2014   azure migration iaas et paas
Sql saturday 323 paris 2014 azure migration iaas et paas
 
Windows Azure IaaS: machines virtuelles, réseau, ...
Windows Azure IaaS: machines virtuelles, réseau, ... Windows Azure IaaS: machines virtuelles, réseau, ...
Windows Azure IaaS: machines virtuelles, réseau, ...
 
Services de bureaux distants dans Windows Server 2012 R2 et Azure
Services de bureaux distants dans Windows Server 2012 R2 et AzureServices de bureaux distants dans Windows Server 2012 R2 et Azure
Services de bureaux distants dans Windows Server 2012 R2 et Azure
 

Andere mochten auch

Session iot gwab 2014 paris
Session iot gwab 2014 parisSession iot gwab 2014 paris
Session iot gwab 2014 paris
Marius Zaharia
 

Andere mochten auch (10)

[JSS2015] - Azure automation
[JSS2015] - Azure automation[JSS2015] - Azure automation
[JSS2015] - Azure automation
 
Azure Powershell. Azure Automation
Azure Powershell. Azure AutomationAzure Powershell. Azure Automation
Azure Powershell. Azure Automation
 
Gouvernance et sécurisation de vos ressources cloud avec Azure Active Directo...
Gouvernance et sécurisation de vos ressources cloud avec Azure Active Directo...Gouvernance et sécurisation de vos ressources cloud avec Azure Active Directo...
Gouvernance et sécurisation de vos ressources cloud avec Azure Active Directo...
 
Session iot gwab 2014 paris
Session iot gwab 2014 parisSession iot gwab 2014 paris
Session iot gwab 2014 paris
 
Ro IT Webinar - Masina Virtuala, calatorie catre cloud
Ro IT Webinar - Masina Virtuala, calatorie catre cloudRo IT Webinar - Masina Virtuala, calatorie catre cloud
Ro IT Webinar - Masina Virtuala, calatorie catre cloud
 
Soyez le maître du PRA - MS Cloud Summit Paris 2017
Soyez le maître du PRA - MS Cloud Summit Paris 2017Soyez le maître du PRA - MS Cloud Summit Paris 2017
Soyez le maître du PRA - MS Cloud Summit Paris 2017
 
Automati(sati)on de votre application Azure
Automati(sati)on de votre application AzureAutomati(sati)on de votre application Azure
Automati(sati)on de votre application Azure
 
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
Sql Saturday Paris 2016 - De StreamInsight à Azure Stream Analytics
 
Azure Networking: Innovative Features and Multi-VNet Topologies
Azure Networking: Innovative Features and Multi-VNet TopologiesAzure Networking: Innovative Features and Multi-VNet Topologies
Azure Networking: Innovative Features and Multi-VNet Topologies
 
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
 

Ähnlich wie Patterns azure cloud

Estelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 Paris
Estelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 ParisEstelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 Paris
Estelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 Paris
AZUG FR
 
Réussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des donnéesRéussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des données
Denodo
 
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm
 

Ähnlich wie Patterns azure cloud (20)

exposer cloud sur le cloud computing et azure
exposer cloud sur le cloud computing et azureexposer cloud sur le cloud computing et azure
exposer cloud sur le cloud computing et azure
 
Estelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 Paris
Estelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 ParisEstelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 Paris
Estelle Auberix - La securité dans Azure - Global Azure Bootcamp 2016 Paris
 
La Sécurité dans Azure
La Sécurité dans AzureLa Sécurité dans Azure
La Sécurité dans Azure
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
[GAB2016] La sécurité dans Azure - Estelle Auberix
[GAB2016] La sécurité dans Azure - Estelle Auberix[GAB2016] La sécurité dans Azure - Estelle Auberix
[GAB2016] La sécurité dans Azure - Estelle Auberix
 
MS Days 2011 - Windows Azure
MS Days 2011 - Windows AzureMS Days 2011 - Windows Azure
MS Days 2011 - Windows Azure
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
 
Windows Azure et e-commerce
Windows Azure et e-commerceWindows Azure et e-commerce
Windows Azure et e-commerce
 
Réussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des donnéesRéussir sa migration vers le Cloud grâce à la virtualisation des données
Réussir sa migration vers le Cloud grâce à la virtualisation des données
 
Patterns Windows Azure
Patterns Windows AzurePatterns Windows Azure
Patterns Windows Azure
 
[Tuto] Web burst : Débordement Web vers Windows Azure
[Tuto] Web burst : Débordement Web vers Windows Azure[Tuto] Web burst : Débordement Web vers Windows Azure
[Tuto] Web burst : Débordement Web vers Windows Azure
 
BlueData EPIC datasheet (en Français)
BlueData EPIC datasheet (en Français)BlueData EPIC datasheet (en Français)
BlueData EPIC datasheet (en Français)
 
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans AzureSQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
SQLSaturday Paris 2014 - Et hop, ma base migre dans Azure
 
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & RéalitésReprise et Continuité d’activité sur le Cloud : Mythes & Réalités
Reprise et Continuité d’activité sur le Cloud : Mythes & Réalités
 
Microsoft Azure : The cloud for modern business
Microsoft Azure : The cloud for modern businessMicrosoft Azure : The cloud for modern business
Microsoft Azure : The cloud for modern business
 
Sql
SqlSql
Sql
 
Discovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data VirtualizationDiscovery Session France: Atelier découverte de la Data Virtualization
Discovery Session France: Atelier découverte de la Data Virtualization
 
Reduisez vos couts simplifiez votre informatique et accelerez vos deploiement...
Reduisez vos couts simplifiez votre informatique et accelerez vos deploiement...Reduisez vos couts simplifiez votre informatique et accelerez vos deploiement...
Reduisez vos couts simplifiez votre informatique et accelerez vos deploiement...
 
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
 
Bases dedonnees.net
Bases dedonnees.netBases dedonnees.net
Bases dedonnees.net
 

Mehr von Marius Zaharia

Mehr von Marius Zaharia (13)

Multi-Tenant Identity and Azure Resource Governance - Identity Days 2019
Multi-Tenant Identity and Azure Resource Governance - Identity Days 2019Multi-Tenant Identity and Azure Resource Governance - Identity Days 2019
Multi-Tenant Identity and Azure Resource Governance - Identity Days 2019
 
Onboard a Historical Company on the Cloud Journey
Onboard a Historical Company on the Cloud JourneyOnboard a Historical Company on the Cloud Journey
Onboard a Historical Company on the Cloud Journey
 
Multi-Tenant Identity and Azure Resource Governance - ReBUILD 2019
Multi-Tenant Identity and Azure Resource Governance - ReBUILD 2019Multi-Tenant Identity and Azure Resource Governance - ReBUILD 2019
Multi-Tenant Identity and Azure Resource Governance - ReBUILD 2019
 
Azure Firewall (Meetup Société Générale - dec 2018)
Azure Firewall (Meetup Société Générale - dec 2018)Azure Firewall (Meetup Société Générale - dec 2018)
Azure Firewall (Meetup Société Générale - dec 2018)
 
Onboarding a Historical Company on the Cloud Journey (IT Camp 2018)
Onboarding a Historical Company on the Cloud Journey (IT Camp 2018)Onboarding a Historical Company on the Cloud Journey (IT Camp 2018)
Onboarding a Historical Company on the Cloud Journey (IT Camp 2018)
 
Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Modern Architecture in the Cloud of 2018 (IT Camp 2018)Modern Architecture in the Cloud of 2018 (IT Camp 2018)
Modern Architecture in the Cloud of 2018 (IT Camp 2018)
 
Modern Architecture in the Cloud of 2018
Modern Architecture in the Cloud of 2018Modern Architecture in the Cloud of 2018
Modern Architecture in the Cloud of 2018
 
Architecture Moderne dans le Cloud en 2018
Architecture Moderne dans le Cloud en 2018Architecture Moderne dans le Cloud en 2018
Architecture Moderne dans le Cloud en 2018
 
Onboarding a Historical Company on the Cloud Journey
Onboarding a Historical Company on the Cloud JourneyOnboarding a Historical Company on the Cloud Journey
Onboarding a Historical Company on the Cloud Journey
 
APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?APIs dans Azure : serverless ou pas serverless?
APIs dans Azure : serverless ou pas serverless?
 
One Azure Monitor to Rule Them All? (IT Camp 2017, Cluj, RO)
One Azure Monitor to Rule Them All? (IT Camp 2017, Cluj, RO)One Azure Monitor to Rule Them All? (IT Camp 2017, Cluj, RO)
One Azure Monitor to Rule Them All? (IT Camp 2017, Cluj, RO)
 
La santé de votre environnement Azure, entre Monitor, AppInsights et Log Anal...
La santé de votre environnement Azure, entre Monitor, AppInsights et Log Anal...La santé de votre environnement Azure, entre Monitor, AppInsights et Log Anal...
La santé de votre environnement Azure, entre Monitor, AppInsights et Log Anal...
 
Azure Integration Services : les concepts de BizTalk dans le cloud (ARC303)
Azure Integration Services : les concepts de BizTalk dans le cloud (ARC303)Azure Integration Services : les concepts de BizTalk dans le cloud (ARC303)
Azure Integration Services : les concepts de BizTalk dans le cloud (ARC303)
 

Patterns azure cloud

  • 1. 29 Avril 2014, Paris, FranceLa Communauté Open Source Azure Française
  • 2. PATTERNS CLOUD / AZURE Marius Zaharia
  • 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. Agenda Problématiques type Rubriques d’orientation et guidage Patrons de conception Récapitulatif Références
  • 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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