XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. PHP: Hypertext Preprocessor
  3. Pluf - Framework en PHP5

Habitudes pour la montée en charge des applications web PHP

The 2010-06-07 at 18:51 by Loïc d'Anterroches filed under Pluf - Framework en PHP5.

ou pourquoi je hais les présentations faites pour des experts qui ensuite collent leurs slides sur le réseau. J’ai déjà critiqué pour cela un des membres actifs de Symfony et je vais vous faire une lecture critique des slides de Habits of Highly Scalable Web Applications.

Notez que probablement, dans le podcast de 1h, des explications plus détaillées sont distillées mais personne ne va l’écouter et tout le monde va regarder le pdf.

Le problème de base est que vous ne trouverez pas le moindre vrai point d’interrogation dans ces slides alors que la base pour la montée en charge c’est de se poser les bonnes questions et d’avoir les mesures pour prendre ensuite les bonnes décisions.

En gros, il présente du déjà dit et donne comme chemin pour la montée en charge de l’application web :

  1. on commence tout simple avec un serveur
  2. puis on découpe serveur web + base de données
  3. puis on ajoute des machines sur chaque niveau en mettant des esclaves pour la base de données
  4. puis on met en cache (c’est traité en dernier dans les slides, mais bon, on sait qu’il faut faire cela avant les esclaves)

Comme les questions sont rhétoriques sans fondamentaux, les réponses sont directes sans nuance et analyse :

  • slides 13/14 l’option de mettre un slave en face de chaque serveur est rejetée sans faire remarquer que si le load balancer sur le web serveur hash par ip, on peut faire travailler chaque slave pour un groupe d’utilisateur donné et donc avoir une meilleure mise en cache des données au niveau de l’OS et donc éviter des accès disques inutiles tout en gardant la flexibilité de passer de l’un à l’autre en cas de besoin si on a une erreur.
  • l’étape 4 du partitioning arrive après les slaves. Pourquoi ? Google partitionne avant de faire du slave car l’index ne tient pas sur un serveur. Cheméo c’est pareil, je dois faire du partitionnement avant d’avoir des slaves car sinon je finis par faire de l’accès disque.
  • slide 31 pour les bonnes pratiques de mise en cache, write through cache arrive en premier. Il oublie que cela dépend des besoins, on peut avoir une cache qui dit, je n’ai rien et donne rien (perte "partielle" de l’information) et on laisse en tâche de fond un write back qui va mettre à jour.

En gros, une liste de recettes mais pas le pourquoi. Le truc pour faire grandir votre site est simple, tout simple, tellement que cela ne permet pas d’écrire un livre et vendre des heures de consultant par milliers. Il est connu depuis des dizaines d’années dans l’industrie, c’est connu dans le grand public sous le nom de la méthode de Toyota et cela s’appelle la gestion intégrale de la productivité ou total productivity management (TPM).

TPM, c’est simple :

  1. on mesure tout ce qui se passe ;
  2. on cherche les goulots d’étranglement ;
  3. on supprime les goulots en utilisant les bons moyens ;
  4. on recommence ad vitam eternam.

Entre la productivité d’une raffinerie pour mieux convertir le pétrole en essence et diminuer les besoins d’aller faire de l’ultra deep offshore et la productivité de votre site web (la capacité à répondre aux requêtes dans les temps impartis) il n’y a pas de différence de méthodologie.

Mais cela veut dire que la première étape pour un site qui monte en charge c’est de tout écrire et garder des logs de performance pour savoir exactement quels sont les points problématiques. C’est ensuite que l’analyse des tendances est possible et qu’il est alors possible d’agir avant que le problème ne survienne et que si le problème survient, on peut faire quelque chose en connaissance de cause.

La prochaine fois que vous lisez un document avec des recettes, posez-vous la question du pourquoi avant d’appliquer une recette et vérifier d’où vient votre problème avec vos logs. Toutes les recettes dans cette présentation sont bonnes, mais il manque le contexte, voilà pourquoi je hais le powerpoint sur le réseau.

Comments from readers

Arkh said:

L'idée de mettre des slides seuls est déjà bien conne. De bons slides pour une bonne présentation ne doivent pas être détaillés et servir de support à ce qui est dit. Non pas être une répétition.
Donc, la plupart du temps, un bon slide est un slide qui ne sert à rien tout seul.
Si on souhaite que le public lise, autant distribuer des articles imprimés.

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS