Universitéde Marne-la-Vallée 53/59 Laurent Wargon
Opérations sur les machines virtuelles
● Allocations dynamiques des ressources :RAM, CPU, Disques, Bande Passante
● Installation, sauvegarde, déplacement à chaud● Répartition des machines virtuelles (VM) sur les
machines physiques pour optimiser les charges systèmes et la consommation d’énergie
● Sécurité, environnement de test● Livraison d'applicatif (appliance virtuelle)
Universitéde Marne-la-Vallée 54/59 Laurent Wargon
Virtualisation
Société Produit
VMWare VMWare ESX
Citrix System Xen
Microsoft Microsoft Hyper-V
Contributeurs KVM
Oracle Virtualbox
Universitéde Marne-la-Vallée 55/59 Laurent Wargon
Webservices
● Échange de données entre applications et systèmes hétérogènes
● Exemple– XML-RPC (XML - Remote Procedure Call) – SOAP (Simple Object Access Protocol)– REST (REpresentational State Transfer)
Universitéde Marne-la-Vallée 56/59 Laurent Wargon
Webservices
RessourcesCPURAM
DisquesBande-passante
Nouvelle MachineHumain
Navigateur
MachineScript
Webservices
Cas de pilotage des machines virtuelles
Universitéde Marne-la-Vallée 57/59 Laurent Wargon
L'automatisme
Écrire un pseudo code d'allocation des ressources qui respecte les caractéristiques du NIST
Universitéde Marne-la-Vallée 2/83 Laurent Wargon
Architectures pour le Cloud
Universitéde Marne-la-Vallée 3/83 Laurent Wargon
Architectures pour le Cloud
● Introduction● Les traitements● Les stockages de données● Les caches● Des exemples
Universitéde Marne-la-Vallée 4/83 Laurent Wargon
Introduction
Universitéde Marne-la-Vallée 5/83 Laurent Wargon
Montée en charge
Hits par minutes
11h 12h 13h 14h12 septembre 2012
500K
0K
Peak Traffic – Approximately 90K concurrent visitorsPublication de l'annonce de l'iphone5 sur le blogwww.engadget.com
59 serveurs Web
Hits max = 20 x Hits initial
Universitéde Marne-la-Vallée 6/83 Laurent Wargon
La demande fonctionnelle
● Capacité d'accueil → inclue les pointes de trafic● Haute disponibilité → tolérance aux pannes● Temps de réponse → en lien avec l'architecture● Qualité de service → de façon globale● Exploitabilité → supervision & maintenance● Évolutivité → plan fonctionnels & techniques● Extensibilité → dans de bonnes conditions
Universitéde Marne-la-Vallée 7/83 Laurent Wargon
Comment faire ?
● la capacité des serveurs est limitée :– Gandi : 16 cœurs, 24Go RAM, 8 x 2To Disque– pas de Scale-UP chez Amazon
● Concevoir en même temps
l'application,
l'architecture et
la maintenance● Augmenter la capacité d'accueil en
augmentant le nombre de serveurs
Universitéde Marne-la-Vallée 8/83 Laurent Wargon
Capacité d'accueil en fonction du nombre de serveurs
Universitéde Marne-la-Vallée 9/83 Laurent Wargon
Les traitements
Universitéde Marne-la-Vallée 10/83 Laurent Wargon
Objectif : élasticité
Scalabilité : capacité d'une architecture à croître sans rupture, en ajoutant du matériel● Extensibilité cellulaire (Scale Up)
→ augmenter la puissance du serveur● Extensibilité fonctionnelle (verticale)
→ répartition des fonctions par serveurs ● Extensibilité horizontale (Scale Out)
→ répartition de fonctions identiques sur différents serveurs homologues
Universitéde Marne-la-Vallée 11/83 Laurent Wargon
Objectif : élasticité
● Extensibilité cellulaire
Universitéde Marne-la-Vallée 12/83 Laurent Wargon
Objectif : élasticité
● Extensibilité cellulaire
Universitéde Marne-la-Vallée 13/83 Laurent Wargon
Objectif : élasticité
● Extensibilité fonctionnelle
Application Web
Universitéde Marne-la-Vallée 14/83 Laurent Wargon
Objectif : élasticité
● Extensibilité fonctionnelle
Serveur Web Base de données
Universitéde Marne-la-Vallée 15/83 Laurent Wargon
Objectif : élasticité
● Extensibilité fonctionnelle
Accélérateur Web Base de donnéesServeur Web
Universitéde Marne-la-Vallée 16/83 Laurent Wargon
Objectif : élasticité
● Extensibilité horizontale
AccélérateurWeb
Base de données
ApplicationWeb
Base de données
ServeurWeb
ServeurWeb
AccélérateurWeb
ApplicationWeb
Universitéde Marne-la-Vallée 17/83 Laurent Wargon
Objectif : élasticité
● Extensibilité horizontale
AccélérateurWeb
Base de données
Accès aux données
Base de données
ApplicationWeb
ApplicationWeb
AccélérateurWeb
ApplicationWeb
Load balencer
Universitéde Marne-la-Vallée 18/83 Laurent Wargon
Objectif : élasticité
● Extensibilité horizontale
AccélérateurWeb
Base de données
Accès aux données
Base de données
ApplicationWeb
ApplicationWeb
AccélérateurWeb
ApplicationWeb
Load balencerLoad balencer
Accès aux données
Universitéde Marne-la-Vallée 19/83 Laurent Wargon
Contraintes de la solution
1.Répartir la charge de façon équilibrée
2.Résister aux pannes
3.Spécialiser des serveurs
4.Faciliter l'exploitation
5.Répartition entre serveurs d'un même LAN ou entre des datacenters
6.Répartir les requêtes HTTP ou les sessions
Universitéde Marne-la-Vallée 20/83 Laurent Wargon
Rappel sur les protocoles réseaux
● TCP : protocole de niveau 4– TCP possède des numéros de séquence
● TCP réémet les paquets perdus● TCP met de l'ordre à l'arrivée
● HTTP : protocole de niveau 5 sans état– Le besoin de gérer les sessions conduit à
construire la notion d'état au niveau applicatif
Universitéde Marne-la-Vallée 21/83 Laurent Wargon
Où sont ces sessions http ?
● Coté client
Cookie : dans le navigateur du client
Dans la page HTML● Coté serveur
Sur le serveur dans un fichier
Dans un système de gestion de mémoire cache
Dans la base de données● Sur le réseau : http ou https, visible ou pas
Universitéde Marne-la-Vallée 22/83 Laurent Wargon
Échanger l'ID de session
● Avec la méthode GET, dans l'url : http://www.example.com/shoppingCart?sessionid=37af3ee56785acd
● Avec la méthode POST, dans un formulaire en tant que champ caché : <input type="hidden" name="sessionid" value="37af3ee56785acd">
● En utilisant un cookie (RFC 2109)dans le header HTTPhttp://igm.univ-mlv.fr/~chilowi/teaching/subjects/java/net/web/http.htmlhttp://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
Répartition de charge de niveau 4
● Round-robin● Weighed round-robin● Least-connection● Weighed least-connection● Priority activation● IP source● Aléatoire● Objectif : 30% de charge par serveur
Répartition de charge de niveau 7
● Affinité de serveurs
cookie sur serveur
répartition par URI (URL + param)expression régulière / Hachage
● Terminer la session SSL● Performances 1000 fois inférieures / niveau 4
Répartition de charge de niveau 7
AccélérateurWeb
Base de données
Accès aux données
Base de données
ApplicationWeb
ApplicationWeb
AccélérateurWeb
ApplicationWeb
Loadbalencer
Loadbalencer
Fin de session SSL Fin de session SSL
Loadbalencer
Loadbalencer
Accès aux données
Gestion des sessions
Session en cookie : - pas d'affinité de serveur,- un peu d'overhead réseau,- points de sécurité à traiter
Session en base :- pas d'affinité de serveur,- petit impact en perfs sur l'accès
Session en mémoire distribuée :- pas d'affinité de serveur, - bonnes performances
Session en mémoire :- requiert l'affinité de serveur,- rapide mais contraignant
Universitéde Marne-la-Vallée 27/83 Laurent Wargon
Configuration réseau
Plusieurs Datacenter
Universitéde Marne-la-Vallée 28/83 Laurent Wargon
Tolérance de panne
Universitéde Marne-la-Vallée 29/83 Laurent Wargon
Tolérance de panne
SPOF
Universitéde Marne-la-Vallée 30/83 Laurent Wargon
Tolérance de panne
Universitéde Marne-la-Vallée 31/83 Laurent Wargon
Load balancing en interne
Répartition de charge de niveau DNS
● DNS Round Robin (DNS RR){S1, S2, S3}, {S3, S1, S2}, {S2, S3, S1}
● pas de gestion de contexte→ sessions non gérées par les frontaux
● pas de gestion des pannes→ données erronées en cache DNS
● pas de mesures de charges serveurs→ pas d'aiguillage en fonction des charges
Utilisé sur différents réseaux et prestataires
Universitéde Marne-la-Vallée 33/83 Laurent Wargon
Tolérance de panne
● Surveillance des équipements● Maintient de la priorité de la correction● Tester les équipements de remplacement● Optimiser le ratio
coût de la redondance / coût de la panne
Universitéde Marne-la-Vallée 34/83 Laurent Wargon
Répartion de charge pour les traitements asynchrones
● MapReduce et Hadoop● Décomposition des tâches : map● Consolidation des résultats : reduce● Exemple : compter les occurrences d'un mot
dans un fichier● Autre exemple : création de l'index de Google
Universitéde Marne-la-Vallée 35/83 Laurent Wargon
Les stockages de données
Universitéde Marne-la-Vallée 36/83 Laurent Wargon
Les stockages de données
● Gestion ACID pour données critiques● Réplication pour les données en lecture seule● Consolidation des données en écriture seule● Partitionnement associé à un datawarehouse
Universitéde Marne-la-Vallée 37/83 Laurent Wargon
La gestion des données des critiques
● Transaction début – fin (commit - rollback)● Propriétés ACID
– Atomicité → une transaction en tout ou rien– Cohérence → respect des contraintes– Isolation → transactions simultanées– Durabilité → résistance aux pannes
● Pseudo transactionnel● Difficulté : combiner prop. ACID et élasticité
Universitéde Marne-la-Vallée 38/83 Laurent Wargon
Le cluster
● Commit à deux phases
Coordinator
R1 R2
Discuter l'argumentaire de la page suivante :http://blog.developpez.com/sqlpro/p10387/langage-sql-norme/le_mythe_du_commit_a_deux_phases
Universitéde Marne-la-Vallée 39/83 Laurent Wargon
Élasticité de la lecture
● M est une base Maître● E sont des bases Esclaves, en lecture seule
Universitéde Marne-la-Vallée 40/83 Laurent Wargon
Élasticité de la lecture
● M est une base Maître● E sont des bases Esclaves en lecture seule● Réplication en cascade
Universitéde Marne-la-Vallée 41/83 Laurent Wargon
Écriture d'un fichier de log
Universitéde Marne-la-Vallée 42/83 Laurent Wargon
Partitionnement des données
● Une entité partitionnée est gérée par un unique serveur
● Les entités liées sont sur le même serveur● Certaines entités de référence peuvent être
répliquées sur différents serveurs● Quelle logique de répartition ?
– Segmentation définie→ déconseillée– Arbitraire → table d'allocation (entité, serveur)
Universitéde Marne-la-Vallée 43/83 Laurent Wargon
Requêtes transverses
● Requêtes adressées en parallèle à tous les serveurs et consolider les réponses
● Création d'une base consolidée permanente(datawarehouse)– Ne concerne qu'une partie de
l'information– Gros volume / taux d'accès faible– Lieu naturel de la table d'allocation
Universitéde Marne-la-Vallée 44/83 Laurent Wargon
Répartition Load Balencer
l'application neconnaît pas lepartitionnement
Universitéde Marne-la-Vallée 45/83 Laurent Wargon
Répartition frontaux web
l'application connaît lepartitionnement
Universitéde Marne-la-Vallée 46/83 Laurent Wargon
NoSQL
● Not only SQL● Lecture fréquente / écriture non fréquente ● Performance en lecture● Répartition de charge● Peu coûteux● Pas de propriétés ACID● BigTable (google), Dynamo (Amazon), Hbase
(Facebook), MongoDB (SourceForge), Redis
Universitéde Marne-la-Vallée 47/83 Laurent Wargon
Les caches
Universitéde Marne-la-Vallée 48/83 Laurent Wargon
Le cache
● Principes : recopier les données de la source dans une zone d'accès plus rapide : le cache
● Navigateur, proxy, reverse proxy, serveur cache● Compression des données● multiplier par 100 à 1 000 la capacité d'accueil● Deux modes
– Pull : le cache va chercher les données (passif)– Push : la source pousse les données (actif)
Universitéde Marne-la-Vallée 49/83 Laurent Wargon
Cache en mode pull
Universitéde Marne-la-Vallée 50/83 Laurent Wargon
Cache en mode pull
● time to live TTL : une durée de vie est attribuée aux données
● la durée de vie peut être :– illimitée– unique– spécifiée par le fournisseur
● fonctionnement Most Recently Used (MRU)● fonctionnement Most Frequently Used (MFU)
Universitéde Marne-la-Vallée 51/83 Laurent Wargon
Cache en mode push
Universitéde Marne-la-Vallée 52/83 Laurent Wargon
Le cache HTTP
● Distribution HTTP → Accélération HTTP● la durée de vie est attribuée par
le producteur dans l'entête HTTP● pages statiques, css, javascript● images, pdf● formats d'images intermédiaires● zoom d'images● résultats de recherche● fragments de page
Universitéde Marne-la-Vallée 53/83 Laurent Wargon
Le cache HTTP par fragment
● Durée de vie attribuée au fragment
actualité rafraîchie tous les 1/4 d'heure
pied de page toutes les 24 heures● Norme Edge Side Incluce (ESI)
définie par un groupe d'entreprise (Akamai, Oracle, …) soumise au W3C
<esi:include src='HTTP://www.site.com/fragment01'/>
● agrégation coté client : iframes, javascript, Ajax,
Universitéde Marne-la-Vallée 54/83 Laurent Wargon
Le cache HTTP par fragment
Universitéde Marne-la-Vallée 55/83 Laurent Wargon
Cache de données
● données en RAM– 1 million de membres– 50 Ko de données par membre
● Memcached– cache distribué, objet 1o à 1Mo– correspondance clé-valeur– utilisée par Facebook (2008)
800 serveurs, 28 To, 200 000 requêtes/s/serveur● Redis (GitHub, Groupon, Stack Overflow, ...)
50 Go RAM
Universitéde Marne-la-Vallée 56/83 Laurent Wargon
Les Content Delivery Network (CDN)
● Paris – Californie : + 45 msParis – Sidney : + 85 ms
● Amazon : 100 ms de temps de chargement supplémentaires → 1% de ventes en moins
● Poids moyen des pages d'accueil :
2000 : moins de 100 Ko
2012 : 1 à 4 Mo ● Page médiane en 2012 :77 requêtes et 6,5s
http://www.cdn-tech.com/IMG/pdf/cdn-tech-ecritel-livreblanc-2012.pdf
Universitéde Marne-la-Vallée 57/83 Laurent Wargon
Les Content Delivery Network (CDN)
● Fabriquer des nœuds où les contenus statiques sont répliqués au plus proche de l'internaute
Pour faire un CDN, il faut :
Serveurs d'origine
Nœuds où les contenus sont répliqués
Un mécanisme de routage
Universitéde Marne-la-Vallée 58/83 Laurent Wargon
Les Content Delivery Network (CDN)
Universitéde Marne-la-Vallée 59/83 Laurent Wargon
Les métriques des CDN
● Géographique → GeoDNS● Réseau → DNS Anycast● Calculée en temps réel →
utilisation de plusieurs CDN
Universitéde Marne-la-Vallée 60/83 Laurent Wargon
CDN : Métrique géographique GeoDNS
● Base de données géographiquedes adresses IP (produits de la société maxmind : GeoIP)
● Configuration particulière du DNS● Faible coût● http://phix.me/geodns/
Universitéde Marne-la-Vallée 61/83 Laurent Wargon
Adresse anycast (RFC 4786)
Adresse IP Unicast Adresse IP Anycast
Top Related