SlideShare a Scribd company logo
1 of 21
Download to read offline
Archictectures
PHP/MySQL
PHP Québec, réunion mensuelle
4 octobre 2007,
Montréal, Québec, Canada
Qui parle?
 Damien Seguy
 Co-phpère des éléphpants
 Hébergements nexen Services
 damien.seguy@nexen.net
Architecture
 Organiser son application pour dépasser un
 ou deux serveurs
 Être capable d'ajouter du matériel
 Assurer la montée en charge
Quel est le problème?


                  Trop de traitements?
                  Trop de données?
                  Trop de lectures?
                  Trop d'écritures?
Critères d'architecture
 Performances
   Répond vite
 Haute disponibilité
   Toujours accessible
   Aucun passage obligé
 Evolutivité
   Ce qui monte doit redescendre
   Que se passe-t-il quand on doit ajouter un
   serveur?
Différentes approches




         Scale up   Scale out
Scale up
 Syndrôme du gros serveur
 Très cher
   à l'achat
   à l'entretien
 Très faible impact sur le code
 Résout les problèmes
   Temporairement
 Aucun moyen de revenir en arrière!
Scale out
 Syndrôme de la ferme de serveurs
 Économique à raisonnable
 Evolutif à la carte
 Impact sur l'organisation de
 l'application
 Possibilité de virtualisation
Multiplication des serveur
Web
Multiplication des serveurs Web
 Beaucoup de travail pour PHP
   Personnalisation
 Solutions
   Exporter les données statiques
   dans un CDN
     Akamaï, Amazon S3,Youtube,
   Mises en cache temporaire
     HTML, code PHP, données
 Stratégie du 'Share nothing'
Multiplication des sites Web
 Les sessions : il faut partager
   Session via NFS
   Session dans un filer
   Session en base de données
   Zend platform
   Session en memcache
Base de données

                Lecture   Écriture     Écueil


  Réplication    Oui       Non           Lag


   Cluster       Oui        Oui      Installation


  Partitions     Non        Oui      Application
Réplication

  Écritures




              Lectures
Réplication
 Idéale pour les sauvegardes
 Limitée par les écritures
 Le maître ne travaille pas
   Les esclaves au turbin
 Le maître est un point critique
   On double le maître pour HA
 Le persistant problème de lag
   Les esclaves arriveront-ils à
   rattraper un jour?
Solutions de réplications
 Doubler le maître
 Réplication synchrone Google
 Diriger les écritures sur le maître, et
 les lectures seules sur les esclaves
 Il faut mesurer et maîtriser son retard
 de réplication
Partitions
 Découpage des données en plusieurs
 partitions
 Permet de résoudre les problèmes de
 taille de table
 Permet de régler les problèmes
 d'écritures
 Conduit à des tables de taille
 raisonnable
 Permet les opérations paralelles
 Les jointures deviennent difficiles
Partitions + réplication : shard
 Utilisé initialement chez Flickr
 Réplication réciproque, maître-maître
 Les écritures vont sur les deux
 serveurs
 Facilité à configurer et comprendre
 Haute disponibilité
 Pas de gaspillage de ressource
Cluster

           SQL
                     Gestion




          Stockage
Cluster
 Pas avant 4 machines
 Les performances individuelles
 diminuent
 Elles n'augmentent pas vite
 Beaucoup d'effort de configuration
 C'est l'avenir
Questions?
http://www.nexen.net/
conferences.php
damien.seguy@nexen.net
Elements graphiques

More Related Content

What's hot

Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...Microsoft
 
Performance des sites dynamiques : une histoire de cache à tous les niveaux
Performance des sites dynamiques : une histoire de cache à tous les niveauxPerformance des sites dynamiques : une histoire de cache à tous les niveaux
Performance des sites dynamiques : une histoire de cache à tous les niveauxMy_Sic
 
Améliorer la rapidité de son site web
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site webEmmanuel Gautier
 
Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...
Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...
Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...Amazon Web Services
 
Ting - Un datamapper PHP sous stéroïdes
Ting - Un datamapper PHP sous stéroïdesTing - Un datamapper PHP sous stéroïdes
Ting - Un datamapper PHP sous stéroïdesXavier Leune
 
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioTrack 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioAmazon Web Services
 
La performance de vos applications Drupal
La performance de vos applications DrupalLa performance de vos applications Drupal
La performance de vos applications DrupalOxalide
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalSkilld
 
Amélioration des performances eCommerce - Webinaire par aYaline
Amélioration des performances eCommerce - Webinaire par aYalineAmélioration des performances eCommerce - Webinaire par aYaline
Amélioration des performances eCommerce - Webinaire par aYalineaYaline
 
Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2
Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2
Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2Amazon Web Services
 
Viseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingViseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingthavo001
 
Track 3 - Atelier 1 - Optimisation des coûts avec AWS
Track 3 - Atelier 1 - Optimisation des coûts avec AWSTrack 3 - Atelier 1 - Optimisation des coûts avec AWS
Track 3 - Atelier 1 - Optimisation des coûts avec AWSAmazon Web Services
 
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Ori Pekelman
 
Css maintenable - Morgane Hervé
Css maintenable - Morgane HervéCss maintenable - Morgane Hervé
Css maintenable - Morgane HervéWeb à Québec
 
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
 

What's hot (16)

Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technol...
 
Performance des sites dynamiques : une histoire de cache à tous les niveaux
Performance des sites dynamiques : une histoire de cache à tous les niveauxPerformance des sites dynamiques : une histoire de cache à tous les niveaux
Performance des sites dynamiques : une histoire de cache à tous les niveaux
 
Améliorer la rapidité de son site web
Améliorer la rapidité de son site webAméliorer la rapidité de son site web
Améliorer la rapidité de son site web
 
Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...
Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...
Un Voyage dans le Cloud: Les Meilleures Pratiques Pour Démarrer Dans Le Cloud...
 
Ting - Un datamapper PHP sous stéroïdes
Ting - Un datamapper PHP sous stéroïdesTing - Un datamapper PHP sous stéroïdes
Ting - Un datamapper PHP sous stéroïdes
 
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par EdifixioTrack 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
Track 1 - Atelier 3 - Implémentation de cloud d'entreprise par Edifixio
 
Le flash, est-ce pour moi ?
Le flash, est-ce pour moi ? Le flash, est-ce pour moi ?
Le flash, est-ce pour moi ?
 
La performance de vos applications Drupal
La performance de vos applications DrupalLa performance de vos applications Drupal
La performance de vos applications Drupal
 
Drupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances DrupalDrupagora 2012 Optimisation performances Drupal
Drupagora 2012 Optimisation performances Drupal
 
Amélioration des performances eCommerce - Webinaire par aYaline
Amélioration des performances eCommerce - Webinaire par aYalineAmélioration des performances eCommerce - Webinaire par aYaline
Amélioration des performances eCommerce - Webinaire par aYaline
 
Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2
Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2
Track 1 - Atelier 1 - Votre première semaine avec Amazon EC2
 
Viseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hostingViseo intro Prive Public Cloud vs hosting
Viseo intro Prive Public Cloud vs hosting
 
Track 3 - Atelier 1 - Optimisation des coûts avec AWS
Track 3 - Atelier 1 - Optimisation des coûts avec AWSTrack 3 - Atelier 1 - Optimisation des coûts avec AWS
Track 3 - Atelier 1 - Optimisation des coûts avec AWS
 
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
Construire Des Applications Cloud Natives - SymfonyLive Paris 2016
 
Css maintenable - Morgane Hervé
Css maintenable - Morgane HervéCss maintenable - Morgane Hervé
Css maintenable - Morgane Hervé
 
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...
 

Viewers also liked

Gestion de-qualité
Gestion de-qualitéGestion de-qualité
Gestion de-qualitéAymane Touil
 
#LeLuxeEstVivant - Trendreport #1 juin2015
#LeLuxeEstVivant - Trendreport #1 juin2015#LeLuxeEstVivant - Trendreport #1 juin2015
#LeLuxeEstVivant - Trendreport #1 juin2015# LeLuxeEstVivant
 
Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...
Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...
Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...Samuel Goëta
 
Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...
Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...
Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...cedocel
 
Evans Cycles Mark Lane
Evans Cycles Mark LaneEvans Cycles Mark Lane
Evans Cycles Mark LaneJames Duguid
 
Las Tablas en HTML
Las Tablas en HTMLLas Tablas en HTML
Las Tablas en HTMLOVAWEB
 
SHM_M4_U1_portafolio proyecto final
SHM_M4_U1_portafolio proyecto finalSHM_M4_U1_portafolio proyecto final
SHM_M4_U1_portafolio proyecto finalmaestrasusi811
 
Assuremieux. Par Jehan de Castet, Assuremieux
Assuremieux. Par Jehan de Castet, AssuremieuxAssuremieux. Par Jehan de Castet, Assuremieux
Assuremieux. Par Jehan de Castet, AssuremieuxL'Atelier BNP Paribas
 
Biodigestor de bidón
Biodigestor de bidónBiodigestor de bidón
Biodigestor de bidónthiago11cano
 

Viewers also liked (20)

Concreto vs acero
Concreto vs aceroConcreto vs acero
Concreto vs acero
 
Grapette
GrapetteGrapette
Grapette
 
Gestion de-qualité
Gestion de-qualitéGestion de-qualité
Gestion de-qualité
 
#LeLuxeEstVivant - Trendreport #1 juin2015
#LeLuxeEstVivant - Trendreport #1 juin2015#LeLuxeEstVivant - Trendreport #1 juin2015
#LeLuxeEstVivant - Trendreport #1 juin2015
 
Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...
Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...
Ouvrir les coulisses de l’opendata : pour une ethnographie des pratiques de l...
 
Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...
Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...
Libqual au SCD Paris Descartes : démarche d'appropriation de l'enquête en int...
 
Daily
DailyDaily
Daily
 
Partage Fichiers2
Partage Fichiers2Partage Fichiers2
Partage Fichiers2
 
Cecrl
CecrlCecrl
Cecrl
 
Trabajo final
Trabajo finalTrabajo final
Trabajo final
 
Prescours1 Pbt1000
Prescours1 Pbt1000Prescours1 Pbt1000
Prescours1 Pbt1000
 
Evans Cycles Mark Lane
Evans Cycles Mark LaneEvans Cycles Mark Lane
Evans Cycles Mark Lane
 
SISTEMAS DE INFORMACIÓN
SISTEMAS DE INFORMACIÓN SISTEMAS DE INFORMACIÓN
SISTEMAS DE INFORMACIÓN
 
Variables Aleatorias
Variables AleatoriasVariables Aleatorias
Variables Aleatorias
 
Mi perfil
Mi perfilMi perfil
Mi perfil
 
Las Tablas en HTML
Las Tablas en HTMLLas Tablas en HTML
Las Tablas en HTML
 
SHM_M4_U1_portafolio proyecto final
SHM_M4_U1_portafolio proyecto finalSHM_M4_U1_portafolio proyecto final
SHM_M4_U1_portafolio proyecto final
 
Assuremieux. Par Jehan de Castet, Assuremieux
Assuremieux. Par Jehan de Castet, AssuremieuxAssuremieux. Par Jehan de Castet, Assuremieux
Assuremieux. Par Jehan de Castet, Assuremieux
 
Word 2010-2013 (IV)
Word 2010-2013 (IV)Word 2010-2013 (IV)
Word 2010-2013 (IV)
 
Biodigestor de bidón
Biodigestor de bidónBiodigestor de bidón
Biodigestor de bidón
 

Similar to Architectures.Phpquebec1007

Optimiser les performances dans Wordpress
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans WordpressNicolas Juen
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Adyax
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrOxalide
 
Architectures réparties en environnement web
Architectures réparties en environnement webArchitectures réparties en environnement web
Architectures réparties en environnement webAmaury Bouchard
 
Zimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra
 
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
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm
 
Formation Wordpress 3
Formation Wordpress 3Formation Wordpress 3
Formation Wordpress 3robinparisi
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniOlivier DASINI
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Nicolas Silberman
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionMarc Boivin
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
NoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpacesNoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpacesFastConnect
 
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
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Flat File CMS - AgoraCMS 2014
Flat File CMS - AgoraCMS 2014Flat File CMS - AgoraCMS 2014
Flat File CMS - AgoraCMS 2014Laurent Séguin
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableChristophe Villeneuve
 

Similar to Architectures.Phpquebec1007 (20)

Optimiser les performances dans Wordpress
Optimiser les performances dans WordpressOptimiser les performances dans Wordpress
Optimiser les performances dans Wordpress
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
 
Conférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.FrConférence AFUP 20minutes.Fr
Conférence AFUP 20minutes.Fr
 
Architectures réparties en environnement web
Architectures réparties en environnement webArchitectures réparties en environnement web
Architectures réparties en environnement web
 
Zimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and Ceph
 
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...
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft Hyperconvergence
 
Multi-Threading Et Cocoa
Multi-Threading Et CocoaMulti-Threading Et Cocoa
Multi-Threading Et Cocoa
 
Formation Wordpress 3
Formation Wordpress 3Formation Wordpress 3
Formation Wordpress 3
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
Industrialisation des environnements de dev avec Puppet et Amazon (mais en fa...
 
Bien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en productionBien qu'en ligne votre site web n'est probablement pas en production
Bien qu'en ligne votre site web n'est probablement pas en production
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
NoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpacesNoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
NoSQL User Group Paris - 21 Juin 2011 - GigaSpaces
 
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...
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Flat File CMS - AgoraCMS 2014
Flat File CMS - AgoraCMS 2014Flat File CMS - AgoraCMS 2014
Flat File CMS - AgoraCMS 2014
 
Ecrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenableEcrire et déployer une appli PHP maintenable
Ecrire et déployer une appli PHP maintenable
 

More from Damien Seguy

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leedsDamien Seguy
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationDamien Seguy
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeDamien Seguy
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applicationsDamien Seguy
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limogesDamien Seguy
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Damien Seguy
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Damien Seguy
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confooDamien Seguy
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Damien Seguy
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbiaDamien Seguy
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic trapsDamien Seguy
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappesDamien Seguy
 
Code review workshop
Code review workshopCode review workshop
Code review workshopDamien Seguy
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018Damien Seguy
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018Damien Seguy
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3Damien Seguy
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)Damien Seguy
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCDamien Seguy
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018Damien Seguy
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy peopleDamien Seguy
 

More from Damien Seguy (20)

Strong typing @ php leeds
Strong typing  @ php leedsStrong typing  @ php leeds
Strong typing @ php leeds
 
Strong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisationStrong typing : adoption, adaptation and organisation
Strong typing : adoption, adaptation and organisation
 
Qui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le codeQui a laissé son mot de passe dans le code
Qui a laissé son mot de passe dans le code
 
Analyse statique et applications
Analyse statique et applicationsAnalyse statique et applications
Analyse statique et applications
 
Top 10 pieges php afup limoges
Top 10 pieges php   afup limogesTop 10 pieges php   afup limoges
Top 10 pieges php afup limoges
 
Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020Top 10 php classic traps DPC 2020
Top 10 php classic traps DPC 2020
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)
 
Top 10 php classic traps confoo
Top 10 php classic traps confooTop 10 php classic traps confoo
Top 10 php classic traps confoo
 
Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4Tout pour se préparer à PHP 7.4
Tout pour se préparer à PHP 7.4
 
Top 10 php classic traps php serbia
Top 10 php classic traps php serbiaTop 10 php classic traps php serbia
Top 10 php classic traps php serbia
 
Top 10 php classic traps
Top 10 php classic trapsTop 10 php classic traps
Top 10 php classic traps
 
Top 10 chausse trappes
Top 10 chausse trappesTop 10 chausse trappes
Top 10 chausse trappes
 
Code review workshop
Code review workshopCode review workshop
Code review workshop
 
Understanding static analysis php amsterdam 2018
Understanding static analysis   php amsterdam 2018Understanding static analysis   php amsterdam 2018
Understanding static analysis php amsterdam 2018
 
Review unknown code with static analysis php ce 2018
Review unknown code with static analysis   php ce 2018Review unknown code with static analysis   php ce 2018
Review unknown code with static analysis php ce 2018
 
Everything new with PHP 7.3
Everything new with PHP 7.3Everything new with PHP 7.3
Everything new with PHP 7.3
 
Php 7.3 et ses RFC (AFUP Toulouse)
Php 7.3 et ses RFC  (AFUP Toulouse)Php 7.3 et ses RFC  (AFUP Toulouse)
Php 7.3 et ses RFC (AFUP Toulouse)
 
Tout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFCTout sur PHP 7.3 et ses RFC
Tout sur PHP 7.3 et ses RFC
 
Review unknown code with static analysis php ipc 2018
Review unknown code with static analysis   php ipc 2018Review unknown code with static analysis   php ipc 2018
Review unknown code with static analysis php ipc 2018
 
Code review for busy people
Code review for busy peopleCode review for busy people
Code review for busy people
 

Architectures.Phpquebec1007

  • 1. Archictectures PHP/MySQL PHP Québec, réunion mensuelle 4 octobre 2007, Montréal, Québec, Canada
  • 2. Qui parle? Damien Seguy Co-phpère des éléphpants Hébergements nexen Services damien.seguy@nexen.net
  • 3. Architecture Organiser son application pour dépasser un ou deux serveurs Être capable d'ajouter du matériel Assurer la montée en charge
  • 4. Quel est le problème? Trop de traitements? Trop de données? Trop de lectures? Trop d'écritures?
  • 5. Critères d'architecture Performances Répond vite Haute disponibilité Toujours accessible Aucun passage obligé Evolutivité Ce qui monte doit redescendre Que se passe-t-il quand on doit ajouter un serveur?
  • 6. Différentes approches Scale up Scale out
  • 7. Scale up Syndrôme du gros serveur Très cher à l'achat à l'entretien Très faible impact sur le code Résout les problèmes Temporairement Aucun moyen de revenir en arrière!
  • 8. Scale out Syndrôme de la ferme de serveurs Économique à raisonnable Evolutif à la carte Impact sur l'organisation de l'application Possibilité de virtualisation
  • 10. Multiplication des serveurs Web Beaucoup de travail pour PHP Personnalisation Solutions Exporter les données statiques dans un CDN Akamaï, Amazon S3,Youtube, Mises en cache temporaire HTML, code PHP, données Stratégie du 'Share nothing'
  • 11. Multiplication des sites Web Les sessions : il faut partager Session via NFS Session dans un filer Session en base de données Zend platform Session en memcache
  • 12. Base de données Lecture Écriture Écueil Réplication Oui Non Lag Cluster Oui Oui Installation Partitions Non Oui Application
  • 14. Réplication Idéale pour les sauvegardes Limitée par les écritures Le maître ne travaille pas Les esclaves au turbin Le maître est un point critique On double le maître pour HA Le persistant problème de lag Les esclaves arriveront-ils à rattraper un jour?
  • 15. Solutions de réplications Doubler le maître Réplication synchrone Google Diriger les écritures sur le maître, et les lectures seules sur les esclaves Il faut mesurer et maîtriser son retard de réplication
  • 16. Partitions Découpage des données en plusieurs partitions Permet de résoudre les problèmes de taille de table Permet de régler les problèmes d'écritures Conduit à des tables de taille raisonnable Permet les opérations paralelles Les jointures deviennent difficiles
  • 17. Partitions + réplication : shard Utilisé initialement chez Flickr Réplication réciproque, maître-maître Les écritures vont sur les deux serveurs Facilité à configurer et comprendre Haute disponibilité Pas de gaspillage de ressource
  • 18. Cluster SQL Gestion Stockage
  • 19. Cluster Pas avant 4 machines Les performances individuelles diminuent Elles n'augmentent pas vite Beaucoup d'effort de configuration C'est l'avenir