Aller au contenu principal
Un CDN se cache (aussi) derriere votre playlist de musicale
Retour
technologie

Un CDN se cache (aussi) derriere votre playlist de musicale

Guillaume Herman Guillaume Herman | 10 mai 2022

Jingle Bells, Blinding Lights ou Highway to Hell : chacun a ses chansons preferees et compte bien les ecouter ou et quand bon lui semble… grace a son application de streaming musical !

Mais le streaming, c’est quoi ? C’est la diffusion de donnees en flux continu via internet, generalement d’un serveur a un utilisateur. Le streaming musical, lui, permet d’ecouter instantanement 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 generalement un abonnement payant, sans publicite.

Cette formule connait un franc succes : en 2020, le streaming musical comptait 443 millions d’utilisateurs avec un compte payant. Les revenus du streaming musical representaient plus de la moitie (56%) du marche mondial de la musique enregistree[1].

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

Pour proposer une ecoute qualitative et un catalogue immense a ce prix attractif, les streamers musicaux doivent optimiser leurs services… et leurs frais ! Ils font alors appel a differents acteurs, dont les CDN. Comment un CDN va-t-il pouvoir optimiser les services d’un streamer musical ? Pour y repondre, il faut comprendre les particularites du secteur.

Schema de fonctionnement d'un CDN pour le streaming musical

L’application de streaming musical doit repondre a des besoins utilisateurs precis

Marion, une utilisatrice lambda, souhaite une lecture instantanee, sollicite des contenus divers, a toute heure, dans tous lieux, avec un debit plus ou moins bon, et zappe rapidement un morceau quand il ne lui plait pas. A ce type d’usages, s’ajoutent la multiplicite et la diversite des gouts musicaux des millions d’utilisateurs, situes partout dans le monde.

L’objectif du streamer musical est donc de garantir a chacun de ses utilisateurs une ecoute qualitative, instantanee, mobile, a la demande, tres variee… et a prix abordable.

Garantir une ecoute qualitative et instantanee

L’application fait recours a plusieurs outils pour garantir une ecoute sans interruption. Quand Marion choisit d’ecouter une chanson de The Who sur son application mobile de streaming musical :

  • L’application passe generalement par un CDN, qui envoie la requete au serveur sur lequel la chanson est stockee (s’il ne l’a pas deja en cache !),
  • Celui-ci renvoie le fichier en petits paquets de donnees,
  • Ces paquets sont recus par l’application, et stockes temporairement dans le buffer, la memoire-tampon. Grace a ce mecanisme de buffering, l’application garde en cache le contenu telecharge avant de le jouer. Cela permet d’etre moins dependant de la variation du reseau, et de garantir une ecoute sans interruption.
  • Lorsque suffisamment de donnees sont dans le buffer, la lecture demarre.
  • Pendant ce temps, le reste du flux continue de charger dans le buffer, et la lecture poursuit son cours de maniere fluide.

Proposer un vaste catalogue a moindres frais

S’adapter aux gouts musicaux divers et varies des utilisateurs necessite un catalogue musical vaste et accessible a toute heure. Pour stocker un tel catalogue, les streamers passent par un service d’hebergement en reseau, le cloud computing, propose 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 differentes qualites audio : une chanson va etre stockee plusieurs fois sous differents formats. Et plus le fichier est qualitatif… plus il est lourd !

Ces plateformes offrent une grande flexibilite et un acces a des ressources “illimitees” (serveurs, stockage) mais facturent notamment au volume de donnees sortantes.

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

Exemple : si chacun des 406M d’utilisateurs de Spotify[4] ecoute une chanson en basse qualite (3MB) aux tarifs publics d’AWS, soit 0,04 $ / GB, le streamer devra payer 48 720$ de flux sortant. Cela devient tres onereux quand on multiplie ce chiffre par le nombre d’ecoutes journalieres.

L’interet majeur d’un CDN pour le streamer musical : reduire les couts

Grace a la mise en cache des fichiers audio sur ses serveurs, le CDN permet d’eviter de sursolliciter l’origine et donc l’hebergeur ! Cette mise en cache limite le volume demande a l’hebergeur (volume sortant, nombre de serveurs necessaires, etc.) et diminue les couts d’hebergement.

Resultat : plus le nombre de fichiers audio mis en cache sur le CDN sera grand, plus les couts d’hebergement de l’application de streaming seront reduits.

La capacite du CDN a cacher un nombre important de fichiers s’appelle la performance de cache.

Il est interessant d’optimiser cette performance pour reduire davantage les couts. Pour ce faire, un CDN doit repondre a plusieurs defis.

Zoom sur la performance de cache :

La performance de cache se mesure grace au taux d’Offload. Plus ce taux est eleve, plus le CDN est performant en cache. Ainsi le service de streaming aura interet a chercher a augmenter le taux d’Offload.

Taux d’Offload : volume du contenu servi par le CDN divise par le volume total servi.

Reussir a cacher les chansons, meme lors d’une ecoute interrompue

Lorsqu’un utilisateur zappe une musique avant la fin, ou que la connexion internet coupe, le CDN aura plus de difficulte a charger et stocker la chanson. Pour y pallier, il peut segmenter les fichiers audio (si l’application ne l’a pas deja fait). Ainsi, les segments de la chanson qui ont pu charger avant l’interruption vont pouvoir etre caches. Lorsque la chanson sera reecoutee, le CDN n’aura pas a 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 requete pour recuperer un fichier entier, on fera plusieurs requetes pour recuperer les segments du fichier de 10s.

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

Cote application mobile :

  • ne bufferiser qu’une partie des segments, et non tout le morceau.
  • en cas d’erreur de requete, seul le segment en question devra etre re-telecharge.

Cote CDN :

  • ne pas avoir a recuperer tout le morceau a l’origine, avant de pouvoir le renvoyer aux utilisateurs ;
  • cacher une partie du morceau quand il n’est pas ecoute jusqu’au bout.

Cote Origine :

  • limiter et d’envoyer a l’utilisateur uniquement les segments qu’il ecoute, et ainsi, d’optimiser les couts.

Garantir le cache des contenus moins populaires

Seul un faible pourcentage des musiques du catalogue va etre ecoute. Il faut donc s’assurer que le contenu soit cache sur les serveurs du CDN, meme lorsqu’il n’est pas populaire.

Si le contenu n’est pas tres demande, il n’aura pas ete cache sur les serveurs du Pop, aura ete remplace par un contenu plus populaire ou sa duree de cache aura expiree (voir article 1). Le CDN peut ameliorer la mise en cache de ces contenus grace a 2 leviers :

  • En ajoutant un niveau de cache supplementaire : si Marion ecoute 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 a etre sollicitee. Une fois le contenu recupere a l’origine, il sera cache : au niveau du Pop de l’utilisateur et au niveau du Pop proche de l’origine.
  • En mettant en place un stockage dedie : le streamer peut acheter un espace de stockage non mutualise par les autres clients du CDN, situe entre l’origine et les points de presence du CDN. Ainsi, les contenus peu ecoutes ne seront pas remplaces par les fichiers populaires d’autres clients.

Un CDN performant permet des fonctions avancees

Un CDN performant peut etre configure et mettre certaines fonctions a disposition des clients pour leur apporter plus de securite, souvent recherchee dans ce secteur prise par le piratage.

Avec les fonctions a l’edge, les clients peuvent developper eux-memes du code execute avant l’entree de la requete dans le CDN, en utilisant certaines proprietes de la requete (en-tetes, adresse IP du client, etc.).

Cela permet notamment le controle des signatures et de l’expiration des requetes. Une analyse des requetes peut meme etre configuree pour se premunir de comportements malveillants.

Au-dela des enjeux de couts et de securite, les CDN presentent d’autres atouts. Le fournisseur de CDN peut repondre a des parametres avances utiles pour le streamer, comme la localisation des utilisateurs ou l’identite du FAI.

En somme, un CDN performant contribue a la continuite du service de streaming musical

et l’aide a repondre aux attentes de ses clients. Le CDN permet a l’application d’etre plus efficace, competitive et abordable pour les consommateurs.

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

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

Pour aller plus loin

Références

  1. IFPI, Global Music Report 2021ifpi.org
  2. Apple, Apple Musicapple.com/apple-music
  3. Deezer, Company Profiledeezer.com
  4. Statista, Number of Spotify premium subscribers worldwidestatista.com
  5. Cloudflare, What is a CDN? | How do CDNs work?cloudflare.com
  6. Akamai, Content Delivery Network (CDN) for Media Deliveryakamai.com
  7. AWS, What is a Content Delivery Network (CDN)?aws.amazon.com

Ce sujet vous concerne ?

Découvrez comment notre expertise en nos experts peut accélérer votre projet.

Découvrir l'expertise
Guillaume Herman

Guillaume Herman

Lead Data

AWS SA ProfessionalGCP Pro Cloud ArchitectTerraform Associate

Ce sujet vous intéresse ?

Échangeons sur votre projet

Parlons-en

Newsletter

Restez informé

Analyses Cloud, Data & IA — 1 email par mois, pas plus.