Utilisation d’un CDN pour accélérer la diffusion de contenu statique

introduction

Les sites Web et les applications modernes doivent souvent fournir une quantité importante de contenu statique aux utilisateurs finaux. Ce contenu comprend des images, des feuilles de style, du JavaScript et des vidéos. À mesure que ces ressources statiques augmentent en nombre et en taille, l’utilisation de la bande passante augmente et le temps de chargement des pages augmente, ce qui détériore l’expérience de navigation de vos utilisateurs et réduit la capacité disponible de vos serveurs.

Pour réduire considérablement les temps de chargement des pages, améliorer les performances et réduire les coûts de votre bande passante et de votre infrastructure, vous pouvez implémenter un CDN, ou une version c , pour mettre en mémoire ensemble de serveurs répartis géographiquement.

Dans ce didacticiel, nous fournirons une vue d’ensemble des CDN et de leur fonctionnement, ainsi que des avantages qu’ils peuvent apporter à vos applications Web.

Qu’est-ce qu’un CDN?

Un réseau de distribution de contenu est un groupe de serveurs géographiquement répartis optimisé pour fournir du contenu statique aux utilisateurs finaux. Ce contenu statique peut contenir presque toutes sortes de données, mais les CDN sont le plus souvent utilisés pour fournir des pages Web et leurs fichiers associés, du streaming vidéo et audio et des packages logiciels volumineux.

image: http: //assets.digitalocean.com/articles/CDN/without-CDN.png [Diagramme de la diffusion de contenu sans CDN]

Un CDN est constitué de plusieurs points de présence (PoPs) situés à divers emplacements, chacun comprenant plusieurs serveurs edge qui mettent en cache des actifs de votre origin ou de votre serveur hôte. Lorsqu’un utilisateur visite votre site Web et demande des ressources statiques telles que des images ou des fichiers JavaScript, leurs demandes sont acheminées par le CDN vers le serveur de périphérie le plus proche, à partir duquel le contenu est diffusé. Si les actifs mis en cache ne sont pas mis en cache sur le serveur Edge ou s’ils ont expiré, le CDN extraira et mettra en cache la dernière version à partir d’un autre serveur Edge CDN situé à proximité ou de vos serveurs d’origine. Si CDN Edge dispose d’une entrée de cache pour vos actifs (ce qui survient la plupart du temps si votre site Web reçoit un trafic modéré), la copie en cache sera renvoyée à l’utilisateur final.

image: http: //assets.digitalocean.com/articles/CDN/CDN.png [Diagramme du réseau de distribution de contenu (CDN)]

Cela permet aux utilisateurs géographiquement dispersés de minimiser le nombre de sauts nécessaires à la réception de contenu statique, en le récupérant directement dans la mémoire cache d’un bord proche. Il en résulte une réduction significative des latences et des pertes de paquets, des temps de chargement de page plus rapides et une réduction drastique de la charge de votre infrastructure d’origine.

Les fournisseurs de CDN offrent souvent des fonctionnalités supplémentaires telles que: DDoS l’atténuation et la limitation de débit, l’analyse utilisateur et l’optimisation pour la diffusion en continu ou l’utilisation mobile cas à un coût supplémentaire.

Comment fonctionne un CDN?

Lorsqu’un utilisateur visite votre site Web, il reçoit d’abord une réponse d’un serveur DNS contenant l’adresse IP de votre serveur Web hôte. Leur navigateur demande ensuite le contenu de la page Web, qui consiste souvent en une variété de fichiers statiques, tels que des pages HTML, des feuilles de style CSS, du code JavaScript et des images.

Une fois que vous avez déployé un CDN et que vous avez déchargé ces actifs statiques sur des serveurs CDN, soit en les «déplaçant» manuellement, soit en les faisant extraire automatiquement par le CDN (les deux mécanismes sont décrits dans la https://www.digitalocean.com/ communauté / tutoriels / en utilisant un CDN pour accélérer la livraison de contenu statique # push-vs-pull-zones [section suivante]), vous demandez ensuite à votre serveur Web de réécrire les liens vers du contenu statique de sorte que les liens pointent maintenant vers des fichiers hébergés par le CDN. Si vous utilisez un CMS tel que WordPress, cette réécriture de lien peut être implémentée à l’aide d’un plug-in tiers, tel que CDN Enabler.

De nombreux CDN prennent en charge des domaines personnalisés, vous permettant de créer un enregistrement CNAME sous votre domaine pointant vers un point de terminaison CDN. Une fois que le CDN reçoit une demande d’utilisateur sur ce point de terminaison (situé au bord, beaucoup plus près de l’utilisateur que vos serveurs principaux), il achemine ensuite la demande au point de présence le plus proche de l’utilisateur. Ce point de présence consiste souvent en un ou plusieurs serveurs de périphérie CDN co-localisés à un point d’échange Internet (IxP), essentiellement un centre de données que les fournisseurs de services Internet (ISP) utilisent pour interconnecter leurs réseaux. L’équilibreur de charge interne du CDN achemine ensuite la demande à un serveur de périphérie situé sur cette PoP, qui en transmet le contenu à l’utilisateur.

Les mécanismes de mise en cache varient selon les fournisseurs de CDN, mais ils fonctionnent généralement comme suit:

  1. Lorsque le CDN reçoit une première demande d’actif statique, telle qu’une image PNG, l’actif n’est pas mis en cache et doit extraire une copie de l’actif d’un serveur Edge CDN voisin ou du serveur d’origine lui-même. Cela s’appelle un «raté» de cache et peut généralement être détecté en inspectant l’en-tête de la réponse HTTP, contenant + X-Cache: MISS +. Cette demande initiale sera plus lente que les demandes futures car après avoir terminé cette demande, l’actif aura été mis en cache sur le bord.

  2. Les futures demandes pour cet actif («hits» de cache), acheminées vers cet emplacement périphérique, seront désormais servies à partir de l’antémémoire jusqu’à la date d’expiration (généralement définies via des en-têtes HTTP). Ces réponses seront nettement plus rapides que la demande initiale, ce qui réduira considérablement les latences des utilisateurs et déchargera le trafic Web sur le réseau CDN. Vous pouvez vérifier que la réponse a été servie à partir d’un cache CDN en inspectant l’en-tête de réponse HTTP, qui devrait désormais contenir + X-Cache: HIT +.

Pour en savoir plus sur le fonctionnement et l’implémentation d’un CDN spécifique, consultez la documentation de votre fournisseur CDN.

Dans la section suivante, nous présenterons les deux types de CDN les plus populaires: * push * et * pull * CDN.

Push vs. Zones de tirage

La plupart des fournisseurs de CDN proposent deux méthodes de mise en cache de vos données: les zones d’extraction et les zones de diffusion.

  • Les zones de tirage * impliquent la saisie de l’adresse de votre serveur d’origine et la possibilité pour le CDN d’extraire et de mettre en cache automatiquement toutes les ressources statiques disponibles sur votre site. Les zones de tirage sont généralement utilisées pour fournir des ressources Web fréquemment mises à jour, de taille petite à moyenne, telles que des fichiers HTML, CSS et JavaScript. Après avoir fourni au CDN l’adresse de votre serveur d’origine, la prochaine étape consiste généralement à réécrire les liens dans des actifs statiques de sorte qu’ils pointent maintenant vers l’URL fournie par le CDN. À partir de ce moment, le CDN traitera les demandes d’actifs entrantes de vos utilisateurs et servira le contenu à partir de ses caches distribués géographiquement et de votre origine, le cas échéant.

Pour utiliser une * Push Zone *, vous téléchargez vos données dans un compartiment ou un emplacement de stockage désigné, que le CDN envoie ensuite dans la mémoire cache de sa flotte de serveurs de périphérie distribuée. Les zones de transfert sont généralement utilisées pour les fichiers volumineux, qui changent peu, tels que les archives, les packages logiciels, les fichiers PDF, les fichiers vidéo et audio.

Avantages de l’utilisation d’un CDN

Presque tous les sites peuvent tirer parti du déploiement d’un CDN, mais les principales raisons d’en implémenter sont généralement de décharger la bande passante de vos serveurs d’origine sur les serveurs CDN et de réduire le temps de latence pour les utilisateurs répartis géographiquement.

Nous allons passer en revue ces avantages et plusieurs des autres avantages majeurs offerts par l’utilisation d’un CDN ci-dessous.

Déchargement d’origine

Si vous approchez de la bande passante sur vos serveurs, le déchargement de ressources statiques telles que des images, des vidéos, des fichiers CSS et JavaScript réduira considérablement l’utilisation de la bande passante de vos serveurs. Les réseaux de distribution de contenu sont conçus et optimisés pour servir du contenu statique, et les demandes des clients pour ce contenu seront acheminées vers et servies par les serveurs CDN de périphérie. Cela présente l’avantage supplémentaire de réduire la charge sur vos serveurs d’origine, car ils servent ces données à une fréquence beaucoup plus basse.

Latence plus faible pour une expérience utilisateur améliorée

Si votre base d’utilisateurs est géographiquement dispersée et qu’une partie non triviale de votre trafic provient d’une zone géographique distante, un CDN peut réduire la latence en mettant en cache des actifs statiques sur des serveurs périphériques plus proches de vos utilisateurs. En réduisant la distance entre vos utilisateurs et le contenu statique, vous pouvez fournir plus rapidement du contenu à vos utilisateurs et améliorer leur expérience en augmentant la vitesse de chargement des pages.

Ces avantages s’ajoutent aux sites Web qui diffusent principalement du contenu vidéo gourmand en bande passante, où les latences élevées et les temps de chargement lents ont un impact plus direct sur l’expérience utilisateur et l’engagement du contenu.

Gérez les pics de trafic et évitez les temps d’arrêt

Les CDN vous permettent de gérer des pics et des rafales de trafic importants en équilibrant la charge sur un grand réseau distribué de serveurs de périphérie. En déchargeant et en mettant en cache du contenu statique sur un réseau de distribution, vous pouvez accueillir un plus grand nombre d’utilisateurs simultanés avec votre infrastructure existante.

Pour les sites Web utilisant un seul serveur d’origine, ces pics de trafic importants peuvent souvent submerger le système, provoquant des pannes et des temps d’arrêt imprévus. Le transfert du trafic sur une infrastructure CDN hautement disponible et redondante, conçu pour gérer des niveaux variables de trafic Web, peut augmenter la disponibilité de vos actifs et de votre contenu.

Réduire les coûts

Le fait de servir du contenu statique constituant généralement la majeure partie de votre utilisation de bande passante, le déchargement de ces actifs sur un réseau de diffusion de contenu peut réduire considérablement vos dépenses mensuelles en infrastructure. En plus de réduire les coûts de bande passante, un CDN peut réduire les coûts de serveur en réduisant la charge sur les serveurs d’origine, permettant ainsi à votre infrastructure existante de s’adapter. Enfin, certains fournisseurs de CDN offrent une facturation mensuelle à prix fixe, vous permettant de transformer votre utilisation mensuelle variable de la bande passante en une dépense récurrente stable et prévisible.

Augmenter la sécurité

Un autre cas d’utilisation courant des CDN est l’atténuation des attaques DDoS. De nombreux fournisseurs de CDN incluent des fonctionnalités permettant de surveiller et de filtrer les demandes adressées aux serveurs de périphérie. Ces services analysent le trafic Web à la recherche de modèles suspects, bloquant ainsi le trafic des attaques malveillantes tout en permettant au trafic des utilisateurs de qualité. Les fournisseurs de CDN offrent généralement une variété de services d’atténuation des attaques DDoS, allant de la protection commune contre les attaques au niveau de l’infrastructure (OSI couches 3 et 4), à plus services d’atténuation avancés et limitation du débit.

En outre, la plupart des CDN vous permettent de configurer le protocole SSL complet afin de chiffrer le trafic entre le CDN et l’utilisateur final, ainsi que le trafic entre le CDN et vos serveurs d’origine, à l’aide de certificats SSL personnalisés ou fournis par le CDN.

Choisir la meilleure solution

Si votre goulot d’étranglement est la charge de l’UC sur le serveur d’origine et non la bande passante, un CDN peut ne pas être la solution la plus appropriée. Dans ce cas, la mise en cache locale à l’aide de caches populaires tels que NGINX ou Varnish peut réduire considérablement la charge en servant des ressources à partir de la mémoire système.

Avant de déployer un CDN, des étapes d’optimisation supplémentaires, telles que la réduction et la compression des fichiers JavaScript et CSS et l’activation de la compression des demandes HTTP du serveur Web, peuvent également avoir un impact significatif sur les temps de chargement des pages et l’utilisation de la bande passante.

Https://developers.google.com/speed/pagespeed/insights/[pageSpeed ​​Insights] est un outil utile pour mesurer la vitesse de chargement de votre page et l’améliorer. Https://www.pingdom.com/[Pingdom] est un autre outil utile qui fournit une analyse détaillée des temps de réponse et des demandes, ainsi que des optimisations suggérées.

Conclusion

Un réseau de diffusion de contenu peut constituer une solution rapide et efficace pour améliorer l’évolutivité et la disponibilité de vos sites Web. En mettant en cache des actifs statiques sur un réseau de serveurs optimisés répartis géographiquement, vous pouvez réduire considérablement les temps de chargement des pages et les latences pour les utilisateurs finaux. De plus, les CDN vous permettent de réduire considérablement votre consommation de bande passante en absorbant les demandes des utilisateurs et en répondant à partir de la mémoire cache à la périphérie, réduisant ainsi vos coûts en bande passante et en infrastructure.

Grâce aux plug-ins et à la prise en charge tierce de cadres majeurs tels que WordPress, Drupal, Django et Ruby on Rails, ainsi qu’à des fonctionnalités supplémentaires telles que l’atténuation des attaques DDoS, le protocole SSL complet, la surveillance des utilisateurs et la compression des ressources, les CDN peuvent être un outil puissant pour la sécurisation et la sauvegarde. optimiser les sites Web à fort trafic.