< Infrastructure | Réseau />

CDN et webperf : quels avantages, quels inconvénients ?

Eroan Boyer

27 janvier 2023

13 minutes

Un data center

Un Content Delivery Network, auquel on fait souvent référence sous l’acronyme « CDN », est littéralement un « système de distribution de contenu ». Il repose sur l’utilisation de serveurs installés dans des datacenters répartis à des points stratégiques dans le monde. Ces derniers étant connectés les uns aux autres via des connexions privées en fibre optique à très haut débit, il permet de rendre les contenus web accessibles plus rapidement aux internautes.

La notion de CDN est donc intimement liée à celle de vitesse de chargement des pages. Pourtant, son utilisation ne répond pas à toutes les problématiques de web performance, et ne constitue pas une réponse systématique aux problèmes de webperf. À travers cet article, nous allons voir ensemble ce que l’activation d’un CDN peut apporter en termes de performance et de sécurité, mais aussi les effets de bord qu’il peut engendrer.

Qu’est-ce qu’un CDN ?

Un CDN, ou Content Delivery Network, est un réseau de serveurs répartis dans le monde qui stockent une copie des fichiers de votre site et les servent depuis le point le plus proche de chaque visiteur. Il réduit la distance entre le visiteur et le contenu, donc la latence, et décharge votre serveur d’origine de la majorité des requêtes.

Le principe tient en trois temps. Le CDN reçoit la requête à la place de votre serveur ; s’il possède déjà le fichier demandé, il le sert immédiatement ; sinon, il le récupère à l’origine, le conserve et le sert aux visiteurs suivants. Une ressource populaire n’est demandée qu’une fois à votre hébergement, quel que soit le trafic.

Un CDN ne sert pas que des fichiers statiques. La terminaison de connexion se fait à l’edge, si bien que même une page dynamique non cacheable en bénéficie : le visiteur négocie sa connexion sur quelques dizaines de kilomètres, et le réseau du CDN dialogue ensuite avec votre serveur sur des liens déjà établis.

Comment fonctionne un CDN ?

Un CDN s’interpose entre le visiteur et votre serveur grâce au DNS : le nom de domaine ne pointe plus vers votre hébergement mais vers le réseau, qui achemine chaque requête vers son point de présence le plus proche. Le visiteur ne sait jamais qu’un intermédiaire existe, et l’adresse du site ne change pas.

Chaque point de présence conserve une copie des fichiers déjà demandés. Si la ressource est en cache et encore fraîche, elle part immédiatement ; sinon le nœud la récupère à l’origine, la stocke puis la sert. C’est l’en-tête Cache-Control qui fixe cette durée, et notamment la directive s-maxage, propre aux caches partagés.

Le taux de hit mesure l’efficacité du dispositif : c’est la part des requêtes servies depuis le cache sans solliciter l’origine. Sur Cloudflare, l’en-tête cf-cache-status l’indique requête par requête, avec les valeurs HIT, MISS et BYPASS. Un flot de MISS sur des fichiers statiques signale une configuration défaillante.

Le sujet du cache dépasse largement le CDN, qui n’en est qu’un étage parmi six. Nous avons consacré à cet empilement un guide complet du cache web, du navigateur jusqu’à la base de données. Chaque couche protège celle du dessous, et le CDN se règle en cohérence avec les autres, jamais isolément.

Que peut-on servir depuis un CDN ?

Tout, mais pas de la même façon. Les fichiers statiques, images, feuilles de style, scripts et polices, se cachent longtemps et sans risque puisqu’un changement s’accompagne d’un changement d’URL. Le HTML dynamique demande une durée courte, exprimée en secondes, et des exclusions pour les pages personnalisées.

La nuance la plus mal comprise concerne les pages qu’on ne peut pas mettre en cache. Un panier, un espace client ou un tunnel de commande ne doivent jamais être servis depuis un cache partagé, mais ils bénéficient malgré tout du réseau : la connexion se termine à l’edge, et le trajet vers l’origine emprunte des liens déjà établis.

Restent les paramètres d’URL, source classique de mauvais taux de hit. Les suffixes de version ajoutés par les thèmes et les extensions créent une entrée de cache distincte par variation, alors que le fichier est identique. Configurer la clé de cache pour les ignorer ramène toutes ces variations vers une seule entrée.

Quels sont les avantages d’un CDN ?

Un CDN apporte six bénéfices distincts : des protocoles réseau récents activés d’office, une résolution DNS accélérée, une latence réduite quelle que soit la position du visiteur, des ressources statiques optimisées à la volée, une facture d’hébergement allégée et une protection contre les attaques. Les trois premiers relèvent directement de la performance.

Des technologies réseau de pointe

Les CDN étant conçus par des experts réseau comme Akamai, Cloudflare, Amazon CloudFront ou encore Fastly, ils profitent d’infrastructures de pointe à très haute disponibilité. Ils sont mieux équipés que 90% des hébergeurs web traditionnels. Cela permet de profiter de technologies encore peu déployées comme le protocole HTTP/3, la compression Brotli ou encore les Early Hints.

Il est possible de profiter de ces technologies sur un serveur classique, mais à des coûts généralement bien plus élevés : cela nécessite notamment de disposer d’un serveur privé virtuel (VPS) ou d’un serveur dédié performants. Et d’en confier la gestion à un administrateur système chevronné, ce qui a également un coût.

Des résolutions DNS plus rapides

Les CDN fonctionnent comme un Proxy, c’est-à-dire qu’ils s’interfacent entre le serveur d’origine (votre hébergement) et l’utilisateur final (votre visiteur). Pour ce faire, on leur confie la gestion des DNS, habituellement gérée par le registrar. Or, les CDN disposent d’infrastructures DNS extrêmement performantes, ce qui se traduit par des temps de réponse à la baisse (métrique Time To First Byte, TTFB).

Performance des principaux fournisseurs de DNS en Europe sur janvier 2023
Performance des principaux fournisseurs de DNS en Europe sur janvier 2023. Source : dnsperf.com

Cloudflare, qui est exemplaire en la matière, affiche ainsi des temps de résolution DNS 3 fois plus rapides qu’OVH, le leader de l’hébergement web en France. Notez au passage qu’il est tout à fait possible de confier la gestion des DNS à Cloudflare sans activer la fonctionnalité CDN, et cela de façon gratuite. Vous profiterez alors de ce qu’il se fait de mieux à ce niveau, avec un impact intéressant sur le TTFB.

Des pages rapides partout dans le monde

C’est le cas d’usage principal d’un CDN, le seul et véritable auquel il est le seul à pouvoir répondre ! Grâce aux connexions réseau ultra-rapides qui relient tous ses centres de données, un CDN est capable de servir une page à n’importe quel utilisateur dans le monde en une poignée de secondes. Si vous disposez d’un hébergement en France et qu’une partie non négligeable de votre trafic vient de l’étranger, alors la question du CDN doit se poser.

Au moment de choisir votre fournisseur de CDN, veillez à vous assurer qu’il dispose de datacenters dans les régions où se trouvent vos visiteurs. Car si Cloudflare, Akamai et AWS ont tous des infrastructures parfaitement maillées, d’autres petits fournisseurs ne proposent que quelques dizaines de localisations. Les temps de réponse ne seront dans ce cas pas aussi bons puisque les données devront parcourir de longues distances.

Des contenus statiques optimisés

L’un des mécanismes de base du CDN est la copie des fichiers statiques sur ses propres serveurs : à la première consultation d’une image, vidéo, feuille de style, police d’écriture ou fichier JavaScript, la ressource est mise en cache à la volée et de façon transparente… Lorsqu’un utilisateur accède à un site web, le CDN redirige automatiquement les requêtes vers le datacenter le plus proche de l’utilisateur, réduisant considérablement les temps de chargement.

La plupart des CDN proposent toutefois d’aller plus loin, en appliquant à la volée une compression, une minification voire une conversion de certains formats de ressources vers d’autres, plus légers. L’exemple le plus courant est la génération d’images en Webp ou Avif comme alternative aux formats traditionnels PNG, Jpeg et Gif. Cela réduit considérablement leur taille tout en conservant une qualité d’image équivalente ou légèrement dégradée (au choix).

Ce second point peut être géré directement par l’hébergement, mais avec la nécessité de déployer des outils spécifiques et souvent payants. Cela peut aussi avoir un impact sur les besoins en termes d’espace disque : multiplier par 2 ou 3 le volume occupé par les images peut nécessiter de passer sur une offre d’hébergement avec davantage d’espace de stockage.

Des coûts d’hébergement à la baisse

En absorbant une majorité des requêtes http, un CDN permet de soulager très fortement le serveur d’origine. Ce dernier n’est globalement plus en charge que de la génération des pages dynamiques, tout le reste étant servi directement par le datacenter le plus proche du visiteur. Cela se traduit par une baisse significative de la consommation de ressources CPU et de mémoire vive.

Sur une majorité de sites, 95 à 99% des requêtes sont gérées directement par le cache du CDN
Sur une majorité de sites, 95 à 99% des requêtes sont gérées directement par le cache du CDN. Source : capture du dashboard Cloudflare

Libre à vous de conserver cette réserve de ressources disponibles, pour absorber d’éventuels pics de trafic ponctuels par exemple. Ou bien de downgrader votre hébergement en basculant sur une offre moins performante, et donc moins coûteuse. Dans ce second cas, gare toutefois à ne pas sous-estimer le besoin : en cas de vidange du cache CDN, l’intégralité des requêtes suivantes seront dirigées vers votre hébergement, qui doit être capable de les traiter.

Enfin, n’oubliez pas non plus que les CDN sont payants : pour voir si la solution permet de réaliser des économies, il convient de comparer le coût de l’hébergement initial vs. le nouvel hébergement + le CDN.

Une sécurité accrue

Les CDN fonctionnant comme des Proxy, ils offrent des avantages non négligeables en matière de sécurité. Votre serveur n’est, pour commencer, plus exposé directement aux utilisateurs finaux : ils ne peuvent pas connaître son adresse IP. Impossible, pour les hackers, de tenter des intrusions en FTP, SSH ou web sans passer par le firewall du fournisseur de CDN. Or, ces derniers sont, encore une fois, à la pointe de ce qu’il se fait.

Les CDN intègrent par ailleurs des protections avancées contre les attaques par déni de service (les fameuses DDoS, pour « Distributed Denial of Service »). Ils sont capables de basculer de façon instantanée et transparente sur une interface de mitigation intelligente. Et, une fois la crise passée, de revenir au fonctionnement classique sans que vous vous doutiez du danger ainsi évité.

Votre site est-il aussi rapide que vos visiteurs l’espèrent ?

Découvrez comment nous pouvons vous accompagner

Quels sont les inconvénients d’un CDN ?

Cinq réserves méritent d’être pesées : une complexité de configuration réelle, un risque pour l’exploration si les robots sont mal traités, une facturation à l’usage difficile à anticiper, un point de défaillance supplémentaire dans la chaîne, et un intérêt limité pour une audience purement locale. Aucune n’est rédhibitoire, toutes se gèrent.

Une complexité technique élevée pour les néophytes

Le déploiement d’un CDN peut s’avérer complexe pour un éditeur de site habitué aux services tout en un de son hébergeur web comme OVH, Ionos ou Gandi. Cela passe en effet par un changement des serveurs DNS, une étape bien souvent dissuasive pour les profils non techniques. Il convient, dans la foulée, de vérifier que les champs DNS ont bien été re-saisis dans la nouvelle interface. Puis d’attendre que la propagation DNS se fasse, ce qui prend parfois du temps.

Une fois les DNS gérés par le CDN, reste à configurer les options proposées de façon pertinente. Par défaut, la plupart des optimisations complémentaires sont désactivées. C’est donc à l’éditeur du site de paramétrer les fonctionnalités de façon optimale… Ce qui n’est bien souvent pas fait. On perd alors une partie du potentiel de gain de performance, ce qui est regrettable.

Un risque potentiel pour le crawl

Gary Illyes, célèbre analyste chez Google, a publié sur LinkedIn un message expliquant que l’une des problématiques de crawl les plus communes était liée à l’utilisation d’un CDN et/ou d’un Firewall mal configurés. Les paramètres de sécurité parfois agressifs de ces outils peuvent bloquer les robots d’indexation des moteurs de recherche, empêchant entre autres Googlebot d’indexer les pages d’un site.

La recommandation est de vérifier systématiquement le paramétrage du CDN, et d’y ajouter en liste blanche les plages d’adresses IP utilisées par les robots d’indexation connus. En cas de passage malencontreux en liste noire, les effets sur la visibilité SEO peuvent être catastrophiques.

Un modèle économique « à la carte » difficile à anticiper

La plupart des fournisseurs de CDN proposent une prestation de base, qui inclut principalement la distribution des contenus dans les différents datacenters avec une surcouche de sécurité. En fonction de la taille et de la fréquentation du site, cela peut déjà représenter un coût non négligeable comparé à une location de serveur chez un hébergeur web.

D’autres options avancées comme la configuration de règles dans le Firewall, l’activation de la compression Brotli ou la génération d’alternatives Webp et Avif peuvent être payantes. Si vous comptez sur un CDN pour optimiser la performance de votre site, veillez donc à comparer ce qu’incluent les différents acteurs dans leur offre de base, et à faire des projections pour les options au tarif variable : elles dépendent souvent du volume de bande passante consommé.

N’oubliez pas enfin, avant toute prise de décision, d’envisager la location d’un serveur plus performant et configuré par un administrateur système expérimenté : le coût sera probablement là aussi important, mais le facteur variabilité disparaîtra au profit d’un coût fixe plus facile à budgéter.

Un point de défaillance unique supplémentaire

Bien qu’ils disposent d’infrastructures à très haute disponibilité, les CDN ont toutes les caractéristiques techniques de ce que l’on appelle un Single Point Of Failure (SPOF), ou point de défaillance unique en français. Plus concrètement, si votre CDN rencontre un problème ou une défaillance technique, votre site ne sera plus accessible ou pourra être fortement ralenti.

Quand une panne réseau touche un fournisseur de CDN comme Cloudflare, c'est la panique
Quand une panne réseau touche un fournisseur de CDN comme Cloudflare, c’est la panique. Source : Cloudflare.

Ces cas de figure sont rares mais ont déjà touché des acteurs comme Cloudflare qui, le 21 juin 2022, a par exemple fait face à une importante panne réseau. Plusieurs centaines de milliers de sites ont été indisponibles à travers le monde durant environ 2 heures. Le temps de permettre aux techniciens réseau de détecter l’origine de la panne et de la corriger.

Effet pervers pour un ciblage géographique réduit

Un CDN sert avant tout à améliorer les temps de chargement pour les utilisateurs qui se trouvent à une distance géographique importante du serveur d’origine. Si la majorité de vos utilisateurs se trouvent dans la même région géographique que ce serveur, l’utilisation d’un CDN n’est probablement pas justifiée.

Pire encore, la mise en place d’un CDN aura bien souvent un impact négatif sur le temps de réponse des pages si les utilisateurs se trouvent à proximité du serveur d’origine. À l’inverse des ressources statiques, les pages dynamiques ne peuvent en effet généralement pas être conservées dans le cache des CDN. À chaque requête, le CDN va ainsi aller chercher la page à sa source, puis la proposer à son tour au visiteur.

Cette étape supplémentaire peut ajouter plusieurs dizaines voire centaines de millisecondes au TTFB, impactant en conséquence d’autres métriques de performance comme le First Contentful Paint (FCP) et le Largest Contentful Paint (LCP). Si vous disposez d’un hébergement en France et que 95% de vos visiteurs habitent la France métropolitaine, le CDN n’est pas la réponse miracle à vos problématiques de webperf.

Comment vérifier qu’un CDN est bien configuré ?

Trois contrôles suffisent. Relevez d’abord l’en-tête de statut de cache sur vos ressources statiques : la grande majorité doit être servie depuis le cache. Vérifiez ensuite que le HTML n’est pas mis en cache par erreur sur les pages personnalisées. Contrôlez enfin les en-têtes réellement reçus, jamais la configuration déclarée.

Le second contrôle porte sur les robots d’exploration. Un CDN mal réglé peut leur servir une version obsolète, les bloquer par une règle de sécurité trop large, ou fausser la détection de leur pays d’origine. Le rapport d’exploration de la Search Console révèle ces anomalies, par une chute des pages explorées ou des erreurs inhabituelles.

Le dernier contrôle est le plus simple et le plus oublié : mesurez depuis plusieurs pays. Un CDN correctement configuré efface l’écart de latence entre un visiteur proche de votre serveur et un visiteur situé à l’autre bout du monde. Si cet écart persiste, le CDN ne sert à rien et le problème est ailleurs.

Faut-il utiliser un CDN pour son site ?

Oui dès que votre audience dépasse votre région, que votre site sert un volume significatif d’images, ou que votre hébergement peine aux heures de pointe. Non si votre audience est strictement locale et votre serveur déjà proche d’elle : le gain de latence devient négligeable face à la complexité ajoutée.

À l’heure de la prise de décision, il convient d’être pragmatique. S’il fallait résumer mon avis sur les CDN face aux avantages et inconvénients exposés, le voici en quelques points clés :

  • C’est une solution optimale pour les sites à la fréquentation mondiale, mais pas pour les sites fortement géolocalisés
  • Ce n’est pas la réponse miracle aux problématiques de performance : on peut aussi optimiser le site sur son hébergement existant
  • Cela apporte un plus indéniable en termes de sécurité
  • Ce n’est pas forcément moins coûteux qu’un hébergement performant

N’hésitez pas à partager un commentaire pour compléter, nuancer ou questionner cet article.

Poursuivez votre lecture