le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une...

46
Université de Marne-la-Vallée 36/81 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

Upload: others

Post on 23-Aug-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 36/81 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

Page 2: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 37/81 Laurent Wargon

Élasticité de la lecture

● M est une base Maître● E sont des bases Esclaves, en lecture seule

Page 3: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 38/81 Laurent Wargon

Élasticité de la lecture

● M est une base Maître● E sont des bases Esclaves en lecture seule● Réplication en cascade

Page 4: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 39/81 Laurent Wargon

Écriture d'un fichier de log

Page 5: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 40/81 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)

Page 6: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 41/81 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

Page 7: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 42/81 Laurent Wargon

Partitionnement par user

● L'application neconnaît pas lepartitionnement

Page 8: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 43/81 Laurent Wargon

Partitionnement par user

● L'application connaît lepartitionnement

Page 9: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 44/81 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

Page 10: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 45/81 Laurent Wargon

Les caches

Page 11: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 46/81 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)

Page 12: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 47/81 Laurent Wargon

Cache en mode pull

Page 13: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 48/81 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)

Page 14: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 49/81 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

Page 15: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 50/81 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,

Page 16: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 51/81 Laurent Wargon

Le cache HTTP par fragment

Page 17: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 52/81 Laurent Wargon

Cache en mode push

Page 18: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 53/81 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

Page 19: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 54/81 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

Page 20: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 55/81 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

Page 21: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 56/81 Laurent Wargon

Les Content Delivery Network (CDN)

Page 22: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 57/81 Laurent Wargon

Les métriques des CDN

● Géographique → GeoDNS● Réseau → DNS Anycast● Calculée en temps réel →

utilisation de plusieurs CDN

Page 23: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 58/81 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/

Page 24: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 59/81 Laurent Wargon

Adresse anycast (RFC 4786)

Adresse IP Unicast Adresse IP Anycast

Page 25: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 60/81 Laurent Wargon

CDN : Métrique réseau

● Le DNS possède une adresse anycast et renvoie une adresse unicast d'un serveur HTTP proche.

● Le DNS possède une adresse [uni|any]cast et renvoie une adresse anycast de serveur HTTP qui répond par un redirect HTTP vers un serveur unicast proche.

http://vincent.bernat.im/fr/blog/2011-dns-anycast.html

Page 26: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 61/81 Laurent Wargon

CDN : Métrique temps d'accès

Page 27: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 62/81 Laurent Wargon

CDN : Métrique temps d'accès

● Base de données Cedexis : collecte de données(1,3 milliard de mesures / jour)

des éditeurs web livrent des pages qui contiennent des sondes pour faire des mesures sur les Cloud et CDN

● Utilisation de mesures temps réel (cdn-tech.com)

Page 28: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 63/81 Laurent Wargon

CDN : Métrique temps d'accès

http://www.cedexis.com/fr/radar/methodology.html

1) Temps de connexion http = temps de résolution dns + temps de connexion tcp (petit objet)

2) Temps de réponse http = utilise la connexion tcp ouverte par la première mesure (petit objet)

3) Débit HTTP = utilise la connexion tcp déjà ouverte (gros objet)

Page 29: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 64/81 Laurent Wargon

CDN : Métrique temps d'accès

l'url de la ressource est : cdn.mon_domaine.org

c'est un CNAME vers 789456.cedexis.com

Suivant les mesures collectées, ce nom de domaine sera :

soit un CNAME vers 132456.akamay.com ou

soit un CNAME vers 456963.cdn77.net

Le TTL est paramétrable (20s)https://andrecheung.wordpress.com/2013/06/17/cdn-load-balancing-by-cedexis-openmix/

Page 30: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 65/81 Laurent Wargon

CDN : Métrique temps d'accès

● Netflix (30 % du trafic descendant aux US)

Utilisation de plusieurs CDN (Akamai, LimeLight et Level-3)

Changement de CDN si débit < 100Kbps● groupe de travail CDN Interconnexion (cdni)

de l'IETF → plusieurs RFC

Page 31: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 66/81 Laurent Wargon

réseau pair-à-pair

● Chaque client est aussi un serveur● Fichiers, Flux (streaming), calcul réparti,

service (téléphonie, bureau distant …) …● Architectures pour l'annuaire

centralisées

décentralisées structurées : recherche logarithmique

décentralisées : recherche exponentielle

Page 32: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 67/81 Laurent Wargon

réseau pair-à-pair

Page 33: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 68/81 Laurent Wargon

WebRTC

● Web Real-Time Communication● Communications temps réel entre navigateurs : voix

sur IP, visioconférence, pair-à-pair● API javascript et HTML5● 58 % des navigateurs● projet porté par Google, Mozilla and Opera● Depuis 2011 : API (W3C), protocole (IETF)● www.opentokrtc.com

Page 34: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 69/81 Laurent Wargon

CDN pair à pair

● PeerCDN (béta)● Réduction de bande passante● Javascript● Plus de visiteurs → plus d'hébergeur● Utilisation de WebRTC● Fonctionne avec les autres CDN● Sécurisé, Fiable

Page 35: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 70/81 Laurent Wargon

Des exemples d'architecture

Page 36: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 71/81 Laurent Wargon

Une configuration CDN

Plateforme HTTP : serveur PXE, syslog, déploiement, monitoring, ...

Distribution HTTP (Source) : nginx

Accélération HTTP (Edge) : cartes 10Gbps, disques SSD, XFS, RAID0, nginx, syslog distant et centralisé (réduction des I/O locales et gestion des statistiques)

http://francois.aichelbaum.com/creer-un-caching-http-facon-cdn/

Page 37: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 72/81 Laurent Wargon

Une configuration CDN

http://francois.aichelbaum.com/creer-un-caching-http-facon-cdn/

User

Edge

Source

LoadBalencer

Edge

Edge

Edge

Source

Origin

Origin

Page 38: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 73/81 Laurent Wargon

Architecture type Facebook

Page 39: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 74/81 Laurent Wargon

Sport 24

● CMS eZ Publish● contexte de session en base de données →

pas d'affinité de serveurs● media conservé en base de données● agrégation coté client avec du javascript● match en temps réel sont rechargés par

javascript sans recharger la page● coté serveur SSI Server Side Include d'Apache

Page 40: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 75/81 Laurent Wargon

Sport 24

● cache squid en frontal (2 000 pages/seconde)● génération de pages statiques :

– création des articles dans le back-office– script de génération des pages statiques– diffusion vers les frontaux NFS ou RSync

Page 41: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 76/81 Laurent Wargon

Sport 24

Page 42: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 77/81 Laurent Wargon

Sport 24

Page 43: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 78/81 Laurent Wargon

01 Informatique

Page 44: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 79/81 Laurent Wargon

Source

● Wikipedia● Livre Blanc

Plateformes web Hautes PerformancesPrincipes d'architecture et outils open sourceSociété Smile

Page 45: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 80/81 Laurent Wargon

Des questions ?

Page 46: Le cluster - blog.wargon.orgblog.wargon.org/wp-content/uploads/cours/2015-2016/... · renvoie une adresse unicast d'un serveur HTTP ... Distribution HTTP (Source) : nginx Accélération

Universitéde Marne-la-Vallée 81/81 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 blog gdgt

59 Web Server5 load balencers

Proposer unearchitecture