Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Qobuz et le logiciel libre

Cet article fait partie d’une série sponsorisée par Qobuz.

Les services de streaming audio, on connait tous, mais savez-vous que derrière se cachent de nombreux logiciels libres ? Chez les Français de Qobuz, l’infrastructure du service se divise en 3 parties.

La première concerne la réception des œuvres à partir des fichiers d’origine en lossless et pour cela Qobuz utilise sa propre solution maison d’encodage.

La seconde concerne la partie serveur de stockage et serveurs web. Le système d’exploitation présent sur ces serveurs est centOS. Pour la partie serveur web, c’est ensuite très classique puisqu’on y retrouve Apache et MySQL en réplication pour la base de données. Les serveurs frontaux sont en répartition de charge et ponctuellement, des machines virtuelles peuvent être démarrées pour absorber plus de charge.

Et pour le stockage, ce sont des milliers de To de stockage qui sont répliqués en temps réel dans les différents data center de Qobuz, histoire que les 17 millions de titres disponibles aux formats MP3, lossless et Studio Masters (au cas par cas) du catalogue soient en permanence disponible.

Enfin, la troisième et dernière partie concerne le site Qobuz, les applications, mais aussi le lecteur qui diffuse le son en streaming. Le site Qobuz est développé en PHP, Javascript et utilise le framework Symfony. Cela permet aux développeurs de Qobuz de créer et maintenir le code de la manière la plus efficace possible. Le service dispose également de son propre CMS sur lequel ses journalistes musicaux peuvent s’épancher sur les nouveautés et hits en devenir, interviewer ceux qui font l’actualité Qobuz et enfin décortiquer les derniers matériels Hi-Fi.

Mais ce n’est pas tout puisque le passage sous Symfony a permis aussi de mettre en place des API privées et partagées avec des partenaires comme Sonos ou Bluesound mais aussi des API publiques qui permettent à chacun de développer des plugins pour Qobuz (comme le plugin pour XBMC). Si d’ailleurs, ça vous intéresse, il y a moyen d’avoir une clé API en passant par ici.

Pour son application Desktop, capable de streamer du FLAC, Qobuz utilise une technologie lui permettant d’être le premier acteur à permettre le streaming en Flac (16 bits/ 44,1 kHz)

Sur tout ce qui est recherche, les API de Qobuz utilisent le logiciel libre ElasticSearch. Celui-ci est un moteur de recherche distribué, utilisant Lucene, répondant à des requêtes HTTP et crachant du JSON. Ceci permettant la mise en place rapide de nouvelles fonctionnalités de recherche pour les besoins des utilisateurs les plus pointus.

CapturFiles-201306175_1106

Ensuite, histoire de rentrer un peu plus dans le détail, sachez que chez Qobuz, tout le code est déposé dans un Github, ce qui permet de faire du versionning, du code review, basé sur des pull requests. Et pour le déploiement du code, ils utilisent Fabric qui est une bibliothèque en Python capable de balancer des commandes distantes via SSH. De quoi lancer des opérations de mise à jour où de maintenance confortablement.

D’ailleurs, pour être encore plus efficace et réduire le nombre de manipulations sur Git, d’automatiser la vérification du code, et de remonter des informations concernant les fonctionnalités, les corrections de bugs et les releases du code… les développeurs ont implémenté, et contribué au repo officiel du logiciel libre Twigit et l’ont mis à dispo sur Github.

Oui, car chez Qobuz, ils ne font pas qu’utiliser des logiciels libres. Ils y contribuent aussi et cela, mes amis, c’est le nerf de la guerre. Tous les défenseurs du logiciel libre vous le diront, un projet ne vaut que si tout le monde y met la main à la pâte.

Ils ont ainsi contribué à Elastica, un client PHP pour ElasticSearch, mais aussi au code de Git et de PHP. Et comme là bas, les développeurs sont de vrais barbus hipsterisés, ils utilisent Sublime Text &  Vim) pour coder. Du coup, ils ont aussi contribué à spf13-vim qui permet de disposer facilement de plugins et différentes ressources pour Vim, Gvim et MacVim.

La musique et le logiciel libre semblent être 2 mondes opposés, en partie à cause de l’image donnée par les majors grippe-sous, et pourtant au-delà des plateformes musicales, certains artistes comme Moby, n’hésitent plus à mettre un grand coup de pied dans l’industrie de la musique en libérant leurs projets.

Il y a quelques mois, en association avec Blend.io, le petit gars de Harlem a libéré plusieurs projets de l’album, « Innocents », permettant ainsi à tous les musiciens de décortiquer ses pistes et ainsi leur permettre d’en faire toute une série de Remix. Moby de son côté a pris l’engagement de ne déclarer aucun droit commercial sur ce qu’ils pourraient produire…Respect.

C’est quand même assez génial d’avoir un aperçu comme ça sur les technos qui font tourner un service d’une telle ampleur. Et savoir que les 3/4 de ces technos sont libres, ça fait encore plus plaisir Malheureusement, je pense que contrairement aux sociétés comme Qobuz, la plupart des grosses boites qui utilisent du logiciel libre, ne jouent pas le jeu. Chacun garde son petit code modifié, ne publie rien, ne contribue à rien…etc. C’est moche. Et c’est surtout contraire à la plupart des licences.

Du coup, la prochaine fois que vous croiserez une startup ou une société un peu plus grosse qui contribue à sa manière au logiciel libre, pensez à lui dire merci. Et pour rester sur la technique, la prochaine fois je vous parlerai de tout ce que permet de faire l’API Qobuz.

Et pour conclure, si ça vous intéresse, Qobuz offre 30% de réduction sur son catalogue en Studio Masters  avec le code KORBEN. Et sinon, sachez qu’il est toujours possible de s’inscrire gratuitement à l’offre d’essai du service.


Les articles du moment