CDN : fonctionnement, avantages et limites

Auteur : Publié le

En bref : un CDN est un réseau de serveurs qui distribue le contenu d’un site aux utilisateurs depuis des emplacements adaptés, plutôt que de tout récupérer auprès d’un seul serveur. Il peut réduire le temps de chargement des images, des scripts et des autres fichiers, ainsi que la charge de l’hébergement. Il ne remplace toutefois ni un serveur performant ni l’optimisation du site : son efficacité dépend du type de contenu et de sa configuration.

Comment fonctionnent un CDN et son cache

CDN signifie Content Delivery Network, ou réseau de diffusion de contenu. Ses serveurs servent d’intermédiaires entre le visiteur et le serveur d’origine, sur lequel fonctionne le site ou sont stockés ses fichiers originaux. Le trafic est dirigé vers un nœud adapté du réseau. Ce n’est pas nécessairement le plus proche géographiquement : le choix tient aussi compte des conditions du réseau et de la disponibilité.

Le mécanisme principal d’un CDN est la mise en cache. Un serveur du réseau peut conserver une copie d’une image, d’une feuille de style CSS ou d’un fichier JavaScript, puis la transmettre aux visiteurs suivants sans la récupérer à nouveau auprès de l’hébergement. Si aucune copie n’est encore disponible ou si elle a expiré, le CDN récupère généralement le contenu auprès du serveur d’origine, selon les règles définies.

Imaginez une boutique hébergée sur un serveur en Pologne, qui reçoit aussi des clients du Canada. Sans CDN, leurs navigateurs téléchargent les photos des produits directement depuis la Pologne. Avec un CDN, ils peuvent recevoir les copies stockées depuis un nœud plus proche du point de vue du réseau, ce qui réduit la latence. La première requête pour un fichier donné peut toutefois encore nécessiter de contacter le serveur d’origine.

Ce qu’un CDN accélère et ce qu’il ne corrige pas

L’utilisation la plus simple d’un CDN consiste à distribuer des fichiers statiques, c’est-à-dire des fichiers qui ne changent pas d’un visiteur à l’autre. Il s’agit notamment des images, des polices, des feuilles de style, des scripts et des fichiers à télécharger. Une copie mise en cache peut servir à répondre aux requêtes de nombreuses personnes.

Un CDN peut aussi stocker des pages HTML entières, si les règles du service et de l’application le permettent. Cela exige davantage de prudence : un guide public peut généralement suivre des règles de mise en cache différentes de celles d’un panier, d’un espace client ou d’une page affichant des prix personnalisés. Les contenus dynamiques, générés pour une requête précise, ne se prêtent pas toujours à un cache partagé.

Un CDN ne supprime pas la cause des lenteurs d’une application. Si une page attend plusieurs secondes le résultat d’une requête à la base de données, une requête qui doit atteindre le serveur peut rester lente. Le réseau ne corrige pas non plus l’exécution d’un trop grand nombre de scripts dans le navigateur. Il peut distribuer plus rapidement une image volumineuse, mais réduire la taille de cette image reste une tâche distincte.

Certains services proposent aussi l’optimisation des images, le filtrage du trafic ou la protection contre les attaques DDoS, qui visent à saturer un service par un volume massif de requêtes. Tous les CDN ne proposent toutefois pas les mêmes fonctions. Il faut vérifier leur portée et leurs limites dans la documentation du fournisseur concerné.

CDN, hébergement et DNS : des rôles différents

L’hébergement fournit les ressources nécessaires au stockage des fichiers et au fonctionnement de l’application. Le CDN sert avant tout d’intermédiaire pour distribuer le contenu et alléger la charge du serveur d’origine. Dans une configuration classique, vous avez toujours besoin d’un hébergement, même si les visiteurs reçoivent la plupart des images depuis le cache du CDN.

Le DNS est le système qui permet de déterminer où diriger la connexion pour un nom de domaine donné. La mise en place d’un CDN nécessite souvent de modifier les enregistrements DNS ou les serveurs de noms du domaine. Cela ne signifie pas que l’application elle-même est déplacée : c’est le chemin suivi par les requêtes pour atteindre le site qui change.

Vous pouvez activer un CDN pour l’ensemble du site ou seulement pour un sous-domaine distinct destiné aux fichiers, par exemple static.exemple.com. Dans le premier cas, il faut configurer avec une attention particulière la gestion des connexions aux comptes et des contenus privés. Dans les deux cas, veillez à utiliser HTTPS, c’est-à-dire une connexion chiffrée, y compris entre le CDN et le serveur d’origine.

Quand la mise en place d’un CDN est-elle pertinente ?

Un CDN est particulièrement utile lorsque les utilisateurs se trouvent dans différentes régions, que le site propose de nombreux fichiers ou qu’il connaît des pics soudains de trafic. Les utilisateurs qui téléchargent les mêmes contenus peuvent alors recevoir des copies mises en cache, au lieu de solliciter l’hébergement à chaque requête.

Pour un petit site local dont les utilisateurs sont proches d’un serveur performant, le gain peut être moins perceptible. Avant d’ajouter un service, vérifiez ce qui ralentit réellement le site : la réponse de l’application, le transfert des images ou l’exécution des scripts dans le navigateur. Comparez les mesures effectuées depuis les régions de vos utilisateurs, et pas uniquement depuis votre propre ordinateur.

Pour choisir un fournisseur, examinez la facturation du transfert de données et des requêtes, la couverture du réseau, les limites applicables aux fichiers et la possibilité de supprimer rapidement les copies du cache. Vérifiez les tarifs en vigueur, la disponibilité des fonctions et les règles de traitement des données dans la grille tarifaire officielle, la documentation et les conditions du service.

Comment mettre en place un CDN sans problèmes de contenu

Le principal risque de configuration est de mettre en cache une réponse privée sous la forme d’une copie accessible à d’autres personnes. Un autre problème fréquent est l’affichage de fichiers périmés après une modification du site. Une courte procédure de déploiement permet de limiter ces risques :

  1. Définissez ce qui peut être mis en cache. Commencez par les images publiques et les fichiers CSS et JavaScript. Excluez du cache partagé le panier, le compte client et les réponses contenant des données utilisateur.
  2. Définissez la durée de validité des copies. Le TTL, c’est-à-dire la durée de vie d’une entrée du cache, doit être adapté à la fréquence de modification du contenu. Vérifiez comment le CDN interprète les en-têtes qui contrôlent la mise en cache, notamment Cache-Control.
  3. Planifiez les mises à jour. Donnez de nouveaux noms aux fichiers modifiés, par exemple style.v2.css, ou supprimez les anciennes copies à l’aide de la fonction de purge du cache.
  4. Testez les opérations courantes. Vérifiez la connexion aux comptes, les formulaires, les achats et la publication des modifications. Comparez le fonctionnement pour un utilisateur connecté et pour un visiteur anonyme.

Avant de modifier le DNS, sauvegardez la configuration actuelle et prévoyez une procédure de retour en arrière. Commencez par un ensemble limité de fichiers, mesurez le résultat, puis étendez les règles de mise en cache.

À lire aussi : Qu’est-ce qu’un agent AI ?

À lire aussi

Découvrez comment PHP-FPM traite les requêtes PHP, son rôle face au serveur web et comment adapter ses processus au trafic.
Découvrez BIND, logiciel libre de serveur DNS : ses rôles, la gestion des domaines et les cas où le déployer vous-même.
Découvrez le registre polonais REGON, son numéro, ses différences avec NIP et KRS et comment vérifier les données d’une entreprise.