SlideShare uma empresa Scribd logo
1 de 37
Architecture répartie en environnement Web
[object Object],[object Object],[object Object],[object Object]
« 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.
Hébergement mutualisé Partage de ressources Bon marché Fiable Possibilités et ressources limitées
Serveur dédié Ressources dédiées Puissant Mauvaise fiabilité Administration ?
Évolution verticale ( scaling in ) Augmentation des capacités du serveur Facile à mettre en œuvre Fiabilité limitée Repousse juste la limite
Évolution horizontale ( scaling out ) Augmentation du nombre de serveurs Théoriquement illimité Fiabilité par redondance Complexe à mettre en œuvre
Anatomie d'un serveur Matériel Processeur(s) Mémoire vive Disque(s) dur(s)
Anatomie d'un serveur Système d'exploitation Linux, Windows, Mac OS X, Solaris, BSD, ...
Anatomie d'un serveur Applicatif Serveur HTTP (Apache, Lighttpd, Nginx, …) Application (JEE, PHP, Perl,  Ruby, .NET, ...)
Anatomie d'un serveur Stockage de fichiers Disque dur local
Anatomie d'un serveur Base de données MySQL, PostgreSQL, Oracle, SQL Server, DB2, Informix, ...
Applicatif : bonne scalabilité Installation identique sur chaque serveur Répartition de charge Haute disponibilité
Problèmes ? Base de données Stockage de fichiers
[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object]
Le vrai problème ? Le coût !
Les solutions existent (il suffit d'être millionnaire) Cluster base de données (ex : Oracle RAC sur serveurs SUN) Baies de stockage (ex : NetApp)
Frontaux web Serveurs de fichiers (NAS / SAN) Base de données (Oracle RAC, MySQL cluster, ...)
Réplication mono-directionnelle
Ces solutions sont chères Impossible de démarrer un projet en utilisant ces technologies
Ces solutions sont chères Impossible de démarrer un projet en utilisant ces technologies Concrètement, on fait quoi ?
Scale in + scale out Lectures Écritures
Scale in + scale out + réplication Écritures Lectures en local Réplication
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
Scale in + scale out + cache Écritures Lectures en cache Requêtes pour remplir le cache
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é.
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
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 !" } ] }, { ... } , { ... } ] }
Solutions SQL alternatives Sharding Découper une base en plusieurs morceaux pour alléger et paralléliser les traitements Dénormalisation Dupliquer les données pour réduire le nombre de jointures nécessaires
Solutions SQL alternatives Sharding Découper une base en plusieurs morceaux pour alléger et paralléliser les traitements Dénormalisation Dupliquer les données pour réduire le nombre de jointures nécessaires Amélioration des performances Inutile pour la haute-disponibilité Est-ce encore un modèle relationnel ?
Théorème de Brewer Dans un environnement distribué, il est impossible de garantir à la fois : La consistance La disponibilité La tolérance aux pannes
Théorème de Brewer Dans un environnement distribué, il est impossible de garantir à la fois : La consistance La disponibilité La tolérance aux pannes Haute-disponibilité : consistance réduite
Modèles de duplication de données Centralisé Serveur de méta-données unique Multiples serveurs de données Décentralisé Données réparties sur plusieurs serveurs en fonction d'une clé de hachage
Et le cloud computing ? Virtualisation des serveurs Utilisation de ressources à la demande
Participer à des projets intéressants ? FineFS Système de fichiers redondé écrit en PHP Complètement décentralisé Synchrone et asynchrone Plus rapide que Memcache en lecture FineDB Base de données non relationnelle Orienté document (stockage JSON) Stockage basé sur FineFS
geek-directeur-technique.com/udm finefs.googlecode.com finedb.googlecode.com [email_address]

Mais conteúdo relacionado

Mais procurados

DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudVictor Coustenoble
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQLebiznext
 
Cloud design patterns
Cloud design patternsCloud design patterns
Cloud design patternsPascal Laurin
 
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...MongoDB
 
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 CassandraVictor Coustenoble
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysVictor Coustenoble
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
Performance barcampfinal
Performance barcampfinalPerformance barcampfinal
Performance barcampfinalOxalide
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016Guillaume Nocent
 
La performance de vos applications Drupal
La performance de vos applications DrupalLa performance de vos applications Drupal
La performance de vos applications DrupalOxalide
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databasesCédric Villa
 

Mais procurados (20)

DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le Cloud
 
Base donnee MYSQL
Base donnee MYSQLBase donnee MYSQL
Base donnee MYSQL
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
Cloud design patterns
Cloud design patternsCloud design patterns
Cloud design patterns
 
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
Morning with MongoDB Paris 2012 - Cas d'usages courant en entreprise. Présent...
 
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
 
noSQL
noSQLnoSQL
noSQL
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Performance barcampfinal
Performance barcampfinalPerformance barcampfinal
Performance barcampfinal
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016Présentation JSS2015 - Le Query Store de SQL Server 2016
Présentation JSS2015 - Le Query Store de SQL Server 2016
 
La performance de vos applications Drupal
La performance de vos applications DrupalLa performance de vos applications Drupal
La performance de vos applications Drupal
 
Le flash, est-ce pour moi ?
Le flash, est-ce pour moi ? Le flash, est-ce pour moi ?
Le flash, est-ce pour moi ?
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databases
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 
Haute disponibilité jss2012
Haute disponibilité jss2012Haute disponibilité jss2012
Haute disponibilité jss2012
 

Semelhante a Architectures réparties en environnement web

Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Microsoft Technet France
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAmazon Web Services
 
Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Microsoft
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéChristophe Laporte
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...AZUG FR
 
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Microsoft Technet France
 
Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMicrosoft Technet France
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs Microsoft
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
Play SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User GroupPlay SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User Grouparagot1
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeMicrosoft Technet France
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Jean-Philippe PINTE
 
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...Marc Gagnon
 
Future Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big DataFuture Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big DataMathias Kluba
 
AWS Paris Summit 2014 - T3 - Architecturer avec AWS pour des millions d'util...
AWS Paris Summit 2014 - T3 -  Architecturer avec AWS pour des millions d'util...AWS Paris Summit 2014 - T3 -  Architecturer avec AWS pour des millions d'util...
AWS Paris Summit 2014 - T3 - Architecturer avec AWS pour des millions d'util...Amazon Web Services
 
Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Nicolas Georgeault
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...Patrick Guimonet
 
[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribué[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribuéGroupe D.FI
 
Paris Tug - Session d'octobre
Paris Tug - Session d'octobreParis Tug - Session d'octobre
Paris Tug - Session d'octobreGeoffrey Felix
 
cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdfhbadir
 

Semelhante a Architectures réparties en environnement web (20)

Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...Monter en charge, tester et surveiller avec une application Windows Azure : l...
Monter en charge, tester et surveiller avec une application Windows Azure : l...
 
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévuAWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
AWS Summit Paris - Track 2 - Session 2 - Préparez-vous à l'imprévu
 
Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?Les données on-premise et dans le cloud. Quelles options ?
Les données on-premise et dans le cloud. Quelles options ?
 
JSS2013 : Haute disponibilité
JSS2013 : Haute disponibilitéJSS2013 : Haute disponibilité
JSS2013 : Haute disponibilité
 
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
Gab17 lyon - La BI traditionnelle est une histoire du passée. Impacts de la r...
 
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
 
Monter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows AzureMonter des environnements dev test efficaces avec Windows Azure
Monter des environnements dev test efficaces avec Windows Azure
 
SQL Server et les développeurs
SQL Server et les développeurs SQL Server et les développeurs
SQL Server et les développeurs
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Play SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User GroupPlay SQL at PostgreSQL Lyon User Group
Play SQL at PostgreSQL Lyon User Group
 
Stockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le mondeStockage Cloud : il y en aura pour tout le monde
Stockage Cloud : il y en aura pour tout le monde
 
Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)Webséminaire DBaaS (Novembre 2014)
Webséminaire DBaaS (Novembre 2014)
 
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
SharePoint en action 2013 - IT-04 - Virtualisation de SharePoint - Jean-Pierr...
 
Future Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big DataFuture Of Data Paris - BI and Big Data
Future Of Data Paris - BI and Big Data
 
AWS Paris Summit 2014 - T3 - Architecturer avec AWS pour des millions d'util...
AWS Paris Summit 2014 - T3 -  Architecturer avec AWS pour des millions d'util...AWS Paris Summit 2014 - T3 -  Architecturer avec AWS pour des millions d'util...
AWS Paris Summit 2014 - T3 - Architecturer avec AWS pour des millions d'util...
 
Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012Sql Server et SharePoint le couple de l'année 2012
Sql Server et SharePoint le couple de l'année 2012
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
 
[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribué[Café techno] Optimiser le coût de vos données avec DB2 distribué
[Café techno] Optimiser le coût de vos données avec DB2 distribué
 
Paris Tug - Session d'octobre
Paris Tug - Session d'octobreParis Tug - Session d'octobre
Paris Tug - Session d'octobre
 
cours06-nosql.pdf
cours06-nosql.pdfcours06-nosql.pdf
cours06-nosql.pdf
 

Mais de Amaury Bouchard

De 0 à 10 millions de visiteurs uniques avec les moyens d'une startup
De 0 à 10 millions de visiteurs uniques avec les moyens d'une startupDe 0 à 10 millions de visiteurs uniques avec les moyens d'une startup
De 0 à 10 millions de visiteurs uniques avec les moyens d'une startupAmaury Bouchard
 
Créer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureCréer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureAmaury Bouchard
 
Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)
Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)
Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)Amaury Bouchard
 
Démons en PHP, de inetd à ZeroMQ
Démons en PHP, de inetd à ZeroMQDémons en PHP, de inetd à ZeroMQ
Démons en PHP, de inetd à ZeroMQAmaury Bouchard
 
De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010Amaury Bouchard
 
De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010Amaury Bouchard
 
De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010Amaury Bouchard
 
De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010Amaury Bouchard
 

Mais de Amaury Bouchard (8)

De 0 à 10 millions de visiteurs uniques avec les moyens d'une startup
De 0 à 10 millions de visiteurs uniques avec les moyens d'une startupDe 0 à 10 millions de visiteurs uniques avec les moyens d'une startup
De 0 à 10 millions de visiteurs uniques avec les moyens d'une startup
 
Créer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heureCréer une base NoSQL en 1 heure
Créer une base NoSQL en 1 heure
 
Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)
Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)
Organisation personnelle : GTD et matrice d'Eisenhower (Lightning Talk)
 
Démons en PHP, de inetd à ZeroMQ
Démons en PHP, de inetd à ZeroMQDémons en PHP, de inetd à ZeroMQ
Démons en PHP, de inetd à ZeroMQ
 
De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010De geek à directeur technique - Conférence SupInfo 2010
De geek à directeur technique - Conférence SupInfo 2010
 
De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010De geek à directeur technique - Conférence Université de Montréal 2010
De geek à directeur technique - Conférence Université de Montréal 2010
 
De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010De geek à directeur technique - Conférence UQÀM 2010
De geek à directeur technique - Conférence UQÀM 2010
 
De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010De geek à directeur technique - Conférence Epitech 2010
De geek à directeur technique - Conférence Epitech 2010
 

Architectures réparties en environnement web

  • 1. Architecture répartie en environnement Web
  • 2.
  • 3. « 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.
  • 4. Hébergement mutualisé Partage de ressources Bon marché Fiable Possibilités et ressources limitées
  • 5. Serveur dédié Ressources dédiées Puissant Mauvaise fiabilité Administration ?
  • 6. Évolution verticale ( scaling in ) Augmentation des capacités du serveur Facile à mettre en œuvre Fiabilité limitée Repousse juste la limite
  • 7. Évolution horizontale ( scaling out ) Augmentation du nombre de serveurs Théoriquement illimité Fiabilité par redondance Complexe à mettre en œuvre
  • 8. Anatomie d'un serveur Matériel Processeur(s) Mémoire vive Disque(s) dur(s)
  • 9. Anatomie d'un serveur Système d'exploitation Linux, Windows, Mac OS X, Solaris, BSD, ...
  • 10. Anatomie d'un serveur Applicatif Serveur HTTP (Apache, Lighttpd, Nginx, …) Application (JEE, PHP, Perl, Ruby, .NET, ...)
  • 11. Anatomie d'un serveur Stockage de fichiers Disque dur local
  • 12. Anatomie d'un serveur Base de données MySQL, PostgreSQL, Oracle, SQL Server, DB2, Informix, ...
  • 13. Applicatif : bonne scalabilité Installation identique sur chaque serveur Répartition de charge Haute disponibilité
  • 14. Problèmes ? Base de données Stockage de fichiers
  • 15.
  • 16.
  • 17. Le vrai problème ? Le coût !
  • 18. Les solutions existent (il suffit d'être millionnaire) Cluster base de données (ex : Oracle RAC sur serveurs SUN) Baies de stockage (ex : NetApp)
  • 19. Frontaux web Serveurs de fichiers (NAS / SAN) Base de données (Oracle RAC, MySQL cluster, ...)
  • 21. Ces solutions sont chères Impossible de démarrer un projet en utilisant ces technologies
  • 22. Ces solutions sont chères Impossible de démarrer un projet en utilisant ces technologies Concrètement, on fait quoi ?
  • 23. Scale in + scale out Lectures Écritures
  • 24. Scale in + scale out + réplication Écritures Lectures en local Réplication
  • 25. 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
  • 26. Scale in + scale out + cache Écritures Lectures en cache Requêtes pour remplir le cache
  • 27. 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é.
  • 28. 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
  • 29. 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 !" } ] }, { ... } , { ... } ] }
  • 30. Solutions SQL alternatives Sharding Découper une base en plusieurs morceaux pour alléger et paralléliser les traitements Dénormalisation Dupliquer les données pour réduire le nombre de jointures nécessaires
  • 31. Solutions SQL alternatives Sharding Découper une base en plusieurs morceaux pour alléger et paralléliser les traitements Dénormalisation Dupliquer les données pour réduire le nombre de jointures nécessaires Amélioration des performances Inutile pour la haute-disponibilité Est-ce encore un modèle relationnel ?
  • 32. Théorème de Brewer Dans un environnement distribué, il est impossible de garantir à la fois : La consistance La disponibilité La tolérance aux pannes
  • 33. Théorème de Brewer Dans un environnement distribué, il est impossible de garantir à la fois : La consistance La disponibilité La tolérance aux pannes Haute-disponibilité : consistance réduite
  • 34. Modèles de duplication de données Centralisé Serveur de méta-données unique Multiples serveurs de données Décentralisé Données réparties sur plusieurs serveurs en fonction d'une clé de hachage
  • 35. Et le cloud computing ? Virtualisation des serveurs Utilisation de ressources à la demande
  • 36. Participer à des projets intéressants ? FineFS Système de fichiers redondé écrit en PHP Complètement décentralisé Synchrone et asynchrone Plus rapide que Memcache en lecture FineDB Base de données non relationnelle Orienté document (stockage JSON) Stockage basé sur FineFS