Scaling Mozilla's websites with PHP
08/12/2008 de 16:30 à 17:30 - amphi
Every instance of Firefox calls home every day.
mozilla.com, addons.mozilla.org, and support.mozilla.com, along with many other Mozilla sites, serve hundreds of millions of pages each day. All of Mozilla's websites are built with PHP, and frequently with third party Open Source PHP projects like CakePHP, Drupal, and TikiWiki.
In this session I'll discuss some of the challenges we have faced, including:
- Our infrastructure and scaling and performance analysis approach,
- The challenges and rewards of basing our websites on existing Open Source projects,
- Localization,
- Security issues
Laura Thomson (Mozilla Foundation)
Laura Thomson is a Senior Software Engineer at Mozilla Corporation on the web team, after spending much of the previous decade as a consultant and trainer on various Open Source technologies.
Laura is the co-author of PHP and MySQL Web Development and MySQL Tutorial. She is a veteran speaker at Open Source conferences worldwide.
(Copié du site de l'AFUP)
Actualités de cette session
Des livres sont entrain d'arriver ! Probablement la séance de dédicaces pour clôturer cette première journée riche en conférences. Je serai présent ce soir à l'apéro et dîner PHP qui est organisé par l'AFUP, histoire de pouvoir discuter davantage avec tous les experts de cet événement.
Fin de la session, ce fut un peu court mais intéressant :) Time for questions !
On apprend que le trafic moyen sur le site de Mozilla génère 2 Gb de données par seconde et qu'au moment du pic du Download Day, cette charge a été multipliée par 7.
Laura nous présente à présent ses slides sur les tests de montée en charge. A chaque itération de développement des batteries de tests de montées en charge sont lancées afin de valider les performances et d'identifier les parties qui peuvent être améliorées davantage.
Pour assurer le Jour J du Download Day de Firefox 3, des tets de montée en charge ont été effectués et des serveurs supplémentaires ont été installés pour supporter la charge.
Mozilla utilise memcache pour gérer les problématique de cache des pages entières et des sessions.
Concernant la réplication de données, Laura nous explique que toutes les requêtes SQL viennent taper sur le serveur maître avant d'être redirigées vers les esclaves. Les requêtes SQL sont exécutées par les esclaves et toutes les autres par le maître.
L'optimisation des bases de données se joue cette fois-ci sur :
- La réduction du nombre de requêtes SQL (suppression des requêtes inutiles) et mise en cache des requêtes SQL,
- Les tables utilisant le moteur de stockage MyISAM utilisent à présent le moteur transactionnel InnoDB,
- L'ajout d'indexes sur les tables,
- Log et identification des slow queries,
- Utilisation de memcache
Un petit slide sur les includes de PHP pour nous informer que les développeurs de Mozilla ont cherché à améliorer la scabilité des leurs applications en identifiant et réduisant les includes() inutiles (includes avant une redirection par exemple).