Nous avons décidé de vous présenter des facettes de notre service à travers plusieurs articles sur les fondamentaux de la performance web. Cet article suit l’article précédent sur la gestion du cache. Aujourd’hui, nous nous intéresserons aux CDN (Content Delivery Network) qui sont un élément essentiel de l’écosystème Internet. Les CDN, qu’ils soient régionaux/nationaux ou internationaux, vont optimiser la diffusion du contenu vers l’utilisateur. Ils agissent comme une couche de cache (“photocopie des contenus”) distribuée et située au plus proche des utilisateurs finaux. Les CDN sont associés à un mécanisme de routage intelligent vers le serveur de cache le plus proche de l’utilisateur (proche au sens “réseau”), comme nous le détaillons par ailleurs dans sur notre page dédiée. cdn Quel effet concret ? Le CDN est là pour réduire les requêtes à l’origine (votre plateforme d’hébergement principale) et raccourcir le temps de téléchargement des éléments de la page. C’est un composant fondamental en terme de webperf.

Fasterize vous simplifie la mise en place d’un CDN

Pour nos clients actuels, nous avons mis en place différents outils et fonctionnalités liées au CDN tels que le sharding des noms de domaines et un outil de vidage de cache (flush) multi-CDN.

Séparation des ressources statiques et des ressources dynamiques

Les ressources statiques sont les éléments de la page qui ne dépendent pas d’un utilisateur : images, JS, CSS, Flash, etc… Une de nos options d’optimisation est le sharding de noms de domaine. Le sharding d’URL consiste à paralléliser au mieux les chargements des ressources par les navigateurs des utilisateurs en distribuant les ressources statiques via des domaines différents (un navigateur peut faire aujourd’hui 6 connexions par domaines en moyenne). Par exemple :
<img src="http://www.site.com/bar.png" />
pourra devenir
<img src="http://static1.site.com/foo.png"><img src="http://static2.site.com/bar.png">

Dans le cas ci-dessus, les ressources sont encore sur le domaine principal site.com et continuent donc de transporter des cookies. Lorsque notre moteur sharde les URL, il en profite pour changer le nom de domaine utilisé pour les objets statiques. Ainsi, on aurait suivant l’exemple précédent :
<img src="http://www.site.com.s0.frz.io/foo.png"><img src="http://www.site.com.s1.frz.io/bar.png">

Dès lors, ces domaines distincts du domaine principal ne contiennent pas de cookies. Il est ainsi possible d’économiser jusqu’à une centaine de kilo-octets de cookies inutilement transmis. Par exemple, sur le site site 4chan, le passage sur des domaines sans cookies a fait économiser 100Ko par chargement de pages soit 46 térabytes par mois. L’effet est encore plus important sur mobile où la bande passante en upload est très restreinte et la latence très importante (300ms en 3G). Au final, le fait d’utiliser ces noms de domaines différents permet de ne mettre un CDN que sur les ressources statiques et simplifie grandement leur configuration.

Flush multi-CDN

Pour obtenir un taux de disponibilité de 100% et de meilleures performances, il est possible d’utiliser des solutions qui combinent plusieurs CDN. Notre partenaire Cedexis offre une solution innovante Openmix de routage dynamique des requêtes vers plusieurs CDN selon divers critères comme le taux de disponibilité, les temps de réponses ou encore en fonction d’un budget. Cette solution a beaucoup d’avantages mais peut s’avérer difficile à maintenir si le site n’a pas mis en place le versioning des ressources statiques. En effet, lors d’une mise à jour du site, si certaines ressources d’un site sont modifiées mais gardent la même URL, il faudra vider le cache de chaque CDN pour servir la dernière version à jour. Une des raisons pour laquelle certains clients peuvent être réticents à l’usage de multiples CDN est lié au fait qu’il faille vider le cache de chaque CDN, soit depuis sur leurs interfaces respectives, soit depuis leurs API. Pour celà, Fasterize implémente une fonctionnalité de versionnement des resources statiques qui permet lors du flush du cache de Fasterize, de flusher en cascade l’ensemble des caches incluant le ou les CDN. Ce flusher est indépendant du service Fasterize. Si vous souhaitez l’utiliser, n’hésitez pas à nous contacter. La suite… Depuis quelques semaines, nous proposons également la fonctionnalité d’URL versioning dans notre moteur afin de mettre à jour facilement toute la chaîne de cache : proxy caches, CDN et navigateurs. Ce sera le sujet d’un prochain article. Comme toujours, si vous souhaitez essayer notre service, lancez-vous ! Pour rappel, vous bénéficiez d’un premier mois gratuit et de toutes l’assistance d’une équipe d’experts de la web performance.