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.
Avantages de l’utilisation d’un CDN
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).
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, Akamaï 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.
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é.
Inconvénients de l’utilisation d’un CDN
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 à budgetter.
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.
Ces cas de figures 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.
Alors, cdn ou pas cdn ?
À 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.
Un CDN peut très bien cacher des pages dynamiques. Il offre une protection bon marché contre les attaques DDOS de niveau 3 et peut apporter une sécurité supplémentaire couplé à un WAF. Il s’adapte aisément à un traffic irrégulier.
Si c’est un SPOF il peut aussi assurer une continuité en cas de défaillance de l’origine.
Merci pour ce retour constructif Damien.
En effet, avec des outils complémentaires (type plugin pour WordPress), les principaux cdn sont capables de conserver en cache une version statique des pages dynamiques. Cela permet de profiter de temps de réponse optimaux partout, et plus seulement pour les ressources statiques.
Quant à l’aspect SPOF, en effet il joue souvent le rôle inverse, à savoir qu’il assure la continuité de service en cas d’indisponibilité du serveur source (en servant les dernières versions disponibles en cache). C’est notamment ce que propose Cloudflare avec son option « Always Online » intégrée à l’offre Pro (20 Dollars/mois).
Au plaisir d’échanger sur d’autres points.
« 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). »
Pas toujours lorsqu’il est utilisé juste pour les statiques (mais on a tendance à l’oublier avec le comportement « cloudflare » en mode proxy).
Sinon, tout le reste de l’article résume assez bien l’état des lieux et en effet, ce n’est pas toujours judicieux d’en mettre un en place, surtout s’il délivre pas de statique pour le HTML.
Merci pour ton retour.
Un cdn offre tout son potentiel en matière de web performance lorsqu’il est utilisé en mode proxy, sur la page elle-même ainsi que l’intégralité des ressources appelées.
Mettre en place un cdn sur certains types de ressources n’offre pas systématiquement d’améliorations significatives. Pire encore, cela peut être contre-productif et pénaliser des métriques clés comme le FCP et le LCP.
Si les feuilles de style et/ou l’image qui constitue le LCP sont hébergées sur un domaine spécifique au cdn (comme c’est généralement le cas), cela génèrera des latences supplémentaires en raison de la connexion réseau nécessaire et coûteuse (on doit réaliser une résolution dns, une connexion et une négociation ssl).
On peut mettre en place un dns-prefetch ou un preconnect sur le domaine du cdn pour limiter l’impact, mais cela restera forcément pénalisant dans la mesure où ces ressources sont téléchargées avec une priorité élevée : le gain sera mineur.