Content Delivery Network

Posted Posted by Patrice Guay in Web hosting     Comments 2 comments
févr.
15

Représentation d'un Content Delivery NetworkUn « Content Delivery Network » (CDN) est un groupe de serveur de cache reliés en réseau via Internet. Les nœuds assurent la distribution du contenu de serveurs d’origine et accélèrent la livraison du contenu à l’utilisateur final. Les nœuds sont répartis géographiquement et sont généralement reliés à Internet via les liens les plus rapides disponibles à cet emplacement. Lorsqu’un visiteur navigue sur un site web doté d’un service CDN, le service CDN détermine l’emplacement géographique du visiteur et le dirige vers le nœud optimal.

Technologie

Un serveur web autonome distribue directement son contenu à ses utilisateurs finaux. Les visiteurs se connectant au serveur web récupèrent les fichiers de données (feuilles de style, scripts, textes, musique, vidéo, etc) à partir de ce serveur unique. Le délai entre la demande du client et la réponse du serveur variera en fonction de la distance entre le serveur et le client. En outre, si la bande passante du serveur est saturée, le taux de transfert pour les clients est réduit. Pour contourner ces problèmes, un CDN distribue géographiquement le contenu sur plusieurs nœuds.

(gauche) distribution centralisée de contenu; (droite) distribution décentralisée de contenu

(gauche) distribution centralisée de contenu; (droite) distribution décentralisée de contenu

Chaque nœud agit comme une cache pour le contenu du site. Certains réseaux CDN utilisent une hiérarchie pour optimiser la distribution de contenu sur les différents nœuds. Par exemple, un ensemble assez restreint de nœuds primaires (« core nodes ») ira chercher les données sur le serveur web d’origine selon un horaire régulier. Les données de ces nœuds primaires sont ensuite distribuées aux autres nœuds appelés nœuds en bordure (« edge nodes »). Les nœuds de mise en cache sont coordonnés afin de se partager les requêtes des visiteurs pour optimiser la performance du transfert des données (latence, bande passante) ou le coût de livraison des données ($/GB).

Diverses règles peuvent être configurées pour spécifier quels fichiers doivent être mis en cache ainsi que la fréquence de rafraîchissement du cache. Tandis que tous les fichiers statiques du serveur web d’origine peuvent être distribués par le CDN, la livraison de pages web générées dynamiquement est plus complexe. Par exemple, il y a peu d’intérêt à servir via le CDN un contenu généré suite à une demande vers la base de données tout particulièrement si les paramètres de la demande sont variables et peu susceptibles d’être utilisés par plus d’un visiteur.

Pour orienter les visiteurs du serveur web vers le CDN, vous aurez besoin de modifier la configuration DNS associée à votre adresse IP. Le fournisseur de service CDN vous demandera probablement de configurer une entrée DNS supplémentaire pointant vers le serveur web d’origine. Avec une telle configuration, vos visiteurs communiqueront désormais avec le service CDN à chaque fois qu’ils visitent votre site web. Les nœuds du service CDN se connecteront à votre serveur d’origine pour rafraîchir leur cache et récupérer le contenu qu’ils n’ont pas dans leur cache, tel que les pages générées dynamiquement.

Bénéfices

Latence

Un des avantages principaux d’un service CDN est de réduire la latence de votre site web. Puisque le contenu de votre site web est physiquement plus proche de l’utilisateur final avec un CDN, le délai entre la demande du client et les premiers bits de données est réduit. Ainsi, la réactivité de votre site est globalement augmentée. Ce type d’avantage est intéressant pour les sites web servant un grand nombre de petits fichiers. Par exemple, imaginons que le serveur web d’origine est situé à New York et que le visiteur se trouve à Londres. La latence normale pour une telle distance est d’environ 80ms. Le délai entre la demande du client et la réponse du serveur pour un fichier sur de 1kB via un lien 100Mb/s (12 500kB/s) lien sera :

0,080 s + 1 kB / 12 500kB/s = 0,080 s

Clairement, pour accélérer la distribution de petits fichiers, réduire la latence en déplaçant le serveur le plus proche possible du visiteur est la clef. L’utilisation d’une solution CDN ayant des nœuds installés à proximité de votre public cible améliorera la réactivité de votre site Web.

Bande passante

Tandis que pour la livraison de petits fichiers le temps de latence est la clef, le défi pour les gros fichiers est différent. Pour la musique et la diffusion de vidéos, la latence est moins critique car le délai entre la demande du client et la réception des premiers bits de données est plus petit que le temps nécessaire pour réellement télécharger le fichier. Par exemple, considérons à nouveau un serveur web situé à New York et un visiteur trouve à Londres. Le délai entre la demande du client et la réponse du serveur pour un fichier de 100 MB sur un lien 100Mb/s (12.5MB/s) lien sera :

0,080 s + 100 MB / 12.5MB/s = 8,080 s

Pour accélérer la livraison des données, la solution est d’améliorer la bande passante entre le serveur et le poste de travail des visiteurs. L’utilisation d’un service CDN ayant plusieurs nœuds dotés d’une grande bande passante va augmenter la bande passante globale de votre solution web. En outre, la taille allouée pour le cache de votre contenu doit être assez grand pour vos fichiers les plus demandés.

Conclusion

La liste suivante présente les principaux éléments à garder à l’esprit lorsque vous évaluez les différents fournisseurs de services CDN :

  • Qualité de la coordination des nœuds
  • Proximité des nœuds par rapport à vos visiteurs réguliers
  • Bande passante des nœuds
  • Taille du cache des nœuds
  • Nombre de nœuds disponibles pour la distribution de votre contenu
  • Design du panneau de contrôle CDN (contrôle du contenu en cache, disponibilité des données d’utilisation et statistiques)

2 Comments to “Content Delivery Network”

  • Web and application publishers expect content delivery networks to reduce their cost of content delivery and to improve their end user experience. So what if your CDN told you that they would do all these things but along the way you had to accept that each month somewhere between 10% to 40% of your files would get flushed from cache because these files weren’t as popular as files from their other customers?

    And what if your CDN told you that when they flush files from cache you:

    • pay extra for infrastructure to handle cache misses;
    • pay extra for delivery when those files are requested;
    • can’t predict your content delivery bill;
    • can’t provide a predictable experience

    Would you accept these extra costs and compromised end user experiences like thousands have or would you seek a better solution? Proxy cache CDNs—by their very nature–cache and purge content based on the popularity of one customer’s content versus another’s.

    BitGravity architected its video delivery network so that all customers are treated equally and are provided with a lower cost way to deliver better video experiences. BitGravity customers upload their content to large origin servers, the content is replicated to the dense storage and delivery nodes within the customer’s selected theater, and multiple copies of the customer’s content are kept on the origin servers.

    The result? With zero cache misses, customers overall cost of delivery is lower and predictable, and the HD and SD videos they deliver to their end users start instantly and don’t buffer. If you have any questions, requirements for HD VOD, storage, or live streaming, or want to see a demo of BitGravity’s products, please contact us.

  • Good article. Thanks a lot. Personally i’d recommend to use Edgecast CDN. Even such a big names as WordPress and Twitter have chosen it. But it’s not only for big players. It has everything that was mentioned above to offer mid-sized business. Though it may be a bit inconvenient to make an annual contract with them. So everybody that wants no contract and affordable prices for quality Edgecast’s services may take a look at their resellers. There are several of them. Check out Jodihost, for example. And to read more about their cdn-services you can at https://www.jodihost.com/services_streaming.php

Post comment

Advertisements