Lorsqu’on l’on s’attaque à l’optimisation d’un site Internet, on finit toujours par se poser la question de l’utilisation d’un CDN. Remède peu onéreux et rapide à mettre en place, le CDN promet aussi bien amélioration de l’expérience utilisateur, qu’augmentation de la sécurité et optimisation des performances, le tout à moindre frais. Mais quels résultats effectifs cachent ces belles paroles ? L’internationalisation a-t-elle un sens pour tous ? Une certaine paranoïa ne doit-elle pas être de mise aujourd’hui face à tous ces organismes gouvernementaux et toutes ces entreprises privées qui nous espionnent ?
- Principes de fonctionnement d’un Content Delivery Network
- Le discours (marketing) officiel
- Le miroir aux alouettes
- Surveillance, censure, espionnage industriel et asservissement
Principes de fonctionnement d’un Content Delivery Network
Un réseau de diffusion de contenu ou CDN est, par définition, un ensemble de serveurs de cache interconnectés chargés de délivrer un contenu en fonction de la position géographique de l’internaute. Voilà, pour la définition technique, c’est fait !
En d’autres termes moins obscurs et plus compréhensibles par le commun des mortels, un CDN est essentiellement un réseau d’ordinateurs surpuissants, répartis un peu partout sur la planète, qui placent en leur mémoire (qui mettent en cache) des copies de centaines de milliers de sites Internet, et qui délivrent ces copies à tous les internautes en lieu et place de leur hébergeur réel.
Quand un internaute cherche à consulter un site hébergé par un CDN, celui-ci va calculer lequel de ses serveurs sera le plus efficace pour lui répondre (le plus proche géographiquement, celui dont le réseau est le moins encombré au moment de la requête), et ordonner à ce serveur de distribuer le contenu demandé.
Les objectifs principaux d’un CDN sont de réduire à la fois le temps et le trajet que prend un contenu pour atteindre l’internaute qui l’a sollicité. Moins de trajet à parcourir entre l’internaute et l’hébergeur implique moins d’erreurs sur la ligne, des pages Web qui s’affichent plus vite, moins de bande passante qui est utilisée. Ce dernier point quant à lui implique à son tour des coûts moindre pour celui qui fournit ou loue l’infrastructure de transport… Bref tout le monde y gagne.
Sachant qu’en plus en cas d’attaque c’est le CDN qui prend les coups et plus vous directement (enfin votre hébergeur), et qu’en cas de panne d’un point d’hébergement d’un CDN un site Internet reste accessible car toujours distribué par les autres nœuds du réseau (à moins que le réseau entier du CDN tombe, ce qui arrive quand même parfois et ce malgré la taille gigantesque de ces structures), le CDN c’est le remède universel !
Sur le papier du moins.
CDN : le discours (marketing) officiel
Un certain nombre d’arguments sont continuellement mis en avant par tous les fournisseurs de CDN. Vitesse, référencement, sécurité, économies et internationalisation, les CDN ont de réels et sérieux atouts.
Un site plus rapide à l’affichage
Admettons qu’en tant normal mon site ai13.fr soit hébergé à Marseille. Un montpelliérain souhaite y accéder ? Le trajet entre les deux points (de l’ordinateur de l’internaute au serveur d’hébergement du site Web, et vice-versa) est plutôt court, le temps de chargement (et indirectement d’affichage des pages) sera rapide, de l’ordre d’une ou deux poignées de dizaines de millisecondes (si j’ai bien fait mon travail de développeur Web.
Un québecois maintenant. Inévitablement le parcours est plus long puisqu’il y a tout un océan à parcourir. L’aller-retour entre la requête de l’internaute et la réponse envoyée par le serveur va prendre cette fois au moins une ou deux poignées de centaines de millisecondes.
Or, chacun sait que plus un site est rapide à s’afficher chez l’utilisateur, plus il y passera de temps et plus il y consultera de pages. Plus le temps de latence est faible, et plus il y aura de chances que ce temps passé donne lieu à une conversion (un achat, un abonnement). L’intérêt du CDN, qui va placer le site au plus proche de l’internaute, qui va accélérer le chargement des pages, sur ce point est évident. Le temps, c’est de l’argent.
La fin des crashs et de l’indisponibilité
Sans un CDN, si le serveur stockant mon site ai13.fr tombe en panne je deviens totalement (planétairement) inaccessible, et les visiteurs qui débarquent voient une jolie page blanche sur laquelle s’écrit quelque chose du genre « Erreur de connexion à la base de données ».
Avec un CDN bien en place ce type de plantage devient virtuellement impossible. En effet, pour qu’un site soit alors totalement inaccessible il faut que tous les points de la planète où le site a été mis en cache tombent en panne en même temps. Quand on constate que même un CDN d’entrée de gamme comme OVH a 19 points de présence répartis sur tout le globe, ou comme le (au départ gratuit) CloudFlare 28 nœuds, on réalise l’ampleur de la panne nécessaire pour rendre un site passant par un CDN indisponible.
Une sécurité renforcée
C’est simple, ce sont maintenant les nœuds du CDN qui encaissent les coups (DDoS…) et filtrent le spam. Plus grand chose à réfléchir sur votre propre serveur, les attaquants ne le voient même pas directement, n’ont pas accès à lui, ne peuvent plus s’en prendre qu’au réseau qui distribue votre site.
Des économies substantielles
Tous les hébergeurs ne pratiquent pas le trafic illimité — même si j’ai l’impression que cela tend à devenir la norme (du moins en surface, mais gare aux fausses promesses). Tous les hébergements n’ont pas non plus accès à des ressources en CPU et RAM infinies.
Quand on doit faire attention à sa bande passante, parce que l’importance de la facture en fin de mois dépend de ce que l’on a consommé ou parce que l’on risque le blocage de serveur au-delà d’un certain quota, quand on risque de planter son site Web et faire du coup fuir ses visiteurs car on reçoit trop de connexions en simultané, trop d’opérations sont demandées au matériel installé, utiliser un CDN est une véritable bouée d’oxygène.
En effet, les visiteurs n’accédant plus directement à votre site vous consommez énormément moins de votre propre bande passante, vous faites énormément moins travailler votre propre matériel (CPU, RAM, disques durs…). Ce sont les serveurs du CDN qui bossent à leur place, ce sont eux qui encaissent la charge. Le serveur où est réellement installé votre site n’est lui en contact qu’avec les CDN, qui le joignent périodiquement pour vérifier si vous avez ajouté du contenu, modifié des paramètres, ou bien encore si ils ont eux-mêmes des informations à lui ajouter pour qu’elles soient transmises aux autres nœuds.
Les petits plus
Chez CloudFlare par exemple, on va vous proposer de gérer l’injection de votre code de suivi Google Analytics, vos rapports Webmaster Tools et vos statistiques. On va vous proposer d’installer un module de traduction à la volée de votre contenu dans les langues de vos choix, un module de traçage des erreurs JavaScript de vos pages Web, un module de monétisation de votre contenu au travers de fenêtres apparaissant au survol de certains de vos mots-clefs, un module de sécurité chargé d’attaquer votre site pour en trouver les failles… J’en passe et des meilleurs. Au moment où j’écris ces lignes (décembre 2014) je dénombre pas moins de 39 applications partenaires disponibles chez eux. Tout cela gratuitement.
Personnellement, c’est à partir de là que je commence à me poser de sérieuses questions. Parce que sur Internet quand quelque chose est gratuit, c’est que c’est vous le produit.
Associer son domaine, son site Web, à un CDN, a donc sur le papier de gros avantages : on y gagne en sécurité, on y gagne sur la rapidité de transfert de ses données, sur la disponibilité continue du site – tout en réalisant de substantielles économies de bande passante. La panacée on vous dit. Sauf que quand on commence à se poser des questions (comme moi), tout cela devient vite trop beau pour être vrai… ou simplement honnête.
CDN : le miroir aux alouettes
Maintenant que les arguments marketings ont été présentés, essayons d’y voir plus clair. En théorie, tous les avantages potentiels à l’utilisation d’un CDN font saliver. Mais qu’en est-il en réalité ?
Plus rapide ? Pas toujours, pas partout
Car tout dépend du travail réalisé en amont, de la réflexion apportée au choix de votre hébergeur. Si vous n’êtes pas informaticien, si vous n’avez pas envie de vous prendre la tête à paramétrer un serveur et à optimiser votre code, si votre site Internet met de base plusieurs longues secondes à s’afficher alors oui, un CDN va vous apporter de meilleurs résultats.
Mais si vous savez mettre les mains dans le code, si l’optimisation est la marque de fabrique de vos développeurs Web, vos gains en plaçant votre site derrière un CDN seront négligeables — voire négatifs (votre site sera plus long à charger, un comble).
Pour ma part, en comparaison d’un choix d’hébergement au plus proche de mes lecteurs, l’ajout d’un CDN (certes gratuit et en réglages basiques) n’a pas amélioré mes temps de chargement les plus mauvais (les plus longues distances), alors que mes meilleurs temps de latence (sur les courtes distances) ont carrément été dégradés. Un résultat surprenant, parfaitement contraire à l’effet escompté.
L’internationalisation ? Dans quel but ?
Posez-vous bien la question : avez-vous un intérêt réel à voir votre site cloné sur toute la planète ? Votre public est-il uniformément planétairement réparti ?
Prenez celui de ai13.fr par exemple. Francophone (européen et africain) à 95%, à 4% nord-américain, avoir des copies placées en Amérique du Sud ou en Asie n’a absolument aucun sens, n’engendrera aucun gain de temps. Un serveur rapide, optimisé et (bien) placé en France est dans mon cas particulier amplement suffisant !
Les crashs et la protection
Oui certes il arrive que votre hébergeur foire et que votre site soit indisponible. Mais ça arrive partout, à tous. OVH, pour ne citer qu’un cas qui m’a directement concerné, m’a bien planté 4 fois tous mes sites sur ces trois derniers mois (après des années de bons et parfaits services). Cela m’a mis en rogne, mais il faut savoir relativiser. Car au final, cela ne représente que 0.18% du temps total de disponibilité de mes sites…
Et si vous vous estimez qu’aussi peu que ce soit c’est déjà trop, position somme toute légitime, commencez plutôt par changer de formule d’hébergement, voire d’hébergeur, avant de choisir le CDN comme solution ultime à tous vos maux. Souvent en passant simplement d’un serveur mutualisé à un serveur dédié les choses s’améliorent nettement. Les économies de bouts de chandelles, cela va un temps.
Et surtout ne croyez pas que votre CDN ne plantera jamais, lui. En mars 2013, le CDN de CloudFlare a été victime d’une « défaillance » technique rendant inaccessible pendant près d’une heure 785.000 sites dont des pointures comme Wikileaks ou 4Chan. C’était leur troisième panne majeure en 4 ans. Pas mieux qu’un bon service d’hébergement. (Complément d’informations)
De plus en plus utilisés par les webmasters du monde entier, les CDN deviennent de ce fait des cibles de plus en plus juteuses à faire tomber, des challenges de plus en plus intéressants à hacker. À prendre un CDN on ne fait que déplacer un problème, au risque de s’en créer d’autres. On ne résout définitivement rien.
CDN : surveillance, censure, espionnage industriel et asservissement
Voilà vous avez franchi le pas et pris un CDN pour votre site Internet. Tout va plus vite, vous demande moins de travail, vos visiteurs sont ravis, votre chiffre d’affaire est à la hausse, vous vous sentez en sécurité. Ne vous inquiétez pas, dormez sur vos deux oreilles Big Brother veille sur vous.
« Mode parano : ON »
Une fois votre site géré par un CDN, front comme back-office passent par ce CDN. Ce qui implique que le CDN va pouvoir… observer… tous vos visiteurs, qu’il va recevoir toutes les informations que ceux-ci vous transmettent en pensant ne les fournir qu’à vous et pas à une entreprise privée étrangère (leurs logins, leurs mots de passe, leurs cookies, leurs historiques, toutes ces données qu’ils remplissent dans vos formulaires, etc.).
Ce qui implique que le CDN va pouvoir… observer… la totalité de l’activité sur votre console d’administration. Le travail de vos rédacteurs, la liste et les coordonnées de vos lecteurs si vous êtes dans la production de contenu. La liste de vos produits, de vos clients et votre comptabilité si vous êtes dans l’e-commerce.
Question sécurité il va aussi avoir une connaissance complète du CMS, du Framework, du code en général utilisé, des plugins greffés, de vos paramétrages… Bref, tous à poils. Vous, vos utilisateurs, vos visiteurs, votre entreprise.
Si depuis Snowden (et l’excellente série sur le sujet Person Of Interest) vous ne voyez toujours pas le problème, je vous laisse tranquille dans le monde bienheureux des bisounours. Comme on me répond malheureusement si souvent quand je parle de sécurité informatique et des données : « Beuh ! N’importe quoi, de toutes façons moi j’ai rien à cacher ! ».
Jusqu’au jour où votre voisin / votre collègue de travail / votre ex-femme / votre principal concurrent / votre gouvernement voudra vous tomber dessus, quelle qu’en soit la raison. Et là faudra pas venir pleurer.
J’exagère ? Ah vous croyez…
Durant le mois d’août 2010, un plugin anti-spam très (trop) utilisé par les blogueurs (Akismet, que vous ne verrez jamais sur mes WordPress) s’est mis à empêcher un « certain » nombre de personnes, très ciblées, de commenter quoi que ce soit sur tous les sites sur lesquels il était installé. On n’a jamais su le pourquoi ni le comment d’un tel comportement du très populaire programme. D’un coup, tout ce que pouvaient écrire ces personnes s’est retrouvé classé comme spam, et détruit. Un piratage d’un plugin trop répandu ? Un test de censure individualisée grandeur nature ? (Complément d’informations)
Plus près de nous, novembre 2014, parce qu’il héberge des sites interdits par le gouvernement chinois, le CDN d’Edgecast s’est vu entièrement bloqué par la Chine. Résultat ? Tous les sites (plusieurs centaines des plus gros sites de la planète) hébergés par ce CDN se sont retrouvés inaccessibles aux internautes chinois. Ou comment écraser une fourmi avec un marteau. Un trèèès gros marteau. Et montrer sa capacité de nuisance. (Complément d’informations)
Mode parano : OFF
Maintenant que j’ai fait le tour de la question, que conclure ? Je pense, et cet avis n’engage que moi, que le passage par un CDN n’est pas une obligation, ne se justifie pas pour toutes les situations, mais que parfois c’est la moins pire et qu’il existe de bons et sérieux CDN en qui on peut avoir (une toute relative) confiance.
En dessous de plusieurs milliers de visiteurs par jour, quand le spam reste rare et les attaques DDoS exceptionnelles, j’estime qu’il existe d’autres solutions moins intrusives, violant moins la vie privée des visiteurs et des utilisateurs. J’estime aussi que, quand l’audience est locale (et avec Internet local signifie national, le Web est un petit village), l’hébergement peut se permettre de rester local.
D’un autre côté, si votre activité ne touche à rien de « sensible », si votre public est international, si vous avez les moyens pour des services payants (le gratuit, j’insiste, on oublie), il serait dommage de vous en priver.
Au final, l’emploi ou non d’un CDN pour booster votre site n’est en fait rien de plus qu’un choix philosophique. Pour ma part il y a une frontière que je ne suis pas prêt à franchir. La publicité, les outils de partages sur les réseaux sociaux et Universal Analytics me donnent assez de boutons comme ça.
Maxime Mullet pour ai13.fr