Skip links

Un CDN se cache (aussi) derrière votre playlist musicale

Jingle Bells, Blinding Lights ou Highway to Hell : chacun a ses chansons préférées et compte bien les écouter où et quand bon lui semble… grâce à son application de streaming musical !

 

Mais le streaming, c’est quoi ? C’est la diffusion de données en flux continu via internet, généralement d’un serveur à un utilisateur. Le streaming musical, lui, permet d’écouter instantanément de la musique sur une application. Les titres disponibles se comptent en millions sur des plateformes comme Deezer, Spotify, Qobuz ou Apple Music. Elles proposent généralement un abonnement payant, sans publicité.

Cette formule connaît un franc succès : en 2020, le streaming musical comptait 443 millions d’utilisateurs avec un compte payant. Les revenus du streaming musical représentaient plus de la moitié (56%) du marché mondial de la musique enregistrée[1].

Si certaines applications ciblent davantage les professionnels et mélomanes, la plupart ciblent le grand public. Afin de rester concurrentielles, nombre d’entre elles s’alignent sur une offre individuelle à 9,99€/mois.

Pour proposer une écoute qualitative et un catalogue immense à ce prix attractif, les streamers musicaux doivent optimiser leurs services… et leurs frais ! Ils font alors appel à différents acteurs, dont les CDN. Comment un CDN va-t-il pouvoir optimiser les services d’un streamer musical ? Pour y répondre, il faut comprendre les particularités du secteur.

L’APPLICATION DE STREAMING MUSICAL DOIT RÉPONDRE À DES BESOINS UTILISATEURS PRÉCIS.

Marion, une utilisatrice lambda, souhaite une lecture instantanée, sollicite des contenus divers, à toute heure, dans tous lieux, avec un débit plus ou moins bon, et zappe rapidement un morceau quand il ne lui plaît pas. À ce type d’usages, s’ajoutent la multiplicité et la diversité des goûts musicaux des millions d’utilisateurs, situés partout dans le monde.

L’objectif du streamer musical est donc de garantir à chacun de ses utilisateurs une écoute qualitative, instantanée, mobile, à la demande, très variée… et à prix abordable.

Garantir une écoute qualitative et instantanée

L’application fait recours à plusieurs outils pour garantir une écoute sans interruption. Quand Marion choisit d’écouter une chanson de The Who sur son application mobile de streaming musical :

  • L’application passe généralement par un CDN, qui envoie la requête au serveur sur lequel la chanson est stockée (s’il ne l’a pas déjà en cache !),
  • Celui-ci renvoie le fichier en petits paquets de données,
  • Ces paquets sont reçus par l’application, et stockés temporairement dans le buffer, la mémoire-tampon. Grâce à ce mécanisme de buffering, l’application garde en cache le contenu téléchargé avant de le jouer. Cela permet d’être moins dépendant de la variation du réseau, et de garantir une écoute sans interruption.
  • Lorsque suffisamment de données sont dans le buffer, la lecture démarre.
  • Pendant ce temps, le reste du flux continue de charger dans le buffer, et la lecture poursuit son cours de manière fluide

Proposer un vaste catalogue à moindres frais

S’adapter aux goûts musicaux divers et variés des utilisateurs nécessite un catalogue musical vaste et accessible à toute heure. Pour stocker un tel catalogue, les streamers passent par un service d’hébergement en réseau, le cloud computing, proposé par des plateformes comme Microsoft Azure, Google Cloud Platform ou Amazon Web Services (AWS).

Volume des catalogues des applications
Apple Music propose 90 millions de morceaux[2], et Deezer plus de 73 millions, sans compter podcasts et livres audio[3] ! Le catalogue est d’autant plus volumineux que certains streamers, comme Qobuz, proposent différentes qualités audio : une chanson va être stockée plusieurs fois sous différents formats. Et plus le fichier est qualitatif… plus il est lourd !

Ces plateformes offrent une grande flexibilité et un accès à des ressources « illimitées » (serveurs, stockage) mais facturent notamment au volume de données sortantes.

Les catalogues sont volumineux et les utilisateurs nombreux : le volume des musiques streamées sortant de ces infrastructures est donc important, et la facture dispendieuse.

Exemple : si chacun des 406M d’utilisateurs de Spotify[4] écoute une chanson en basse qualité (3MB) aux tarifs publics d’AWS, soit 0,04 $ / GB, le streamer devra payer 48 720$ de flux sortant. Cela devient très onéreux quand on multiplie ce chiffre par le nombre d’écoutes journalières.

L’INTÉRÊT MAJEUR D’UN CDN POUR LE STREAMER MUSICAL : RÉDUIRE LES COÛTS.

Grâce à la mise en cache des fichiers audio sur ses serveurs, le CDN permet d’éviter de sursolliciter l’origine et donc l’hébergeur ! Cette mise en cache limite le volume demandé à l’hébergeur (volume sortant, nombre de serveurs nécessaires, etc.) et diminue les coûts d’hébergement.

Résultat : plus le nombre de fichiers audio mis en cache sur le CDN sera grand, plus les coûts d’hébergement de l’application de streaming seront réduits.

La capacité du CDN à cacher un nombre important de fichiers s’appelle la performance de cache.

Il est intéressant d’optimiser cette performance pour réduire davantage les coûts. Pour ce faire, un CDN doit répondre à plusieurs défis.

Zoom sur la performance de cache :
La performance de cache se mesure grâceau taux d’Offload. Plus ce taux est élevé, plus le CDN est performant en cache.Ainsi le service de streaming aura intérêt à chercher à augmenter le tauxd’Offload.
Taux d’Offload : volume du contenu servi par le CDN divisé par le volume total servi

Réussir à cacher les chansons, même lors d’une écoute interrompue

Lorsqu’un utilisateur zappe une musique avant la fin, ou que la connexion internet coupe, le CDN aura plus de difficulté à charger et stocker la chanson. Pour y pallier, il peut segmenter les fichiers audio (si l’application ne l’a pas déjà fait). Ainsi, les segments de la chanson qui ont pu charger avant l’interruption vont pouvoir être cachés. Lorsque la chanson sera réécoutée, le CDN n’aura pas à solliciter l’origine pour ces segments !

Zoom sur la Segmentation :
La segmentation permet de diviser un fichier audio en plusieurs segments, de dix secondes par exemple.
Autrement dit, au lieu de faire une requête pour récupérer un fichier entier, on fera plusieurs requêtes pour récupérer les segments du fichier de 10s.

La segmentation peut être mise en place par l’application de streaming ou par le CDN.
Elle apporte plusieurs avantages.

Côté application mobile :

  • ne bufferiser qu’une partie des segments, et non tout le morceau.
  • en cas d’erreur de requête, seul le segment en question devra être re-téléchargé.

Côté CDN :

  • ne pas avoir à récupérer tout le morceau à l’origine, avant de pouvoir le renvoyer aux utilisateurs ;
  • cacher une partie du morceau quand il n’est pas écouté jusqu’au bout.

Côté Origine :

  • limiter et d’envoyer à l’utilisateur uniquement les segments qu’il écoute, et ainsi, d’optimiser les coûts.

Garantir le cache des contenus moins populaires

Seul un faible pourcentage des musiques du catalogue va être écouté. Il faut donc s’assurer que le contenu soit caché sur les serveurs du CDN, même lorsqu’il n’est pas populaire.

Si le contenu n’est pas très demandé, il n’aura pas été caché sur les serveurs du Pop, aura été remplacé par un contenu plus populaire ou sa durée de cache aura expirée (voir article 1). Le CDN peut améliorer la mise en cache de ces contenus grâce à 2 leviers :

  • En ajoutant un niveau de cache supplémentaire : si Marion écoute une musique que le Pop n’a pas en cache, il ira solliciter un autre Pop du CDN, proche de l’origine. Si cet autre Pop a le contenu en cache, l’origine n’aura pas à être sollicitée. Une fois le contenu récupéré à l’origine, il sera caché : au niveau du Pop de l’utilisateur et au niveau du Pop proche de l’origine.
  • En mettant en place un stockage dédié : le streamer peut acheter un espace de stockage non mutualisé par les autres clients du CDN, situé entre l’origine et les points de présence du CDN. Ainsi, les contenus peu écoutés ne seront pas remplacés par les fichiers populaires d’autres clients.

UN CDN PERFORMANT PERMET DES FONCTIONS AVANCÉES.

Un CDN performant peut être configuré et mettre certaines fonctions à disposition des clients pour leur apporter plus de sécurité, souvent recherchée dans ce secteur prisé par le piratage.

Avec les fonctions à l’edge, les clients peuvent développer eux-mêmes du code exécuté avant l’entrée de la requête dans le CDN, en utilisant certaines propriétés de la requête (en-têtes, adresse IP du client, etc .).

Cela permet notamment le contrôle des signatures et de l’expiration des requêtes. Une analyse des requêtes peut même être configurée pour se prémunir de comportements malveillants.

Au-delà des enjeux de coûts et de sécurité, les CDN présentent d’autres atouts. Le fournisseur de CDN peut répondre à des paramètres avancés utiles pour le streamer, comme la localisation des utilisateurs ou l’identité du FAI.

EN SOMME, UN CDN PERFORMANT CONTRIBUE À LA CONTINUITÉ DU SERVICE DE STREAMING MUSICAL,

et l’aide à répondre aux attentes de ses clients. Le CDN permet à l’application d’être plus efficace, compétitive et abordable pour les consommateurs.

Le secteur évolue rapidement, le nombre d’utilisateurs et de morceaux est croissant. Un CDN performant permet d’accompagner cette évolution.

Prochainement, nous verrons comment changer de CDN pour tendre vers plus de performance, et cela pour un service en production à l’échelle mondiale.