Les perspectives des CDN en mode Pay as you go

le 07/12/2010 par Michel Domenjoud
Tags: Software Engineering

Les services de réseau de diffusion de contenu, ou Content Delivery Network (CDN), adressent des problématiques liées à l’optimisation des performances du web, que ce soit en terme de scalabilité ou de haute disponibilité.

Une présentation des solutions de CDN vient d’avoir lieu chez Octo dans le cadre du WebPerf User Group France. En parallèle, voici un petit retour suite à une étude menée sur le sujet, abordée dans l'optique d'avoir une solution à moindre coût notamment pour ressources d'une application iPhone.

Avec la démocratisation des moyens de diffusion d’information instantanés, allant de Facebook à Twitter, on assiste régulièrement au phénomène de buzz. Le phénomène existe depuis des années déjà et rejoint les problématiques rencontrées par tout site web qui connait un gain soudain de popularité. Celui-ci est encore plus vrai avec les applications pour smartphones : en moyenne, un mois après l’installation, seulement 15% des applications iPhone téléchargées sont encore utilisées : il est difficile de prévoir à l’avance le nombre de téléchargements et d’utilisateurs simultanés.

D’un point de vue technique, ce phénomène soulève plusieurs questions:

  • Comment répondre à cette montée en charge imprévisible?
  • Et si l'application proposée a un succès franc et durable, comment garantir des performances correctes pour tous les utilisateurs, quelle que soit leur localisation?
  • Les entreprises ne sont pas forcément prêtes à investir dans des serveurs et/ou des hébergements dédiés supportant ces pics de fréquentation : comment pallier à ces problématiques rapidement et à moindre coût?

Depuis plusieurs années, les CDN offrent des réponses intéressantes en termes de performances pour la distribution de ressources statiques. Ces solutions sont largement utilisées par des acteurs tels que Youtube, Allociné, ou encore par des sites de presse tels que Le Parisien.

La nouveauté est que certaines de ces solutions deviennent aujourd'hui accessibles même pour des petites structures grâce à une facturation entièrement basée sur la consommation.

Why CDN?

Initialement, ces services répondent à une problématique simple : une requête a un certain chemin à parcourir du navigateur au serveur d’un site, et la dernière partie de ce parcours est invariablement un chemin unique d’accès au serveur, ce qui peut engendrer un goulet d’étranglement.

De nombreuses solutions existent pour améliorer la disponibilité des sites web, que ce soit par exemple en augmentant les capacités des infrastructures, ou encore en optimisant son serveur HTTP avec des options de cache pour les fichiers statiques comme mod_cache sur un serveur Apache.

Les services CDN proposent de résoudre ces problèmes d’une autre manière, en rapprochant les ressources de l’utilisateur sur le réseau : plutôt que de disposer d’un point de service unique, on place un certain nombre de noeuds “à proximité” des utilisateurs finaux. Lors d’une requête pour accéder à une ressource, le service est alors à même de router la requête vers le noeud le plus proche contenant l’information. Ceci apporte deux avantages non négligeables :

  • une amélioration des temps de réponse: par exemple le blog Octo met aujourd’hui beaucoup plus de temps à s'afficher depuis les USA que depuis Paris. Avec un CDN, on peut espérer avoir un temps de réponse plus uniforme quelle que soit l’origine de la requête.
  • une garantie de haute disponibilité : la ressource est diffusée sur plusieurs noeuds supportant une forte montée en charge

Côté technique, le principe est similaire à l'utilisation d'un cache statique dans un ReverseProxy, et la recherche du meilleur noeud pour l'obtention d'un contenu s'appuie en général sur une résolution DNS. Les principaux atouts d'un CDN sont ces possibilités de performances et de disponibilité, mais les raisons d'utiliser un CDN peuvent être diverses. Un intérêt notable pour les sociétés souhaitant diffuser un contenu est la délégation technique du service, notamment pour des entreprises dont la diffusion de contenu n’est pas le coeur de métier. Ces services peuvent par exemple permettre de ne pas impacter un système existant, ou d'adresser des problèmes de fiabilité.

Le CDN accessible à tous

Historiquement, les services de CDN sont essentiellement utilisés par de gros acteurs du Web, notamment pour améliorer des services de streaming de médias. Ces services étaient en fait réservés à des diffuseurs de contenu de taille importante ou pour des utilisations massives, principalement en raison d’un coût élevé. Mais on voit aujourd'hui apparaître des solutions comportant une offre avec un paiement entièrement à la consommation, qui ouvrent des perspectives intéressantes concernant notre problématique du buzz.

En effet, les CDN sont dédiés à la diffusion de ressources statiques, mais en adaptant une architecture applicative afin de générer des ressources statiques, la perspective d’un applicatif scalable et reactif s’offre a nous.

On peut alors très bien imaginer utiliser une solution CDN dans le cadre de la publication d'une application mobile, qui ne connaîtra peut être pas une fréquentation constante, mais potentiellement un ou plusieurs pics de fréquentation, par exemple lors de retombées dans la presse.

Panorama de quelques solutions de CDN

On peut globalement distinguer deux types de solutions :

  • Des solutions clés en main
  • Des solutions intégrées à des services de cloud computing, pour lesquelles il est en général nécessaire de réaliser quelques paramétrages et/ou développements

Voici quelques solutions de CDN du marché. Cette liste est loin d'être exhaustive et vise à donner un bref aperçu des conditions de ces services et de leurs tarifs pour une utilisation à petite échelle.

Solutions "clés en main"

Le service est fourni clés en main, il suffit globalement de paramétrer la configuration DNS du serveur à mettre en cache. En moyenne, les prix de ces CDN ne sont pas publics, mais ils se caractérisent généralement par un prix forfaitaire à l'entrée, assorti d'un prix à la consommation. Plus les besoins sont importants, plus le prix d'entrée sera élevé, mais le prix à la consommation baissera en conséquence. De manière générale, le marché des CDN connaît des variations importantes de prix, qui ont globalement tendance à être revus à la baisse au fil des années.

Akamai

Akamai est un fournisseur historique de CDN et un des plus gros acteur du secteur : la société possède 73 000 serveurs répartis dans 70 pays, et ferait transiter 15 à 20% du trafic internet quotidien par son service.

Ikoula

Ikoula est une société française d'hébergement qui propose notamment un CDN clé en main dans la même veine qu'Akamai.

Par contre, cette offre s'adresse plus particulièrement à la France et à l'Europe, étant donné que les datacenters utilisés sont exclusivement en France et qu'Ikoula possède son propre datacenter à Reims. Cet aspect est plutôt intéressant pour les clients français, que ce soit pour les avantages d'un support de proximité ou des questions d'ordre juridique sur la localisation de l'hébergement.

Solutions cloud

Ce type de service apporte tous les avantages du cloud computing :

  • Élasticité : l'infrastructure s'adapte à la montée en charge
  • Self-service : le client est totalement autonome, peut souscrire au service en ligne et y accéder quelques minutes plus tard
  • Pay as you go : Facturation en fonction de la consommation réelle (processeur, stockage, trafic réseau)

L'avantage principal de ce type de service est qu'il ne comporte aucun prix forfaitaire. En contrepartie, quelques développements peuvent être nécessaires pour interfacer le CDN avec son serveur. Le choix d'une telle solution soulève toutefois plusieurs problématiques inhérentes aux solutions de cloud computing :

Amazon CloudFront

Le panel de l'offre Cloud d'Amazon Web Services intègre un service de CDN appelé CloudFront, et permet de configurer directement un espace de stockage statique (buckets Amazon S3) pour le mettre en cache CDN. On peut facilement automatiser la mise en cache moyennant quelques développements.

Les données en cache CDN peuvent être réparties sur les différents datacenters Amazon, et peuvent être restreintes à l'Europe par un hébergement en Irlande.

Microsoft Azure CDN

La solution CDN de Microsoft est techniquement assez équivalente à CloudFront, mais propose la mise en place du CDN via un simple paramétrage.

L'hébergement peut être fait dans le monde entier, et plus spécifiquement en France dans un datacenter à Paris.

Tableau comparatif

Lorsqu’un CDN ne suffit pas

Dans un contexte où la distribution de contenu est vitale pour l’entreprise, l’utilisation de meta-CDN, tels que Cedexis, proposent d’améliorer la qualité de service en utilisant plusieurs CDN à la fois. Ceci apporte deux avantages non négligeables:

  • en multipliant les réseaux de diffusion, on sécurise ce maillon de la chaîne
  • les ressources sont diffusés en choisissant à chaque instant le CDN le plus disponible, ce qui permet de lisser les performances  globales.

Perspectives

Les services de CDN restent globalement adressés à des acteurs importants du Web, pour qui la diffusion de contenus volumineux et/ou en grand nombre est vitale.

Cependant les solutions de CDN facturées en Pay as you go ouvrent de nouvelles perspectives en permettant de déployer rapidement et à moindre coût des ressources statiques dans un cadre optimisé.

On peut donc facilement envisager d'héberger les ressources statiques ou des ressources dynamiques rendues statiques pour une petite application de smartphone sans pour autant exploser les coûts.