Sport - tourisme - environnement - territoires Sport Environnement Tourisme TerritoiresPartenaires.
Architectures réparties en environnement web
-
Upload
amaury-bouchard -
Category
Documents
-
view
2.635 -
download
3
description
Transcript of Architectures réparties en environnement web
![Page 1: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/1.jpg)
Architecturerépartie en
environnement Web
![Page 2: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/2.jpg)
« Scalabilité »nom fémininbarbarisme (scalability)
Capacité des systèmes informatiques à pouvoir faire évoluer leurs ressources en fonction des besoins, sans nécessiter une refonte de l'architecture matérielle et logicielle.
![Page 3: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/3.jpg)
« Haute disponibilité »
Capacité des systèmes informatiques à fournir le service prévu à tout moment, même en cas de panne d'une partie conséquente de leurs moyens matériels.
![Page 4: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/4.jpg)
Hébergement mutualisé
Partage de ressourcesBon marchéFiablePossibilités et ressources
limitées
![Page 5: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/5.jpg)
Serveur dédié
Ressources dédiéesPuissantMauvaise fiabilitéAdministration ?
![Page 6: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/6.jpg)
Évolution verticale(scaling in)
Augmentation des capacités du serveur
Facile à mettre en œuvreFiabilité limitéeRepousse juste la limite
![Page 7: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/7.jpg)
Évolution horizontale(scaling out)
Augmentation du nombre de serveurs
Théoriquement illimitéFiabilité par redondanceComplexe à mettre en œuvre
![Page 8: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/8.jpg)
Anatomie d'un serveur
Matériel
Processeur(s)Mémoire viveDisque(s) dur(s)
![Page 9: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/9.jpg)
Anatomie d'un serveur
Système d'exploitation
Linux, Windows,Mac OS X, Solaris,BSD, ...
![Page 10: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/10.jpg)
Anatomie d'un serveur
Applicatif
Serveur HTTP(Apache, Lighttpd, Nginx, …)
Application(JEE, PHP, Perl, Ruby, .NET, ...)
![Page 11: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/11.jpg)
Anatomie d'un serveur
Stockage de fichiers
Disque dur local
![Page 12: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/12.jpg)
Anatomie d'un serveur
Base de données
MySQL, PostgreSQL,Oracle, SQL Server, DB2, Informix, ...
![Page 13: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/13.jpg)
Applicatif : bonne scalabilité
Installation identique sur chaque serveur
Répartition de charge
Haute disponibilité
![Page 14: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/14.jpg)
Problèmes ?
Base de donnéesStockage de
fichiers
![Page 15: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/15.jpg)
Problèmes ?
Base de donnéesDifficile à répartir et redonder
Technologie “friable”
![Page 16: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/16.jpg)
Problèmes ?
Stockage de fichiersSolutions sans garantie
Solutions très coûteuses
![Page 17: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/17.jpg)
Le vrai problème ?
Le coût !
![Page 18: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/18.jpg)
Les solutions existent
(il suffit d'être millionnaire)
Cluster base de données(ex : Oracle RAC sur serveurs SUN)
Baies de stockage(ex : NetApp)
![Page 19: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/19.jpg)
Frontaux web
Serveurs de fichiers(NAS / SAN)
Base de données(Oracle RAC, MySQL cluster, ...)
![Page 20: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/20.jpg)
Réplication mono-directionnelle
![Page 21: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/21.jpg)
Ces solutions sont chères
Impossible de démarrer un projet en utilisant ces technologies
![Page 22: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/22.jpg)
Ces solutions sont chères
Impossible de démarrer un projet en utilisant ces technologies
Concrètement, on fait quoi ?
![Page 23: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/23.jpg)
Scale in + scale out
Lectures Écritures
![Page 24: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/24.jpg)
Scale in + scale out + réplication
Écritures
Lecturesen local
Réplication
![Page 25: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/25.jpg)
Mais les requêtes SQL sont très gourmandes en ressources
On essaye d'en faire le moins souvent possible
On exécute les requêtes une fois puis on stocke leurs résultats en cache pour les accès suivants
![Page 26: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/26.jpg)
Scale in + scale out + cache
Écritures
Lecturesen cache
Requêtes pour remplir le cache
![Page 27: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/27.jpg)
Avec le cache, les données sont agrégées telles qu'on les utilise dans l'application
Pourquoi ne pas stocker directement les données sous ce format ?
En réduisant les fonctionnalités des bases de données, on peut augmenter leur scalabilité.
![Page 28: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/28.jpg)
Avec le cache, les données sont agrégées telles qu'on les utilise dans l'application
Pourquoi ne pas stocker directement les données sous ce format ?
En réduisant les fonctionnalités des bases de données, on peut augmenter leur scalabilité.
Bases de données non relationnelles
![Page 29: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/29.jpg)
User
- id- name- login
Article
- id- title- content- user_id
Comment
- id- date- text- article_id
{name: "Amaury Bouchard",login: "amaury",articles: [
{title: "Article de test",content: "Bla bla bla",comments: [
{date: "2010-05-20",text: "Super !"
},{
date: "2010-05-21",text: "Génial !"
}]
},{ ... },{ ... }
]}
![Page 30: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/30.jpg)
Solutions SQL alternatives
ShardingDécouper une base en plusieurs morceaux pour alléger et paralléliser les traitements
DénormalisationDupliquer les données pour réduire le nombre de jointures nécessaires
![Page 31: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/31.jpg)
Solutions SQL alternatives
ShardingDécouper une base en plusieurs morceaux pour alléger et paralléliser les traitements
DénormalisationDupliquer les données pour réduire le nombre de jointures nécessaires
Amélioration des performancesInutile pour la haute-disponibilitéEst-ce encore un modèle relationnel ?
![Page 32: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/32.jpg)
Théorème de Brewer
Dans un environnement distribué, il est impossible de garantir à la fois :
La consistanceLa disponibilitéLa tolérance aux pannes
![Page 33: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/33.jpg)
Théorème de Brewer
Dans un environnement distribué, il est impossible de garantir à la fois :
La consistanceLa disponibilitéLa tolérance aux pannes
Haute-disponibilité : consistance réduite
![Page 34: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/34.jpg)
Modèles de duplication de données
CentraliséServeur de méta-données uniqueMultiples serveurs de données
DécentraliséDonnées réparties sur plusieurs serveurs en fonction d'une clé de hachage
![Page 35: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/35.jpg)
Et le cloud computing ?
Virtualisation des serveursUtilisation de ressources à la demande
![Page 36: Architectures réparties en environnement web](https://reader036.fdocuments.net/reader036/viewer/2022062614/54700c51b4af9fbe0a8b460d/html5/thumbnails/36.jpg)
Participer à des projets intéressants ?
FineFSSystème de fichiers redondé écrit en PHPComplètement décentraliséSynchrone et asynchronePlus rapide que Memcache en lecture
FineDBBase de données non relationnelleOrienté document (stockage JSON)Stockage basé sur FineFS