La rapidité de votre site web est cruciale pour une bonne expérience utilisateur. Il est donc important de minimiser autant que possible la charge sur vos ressources telles que la RAM, l'espace disque, le processeur et le réseau.
Pour ce faire, il existe un moyen astucieux d'utiliser votre serveur et votre réseau le plus efficacement possible, tout en maintenant la rapidité de votre site web : la mise en cache.
La mise en cache consiste à stocker temporairement des données pour pouvoir y accéder plus rapidement. En stockant des copies temporaires d'un site web, l'ordinateur n'a plus besoin de régénérer les données. Le site web devient ainsi plus rapide.
L'objectif de la mise en cache est d'accélérer le chargement des sites et des applications web. Des temps de chargement rapides, ainsi qu'une expérience utilisateur optimale sont donc les principaux avantages.
Étant donné que moins de ressources sont utilisées, votre site web sera plus stable en cas de gros pics de fréquentation.
Un site web plus rapide contribue également à l'optimisation pour les moteurs de recherche (SEO) de votre site web.
Pourquoi la mise en cache est-elle si rapide ?
Lorsqu'un internaute souhaite visiter votre site web, une requête est envoyée (via Internet) à votre serveur afin que celui-ci affiche le contenu de la page. Cette requête doit être traitée et fait peser une certaine charge sur la RAM, l'espace disque, le processeur et le réseau. Cela donne lieu à des ralentissements dans le renvoi du contenu.
La mise en cache réduit ce délai en stockant temporairement les données fréquemment consultées à un endroit différent et dans une structure simplifiée. En stockant ces données séparément, celles-ci ne doivent plus être demandées au serveur lors d'une nouvelle visite du site web. La page peut ainsi être affichée beaucoup plus rapidement.
La copie de votre site web qui est stockée dans le cache n'est pas automatiquement mise à jour lorsque des modifications sont apportées à votre site web. Il est donc possible que votre visiteur voie des pages web périmées. Cela est particulièrement problématique si le contenu de votre site web est modifié souvent et rapidement, comme c'est p. ex. le cas pour les sites d'information.
La copie en cache a de toute manière une durée de validité limitée. En général, vous pouvez vous-même définir cette durée de mise en cache. Plus la fréquence des modifications de votre site web est élevée, plus vous devez faire en sorte que les données restent dans le cache pendant une courte période. Une fois le délai de mise en cache dépassé, l'application devra à nouveau demander les données au serveur.
Lorsque les données sources sont modifiées alors qu'elles se trouvent encore dans le cache, l'application doit elle-même supprimer les éléments en question du cache. Cela se fait généralement dans la logique qui est exécutée lors de l'ajout, de la suppression ou de la modification des données sources. L'application recherche ensuite le bon endroit dans le cache pour y supprimer les éléments en question.
Cette action explicite empêche les sites web ou les applications d'afficher des sorties qui ne sont plus d'actualité.
En principe, vous pouvez mettre en cache n'importe quel type de données. Mais pour que le cache soit efficace et pour éviter toute complication supplémentaire, mieux vaut utiliser le cache pour y stocker des données nécessitant beaucoup de ressources pour être calculées :
Concrètement, il s'agit généralement des données suivantes :
Tous les systèmes informatiques mettent automatiquement des données en cache. Même lorsque vous chargez des fichiers à partir du disque dur, le système d'exploitation conserve des parties du fichier dans la RAM. Les systèmes de bases de données font la même chose. Malheureusement, le système d'exploitation ne connaît pas le contexte de votre application et des systèmes de mise en cache spécialisés sont donc nécessaires pour obtenir le résultat souhaité.
Combell propose les systèmes de mise en cache suivants :
Un cache HTTP qui met en cache des pages entières. Il est prêt à l'emploi pour les pages web statiques. Le langage de programmation VCL intégré permet de définir des règles pour la mise en cache des pages dynamiques et personnalisées. Combell propose des modèles de configuration de Varnish pour des plateformes populaires telles que WordPress, Drupal et Magento.
En savoir plus sur VarnishUn magasin clé-valeur distribué qui peut être utilisé pour stocker des données temporaires. Il est connu pour sa rapidité et sa flexibilité, et son accès doit se faire à partir de l'application. Des plateformes telles que WordPress, Drupal et Magento offrent des possibilités d'intégration de Redis pour le stockage de données dynamiques.
En savoir plus sur RedisUn cache intégré qui lit les fichiers PHP, les compile et les stocke en mémoire sous forme de langage machine. Activé par défaut avec votre pack d'hébergement web chez Combell ; aucune connaissance technique n'est donc requise. Améliore immédiatement les performances globales de votre code PHP, mais n'a qu'un impact indirect sur le temps de chargement des pages.
Un magasin clé-valeur local qui fait partie intégrante de votre installation PHP. Activé par défaut avec votre pack d'hébergement chez Combell. Il offre également des possibilités d'intégration avec les frameworks et les SGC les plus courants. Comparable à Redis, mais avec moins de fonctionnalités.
Chaque type de cache a des finalités bien précises. Cela n'a aucun sens d'activer tous les caches en même temps. Cela ne garantit pas de meilleurs résultats et augmente de surcroît le degré de complexité du système.
Sélectionnez le type de cache adéquat
Dans ce cas, activez OPcache. Chez Combell, OPcache est activé par défaut pour nos clients sur notre hébergement web.
Il est recommandé de mettre en cache autant de pages web complètes que possible. Et pour cela, il est préférable d'utiliser Varnish. Les pages qui sont statiques ou qui présentent un niveau de personnalisation minimal peuvent être facilement mises en cache à l'aide de Varnish. Varnish offre également de nombreuses options d'intégration avec les SGC et les frameworks.
Varnish inclut également un langage de programmation, qui peut être utilisé pour déterminer ce qui doit être mis en cache et ce qui ne doit pas l'être.
Certaines pages ne peuvent pas être mises en cache dans leur intégralité car elles contiennent des éléments personnalisés. Pensez p. ex. au panier d'achat virtuel ou au passage en caisse sur une boutique en ligne. Ces pages sont uniques pour chaque visiteur. Certaines données de ces pages peuvent cependant être conservées dans le cache, ce qui soulage la base de données ou le système de fichiers.
Voulez-vous p. ex. extraire des données d'une base de données, d'un fichier sur le disque ou via un service web ? Dans ce cas, activez Redis ou APCu.
Les données sont-elles uniquement utilisées par PHP ?
Dans ce cas, APCu sera suffisant. Le code de l'application sera toujours exécuté, mais l'accès à certaines données sera mis en cache.
D'autres systèmes ont-ils également besoin d'accéder aux données mises en cache ?
Dans ce cas, Redis sera la technologie de mise en cache la plus adaptée. Redis offre des types de données avancés, davantage de commandes, et même la possibilité de contrôler le comportement via des scripts LUA.
En fonction de votre SGC ou de votre framework, il peut exister des options d'intégration prêtes à l'emploi pour Redis ou OPcache.
Il est possible de combiner plusieurs caches, mais veillez à ne pas en abuser. Vous courez en effet le risque d'afficher des données périmées. Veillez à vider les caches lorsque les données sources sont mises à jour.
Chaque système de mise en cache peut déterminer la durée de conservation des éléments dans le cache et offre la possibilité de supprimer des éléments du cache.
Cela fait des années que Combell s'efforce d'atteindre des temps de chargement rapides et une expérience utilisateur optimale grâce à des solutions de mise en cache. Avec votre collaboration, nous recherchons la meilleure solution pour votre site web ou votre application. Nos spécialistes expérimentés sont chargés de sélectionner et d'implémenter la meilleure solution de mise en cache.