Les caches serveur

Bien choisir quel cache utiliser

(par Ilhan le 30/10/2024)

Cache serveur

Généré par Dall-E

Les caches serveur

On distingue 2 types de système de cache à l’échelle du serveur d’exécution du site : le cache applicatif, utilisé par le code source pour optimiser ses performances d’exécution, et le cache HTTP qui permet de servir des ressources aux visiteurs de manière instantanée.

Dans les deux cas, ces solutions sont disponibles chez Ethersys et permettent l’amélioration des performances, la réduction de la charge sur le serveur, une meilleure expérience utilisateur et une optimisation SEO.

Notons qu’il existe d’autres système de cache, comme le CDN, qui pourront être abordés dans un prochain article.

Cache Applicatif

Les langages et frameworks qui servent à concevoir des applications métiers permettent nativement ou via des extensions spécifiques d’utiliser des systèmes de cache connus, comme Redis ou MemCache, ou encore un système propre.

Ils stockent dans ces caches des données souvent utilisées, au lieu de devoir les recalculer ou les récupérer à nouveau de la base de données. C’est rarement aux développeurs de le mettre en œuvre directement, mais ils doivent en revanche les configurer et les activer.

Système propre

Certains CMS, Frameworks voire langages proposent des caches propres. Par exemple, Symfony a son composant cache. En revanche, nativement, WordPress n’en a pas. Évidemment, si l’outil utilisé propose un cache propre, il sera généralement plus performant et facile à utiliser qu’un cache externe. Vos développeurs ont la responsabilité le cas échéant de se mise en œuvre.

Redis

Redis est un système de cache en mémoire vive, polyvalent et persistant, qui excelle dans les environnements nécessitant des structures de données avancées. Il permet de gérer non seulement des paires clé-valeur simples, mais aussi des listes, des ensembles, et des cartes triées. Grâce à sa capacité à persister les données sur disque, Redis peut être utilisé non seulement comme cache, mais aussi comme base de données principale pour des applications nécessitant une haute disponibilité et une faible latence.

Memcache

Memcache, quant à lui, se distingue par sa simplicité et sa performance. Il est conçu pour offrir un cache léger et à haute performance, idéal pour des scénarios simples comme la mise en cache de sessions utilisateur, les réponses d’API, ou les résultats de requêtes SQL. Bien qu’il ne supporte pas de structures de données complexes, sa capacité à gérer des milliers de requêtes par seconde en fait une solution efficace pour les applications à grande échelle où la vitesse est primordiale.

Cache HTTP

Le cache HTTP est au-dessus de l’application. Quand le serveur reçoit une requête d’un visiteur, le cache, s’il est activé, va d’abord vérifier s’il ne dispose pas de la réponse (le fichier demandé) déjà prêt. Si c’est le cas, il l’envoie immédiatement et donc sans nécessiter le moindre calcul ou requêtes en base de données. Sinon, il demande à l’application de calculer la réponse.

C’est un système extrêmement performant qui permet de servir plus rapidement plus de visiteurs. Par contre, il ne fonctionne pas, ou en tout cas moins bien dans certains cas, lorsque le visiteur est connecté et/ou que les données envoyées sont propres à chaque visiteur, comme par exemple une boutique en ligne avec des produits dans le panier, un intranet, etc.

C’est pour cela qu’on l’utilise généralement avec des sites dits « statiques », c’est à dire que les fichiers sont pré-compilés à l’avance. Comme le site Ethersys qui utilise le CMS Hugo.

La difficulté réside dans le fait de définir la bonne durée de cache afin que les documents modifiés soient servis rapidement. On peut également mettre en place des mécanismes d’invalidation de cache afin de servir immédiatement les fichiers modifiés, mais cela demande une configuration fine.

Cache HTTP intégré chez Ethersys

Vous avez dans les réglages de chaque site depuis votre panel Ethersys la possibilité d’activer le cache :

activer le cache

Réglage du cache HTTP chez Ethersys

Pour l’utiliser correctement, votre site doit utiliser les en-têtes HTTP respectant le standard RFC 7234. https://tools.ietf.org/html/rfc7234

Varnish

Varnish fonctionne à peu près comme le cache HTTP mis à votre disposition, mais dans certains cas vous aurez besoin spécifiquement de cette solution. Pas de problème, nous l’avons !

Varnish agit comme un accélérateur HTTP, spécialisé dans la mise en cache des contenus statiques tels que les pages web, les images, et les fichiers CSS/JavaScript. Il fonctionne comme un reverse-proxy, réduisant la charge sur les serveurs backend en servant directement les contenus cachés aux utilisateurs finaux. Varnish est particulièrement efficace pour améliorer les temps de chargement des sites à fort trafic en réduisant le besoin de recalculer les réponses pour chaque requête. Il s’intègre plus efficacement sur les sites dynamiques, comme une boutique en ligne, en permettant de mettre en cache des bouts de page.

Mise en place des caches

Nous sommes à votre disposition pour vous accompagner dans le choix et l’utilisation du cache qui sera le plus efficace pour répondre à vos besoins.

Par ailleurs, Memcache et le cache HTTP sont disponibles sans configuration particulière sur votre hébergement. En revanche pour Redis et Varnish il faudra nous en faire la demande.

Redis, Varnish et Memcache ne peut être utilisés qu’à partir de l’offre « extrême » de nos offres d’hébergement performant du fait de l’usage de RAM supplémentaire qu’ils génèrent.