Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

eZHumanCAPTCHACode reload
retour

Infrastructures Globales et CDN

Infrastructures Globales et CDN

Nous nous intéressons aux sites qui servent des internautes dans un grand nombre de pays, qui s’adressent à toute la planète. Nous verrons que ces sites requièrent des solutions spécifiques pour assurer une qualité de service homogène sur tous les continents.

Un monde tout petit ?

On dit parfois que l’Internet supprime les distances, mais ce n’est pas tout à fait exact. La distance physique, géographique, séparant un serveur web et l’internaute a une réelle influence sur les performances perçues, même si elle n’a aucune influence sur les performances du serveur lui-même. Il arrive couramment que des sites qui s’ouvrent à un public international se plaignent de la lenteur perçue par des internautes chinois, australiens ou bien brésiliens, alors que tout allait bien lorsqu’ils ne s’adressaient qu’aux européens.

En matière de télécommunication, deux grandeurs essentielles sont à distinguer : le débit et le temps de latence. Le débit, c’est le nombre de bits ou d’octets par seconde que l’on peut transporter. Le temps de latence c’est le temps que met le premier octet à arriver. Ou bien on parle parfois de temps d’aller-retour (« RTT ou Round Trip Time »), le temps que met un octet à faire un aller-retour, plus facile à mesurer par un simple « ping » que le seul temps aller.

Or on s’intéresse le plus souvent au débit, en supposant le temps de latence négligeable. Mais à l’échelle de la planète, ce n’est pas le cas.

La limite inférieure au temps de latence est liée à la vitesse de la lumière. La vitesse de la lumière dans les fibres optiques est environ 2/3 de la vitesse de la lumière dans le vide, c’est à dire 0,66 x 300 x 106 m.s-1, soit 200 x 106 m.s-1 (200 000 km par seconde). C’est rapide, mais la terre est grande. Il y a 9 000 km à vol d’oiseau entre Paris et la Californie, ce qui représente un temps de latence minimal de 45 ms. 17 000 km entre Paris et Sidney, soit 85 ms au minimum.

image042

De plus, les fibres optiques sont posées au fond des mers et non à vol d’oiseau, et chaque routeur traversé ajoute un petit temps de latence, de sorte que le temps de latence réel peut être facilement double du minimum théorique. Et ce temps de latence croissant avec les distances tend à faire baisser les débits également. Voici une représentation de la capacité installée effective.

image044
image046

L’image précédente, issue de www.woozweb.com, fait apparaître le temps de réponse d’une page html de 380 ko, tel qu’il est perçu depuis la France (courbe noire en bas) et depuis les Etats-Unis (courbe rouge en haut). L’axe des x représente le temps en heures, avec une mesure tous les ¼ d’heures. On constate que le temps de réponse perçu pour ce seul fichier est environ double depuis les Etats-Unis, avec aussi une moindre stabilité c’est à dire des pics plus importants.

 

Les chinois devront-ils se résigner ?

La seule solution pour obtenir d’excellentes performances en tous points du globe est de servir les contenus depuis différents serveurs, en choisissant le serveur le plus proche de l’internaute. Lorsque le service est lui-même localisé par nature, c’est à dire lorsque les chinois et les européens n’accèdent pas aux mêmes pages, n’achètent pas les mêmes produits, alors le plus simple est de prendre un hébergement dans différentes zones géographiques, au minimum Amérique, Europe, Asie, avec des plateformes totalement distinctes, n’échangeant que quelques flux de synthèse au niveau back-office (états des ventes, tables de référence…).

Dans certains cas toutefois, cette approche ne convient pas. Soit le service est intrinsèquement global et ne peut pas être découpé en sous-domaines indépendants. Ce peut être le cas d’un FaceBook par exemple. Soit au contraire le service n’est pas assez global pour pouvoir se permettre un hébergement multiple.

Content Delivery Network

On appelle CDN, Content Delivery Network, un dispositif qui permet de servir les mêmes contenus depuis différents serveurs, en sélectionnant le serveur le plus proche de l’internaute. Les plus grands acteurs de l’Internet ont construit leur propre CDN, mais les autres ont recours à des prestataires commerciaux.

Un CDN maison pour pas cher

Prenons un cas très simple. Vous avez une plateforme web hébergée en France, qui adresse des clients dans le monde entier. Vos pages, comme celles d’un site moyen, se chargent en 3-5 secondes, dont disons 4 pour les différents composants statiques, images et autres. Depuis l’Asie, ces 4 secondes deviennent 8 ou 10.

Comment y remédier simplement ? Il suffit de louer un petit serveur pas cher dans un bon datacenter local, par exemple en Corée du Sud, et d’y servir tous vos fichiers statiques. Pour cela, on mettra en place un serveur de cache de type Squid, qui conserve localement une copie des fichiers. Ensuite, il faut encore que, pour vos internautes asiatiques, les images soient servies depuis le serveur coréen. Soit vous gérez cet aiguillage par vous mêmes, en détectant l’origine de l’internaute et en insérant des images <img src="http://www-asia.smile.fr"> au lieu des références d’images précédentes. Ca demande un peu de code, mais en termes d’architecture c’est assez simple. L’alternative serait de conserver le même nom de serveur www-static.smile.fr indépendamment de la géolocalisation, mais de lui faire correspondre différentes IP, donc différents serveurs.

Vous aurez alors construit votre propre CDN et amélioré sensiblement les performances perçues par vos internautes chinois, pour un coût très raisonnable.

image048

Prestataires CDN

On peut distinguer deux niveaux dans la mise en œuvre d’un CDN. Soit le CDN ne distribue que certains types de composants, typiquement les images, vidéos, css, etc. Soit le CDN va plus loin et joue un rôle de cache sur des fragments de Html, produits par des applications. Sur ce dernier aspect, on se reportera à « Cache par fragments ».

La mise en œuvre du CDN pour servir localement les composants statiques seulement peut être transparente et très rapidement mise en œuvre. Outre l’option « maison » évoquée ci-dessus, il existe quelques prestataires proposant un CDN prêt à l’emploi. Dans une approche un peu plus « pro », on ne bricolera pas les tags <img>, on comptera plutôt sur le DNS pour diriger les requêtes d’images vers le serveur le plus proche. Outre la quasi-transparence de la mise en œuvre, les CDN commerciaux ont bien sûr une couverture mondiale difficilement égalable.

Ces dernières années, le marché avait été écrasé par l’acteur dominant Akamai, qui avait de plus racheté quelques-uns de ses concurrents et dont l’action a été multipliée par 4 en 2006. Mais l’arrivée massive des vidéos a donné un nouvel élan à ce secteur, et fait apparaître de nombreux concurrents, qui ont ouvert une guerre des prix sévère ; en particulier Limelight Networks, Level 3, Internap, CDNetworks, ou encore Panther Express.