00 - C'est quoi un CDN et pourquoi t'en as besoin
Ce que tu vas apprendre
- Ce qu'est un CDN en termes concrets, sans le jargon marketing
- Pourquoi la latence est ton pire ennemi
- Pourquoi meme un petit site auto-hébergé profite d'un CDN
Prerequisites
Aucun. C'est le point de depart de la serie.
Un réseau de serveurs qui rapproche ton contenu des utilisateurs
CDN, pour Content Delivery Network. L'idee est simple : au lieu de servir ton site depuis un seul serveur (ton VPS a Paris, par exemple), tu distribues des copies de ton contenu sur des dizaines ou des centaines de serveurs repartis dans le monde. Quand un utilisateur a Tokyo charge ta page, il ne tape pas jusqu'a Paris. Il recoit le contenu depuis un serveur a Tokyo, ou au pire a Osaka.
C'est tout. Pas de magie, pas d'IA, pas de blockchain. Juste des serveurs bien places avec des copies de tes fichiers.
Le problème de la latence
La vitesse de la lumière dans une fibre optique, c'est environ 200 000 km/s. Paris-Tokyo, c'est 9 700 km a vol d'oiseau (plus en réalité avec le routage sous-marin). Un aller-retour, ca fait au minimum 97 ms juste pour la physique. Ajoute le routage, les handshakes TCP et TLS, et tu arrives facilement a 250-350 ms avant meme que ton serveur commence a générer la réponse.
250 ms, ca parait rien. Mais Google a montre qu'une augmentation de 200 ms du temps de chargement réduit les recherches de 0,6%. Amazon a calcule que 100 ms de latence supplementaire leur coûte 1% de ventes. Pour un petit site, les enjeux financiers sont moindres, mais l'experience utilisateur reste mauvaise.
Avec un CDN, ce meme utilisateur a Tokyo recoit la réponse depuis un serveur local. Le TTFB (Time To First Byte) passe de 250 ms a 20-30 ms. Cinq a dix fois plus rapide, sans toucher a ton code.
Les chiffres concrets
Cloudflare, le CDN que j'utilise le plus (et que je vais utiliser comme exemple principal dans cette serie), opéré plus de 310 data centers dans plus de 120 pays. Leur réseau est present dans 13 000 réseaux d'interconnexion. Quand tu actives le proxy Cloudflare devant ton domaine, ton contenu est accessible depuis tous ces points en quelques secondes.
Pour comparer, AWS CloudFront a environ 600 points de presence (PoPs) dans 50+ pays, mais le gros de ces PoPs sont des "edge locations" plus legeres. Fastly a une centaine de PoPs mais des serveurs tres puissants. Bunny CDN affiche 123 PoPs dans 73 pays.
Un peu d'histoire
Le concept de CDN date de la fin des annees 90. Akamai, fonde en 1998 par un prof du MIT, a ete le premier gros acteur. Pendant longtemps, les CDN etaient reserves aux entreprises avec de gros budgets. Akamai, c'etait (et c'est toujours) cher.
Cloudflare a change la donne en 2010 en proposant un plan gratuit. Un vrai plan gratuit, pas un essai de 14 jours. DNS, proxy CDN, protection DDoS, SSL automatique, le tout sans sortir la carte bleue. Ca a democratise l'acces aux CDN pour les développeurs independants et les petits projets.
Aujourd'hui tu as le choix : Cloudflare (mon recommande par défaut), AWS CloudFront (si tu es deja sur AWS), Fastly (pour les besoins enterprise avec invalidation instantanee), Bunny CDN (le moins cher en paye), KeyCDN (simple et efficace). On comparera tout ca dans le dernier article de la serie.
Mon experience perso
La première fois que j'ai mis Cloudflare devant un projet, c'etait pour paltemps.fr. Le site tourne sur un VPS unique avec Caddy en reverse proxy (j'en parle dans la serie sur le déploiement). Avant Cloudflare, le TTFB pour un visiteur en Asie tournait autour de 800 ms. Apres activation du proxy, c'est tombe a 40 ms pour le contenu statique cache. Le serveur origin a Paris n'a meme pas vu la requête.
Le truc qui m'a le plus surpris, c'est pas la performance. C'est la protection. En trois mois, Cloudflare a bloque plus de 12 000 requêtes malveillantes sur mon petit site. Des scans de vulnérabilités WordPress (je n'utilise pas WordPress), des tentatives de brute force, des bots qui cherchent des fichiers .env. Sans CDN, tout ca arrivait directement sur mon VPS.
Pourquoi meme un petit site en profite
Tu te dis peut-etre "mon site a 200 visiteurs par jour, j'ai pas besoin d'un CDN". Si. Trois raisons :
- La performance pour les visiteurs hors de ta region. Meme 5 visiteurs au Bresil meritent un temps de chargement correct.
- La sécurité gratuite. DDoS protection, WAF basique, bot détection. Sur le plan gratuit de Cloudflare. Ca vaut le coup meme pour un blog.
- Le SSL automatique. Cloudflare généré et renouvelle un certificat pour toi. Tu peux combiner ca avec le certificat Let's Encrypt de Caddy pour du chiffrement de bout en bout.
- La réduction de charge sur ton origin. Chaque requête servie depuis le cache du CDN, c'est une requête que ton VPS n'a pas a traiter.
Ce qu'on va couvrir dans cette serie
Sept articles au total. On va partir du fonctionnement technique d'un CDN, puis configurer Cloudflare pas a pas, mettre un CDN devant un bucket pour les fichiers statiques, parler sécurité, optimisation avancee, et finir avec un comparatif des solutions du marche.
Prochain article : Comment fonctionne un CDN : cache, edge et origin.
Navigation : Introduction | Suivant : 01 - Comment fonctionne un CDN
Sources
- Cloudflare Network Map par Cloudflare
- How CDNs Work par Cloudflare Docs
- Milliseconds Make Millions par web.dev
Retrouve d'autres articles techniques sur paltemps.fr.