Caching avancé et stratégie d’optimisation pour des applications web à forte charge

Avant de détailler les systèmes de caching que l’on peut trouver au sein d’une infrastructure, je vous recommande de lire le billet sur le système de cache fichier pour bien appréhender le mécanisme d’optimisation sous-jacent.

pour répondre aux problématiques de montée en charge des services, on aura recourt à plusieurs niveaux de cache. Cette stratégie d’optimisation est faîte de manière globale et prend en compte tous les paramètres de l’infrastructure et de l’application pour être optimale. Ces moyens permettent de soulager l’infrastructure et de résorber des goulots d’étranglements. Le design et l’intégration de ces solutions imposent tout de même d’avoir les réflexions suivantes :

  • Est-ce que nous devons tout mettre en cache ?
  • Est-ce que tout est cachable ?
  • Le mécanisme d’invalidation du cache peut-il remettre en cause le choix technique ou impose-t-il des développements complémentaires ?

Lire la suite

Système de cache fichier PHP

Dans un environnement mutualisé, il est quasiment impossible d’avoir à disposition un système de cache de type mémoire comme «memcache» ou un gestionnaire de cache d’opcode comme « APC ».
Pour améliorer les performances de votre application, il vous reste deux possibilités :

  • améliorer le code PHP,
  • mettre en place un système de cache fichier.

Nous ne traiterons pas du premier point et allons voir comment améliorer une application PHP en utilisant un système de cache fichier en PHP.

Lire la suite

Les systèmes de cache pour améliorer les performances de vos applications web

Un système de cache ou « caching system » améliore dans certaines conditions la performance des applications web. Son rôle est de retourner à l’application des éléments (objets php, requêtes SQL, pages HTML, Bloc de contenu dynamique …) déjà calculés ou précompilés. Cela évite de refaire le travail à chaque itération. La mise en place d’une gestion optimisée du système de cache améliore de manière significative les performances de vos applications !

Lire la suite

JQUERY & AJAX jouent aux TRIGGERS

On ne présente plus JQUERY et l’évènement AJAX qui, à eux deux, ont fait la web révolution. Les «triggers» ou déclencheurs, sont bien connus des DBA et très largement utilisés. Du coté web, ce mécanisme n’est pas systématiquement utilisé voire pas du tout. Pourtant, les triggers sont bien présents dans la librairie JQUERY.

Très bien me diriez vous, mais encore ?. En regardant la capture d’écran ci-dessous, qui montre le code d’un site de vente en ligne, vous remarquerez la répétition de l’appel «$.ajax». L’idée est donc de factoriser ces appels et d’utiliser les triggers pour faire exécuter les tâches adéquates lorsque la réponse est un succès ( $.ajax({success: function(){} }; ) ou un échec ( $.ajax({error: function(){} }; ).

Duplication de l'appel $.ajax au sein des fonctions JS

Visualiser la DEMO et téléchargez les sources de cette dernière.

Lire la suite

Gearman fait son job

Gearman est un service de «pool request». Il reçoit d’un côté les demandes de traitement à faire (jobs) et transmet les ordres d’exécution aux workers qui réaliseront la tâche demandée.

    Les «jobs» demandés à Gearman peuvent être :

  • synchrone : le client attend que Gearman renvoie le résultat de l’exécution de la tâche,
  • asynchrone : le client demande à faire faire un traitement par Gearman en tache de fond et n’attend aucun résultat en retour.

Lire la suite