Bonjour à tous !
Beaucoup de choses se sont passées ces derniers mois, depuis la sortie du nouveau Volumio 3 et du nouveau plan tarifaire en décembre 2021 (nous en parlerons dans un autre sujet dans les prochains jours), nous avons eu le sentiment de ne pas communiquer suffisamment sur tout ce qui se passait en interne sur Volumio, en particulier du côté du développement. Eh bien, nous voulons changer notre orientation actuelle pour cette année 2022 et vous donner quelques minutes par semaine pour vous dire ce qui se passe et vous donner un peu plus d'informations sur ce que fait l'équipe de développement, car la plupart du temps, ce qu'ils font est un travail derrière le rideau, qui est à peine visible, mais qui permet à l'ensemble de fonctionner.
J'espère également que ce document sera agréable à lire pour les techniciens et qu'il donnera un aperçu de ce que signifie la gestion d'un projet de l'ampleur de Volumio. Lisez ci-dessous ce sur quoi Michelangelo et l'équipe de développement de Volumio travaillent actuellement.
Février
Semaine du 21 février 2022 - 25 février 2022
Cette semaine, nous nous sommes concentrés sur la mise à l'échelle de certains de nos systèmes en nuage, car depuis le lancement de Volumio 3, nous avons constaté une forte augmentation de l'utilisation de Volumio et, par conséquent, de ses parties vitales en nuage.
Plus précisément, nous avons augmenté la capacité de l'infrastructure qui permet d'accéder à vos appareils depuis myvolumio.org, en ajoutant le renouvellement automatique du SSL, en expérimentant un nouveau logiciel génial (caddy server) et en mettant en place 6 nouveaux serveurs en Asie, en Europe et en Amérique du Nord.
Nous avons également étendu les contrôles automatiques à de nombreux nouveaux points de terminaison, à la suite d'un incident honteux qui a rendu certains de nos dépôts indisponibles en raison de l'expiration de certificats.
Nous avons mis à jour le miroir de Musicbrainz (grâce à l'aide de l'équipe de développement de Musicbrainz) et ajouté un mécanisme robuste de mise en cache. Cela améliore les temps de réponse de la recherche de métadonnées et affine également l'algorithme pour fournir des résultats plus précis et beaucoup plus d'occurrences.
BTW, si vous êtes curieux de connaître le nombre de serveurs dans l'architecture de Volumio, rendez-vous sur le site :
Cela rend très évidente (pour nous en premier lieu) la complexité de l'architecture que nous devons héberger pour faire avancer le projet. Mais cela ne fait que refléter l'évolution de la technologie au cours des dernières années.
Lorsque nous avons commencé Volumio , nous n'avions besoin que d'un seul serveur (pour les téléchargements et les mises à jour OTA, et ce serveur fonctionne toujours), mais aujourd'hui, un lecteur de musique doit s'interfacer avec une myriade de services tiers pour offrir un niveau de qualité et d'intégration adéquat. C'est aussi parce qu'à mon avis, une solution purement FOSS ne suffit plus à notre époque : il faut héberger un tas de choses et payer pour cela, pour que cela fonctionne.
Nous avons finalement réussi à retracer un méchant bug qui affectait les utilisateurs dont les FAI n'utilisaient pas l'IPV6 ou n'appliquaient pas de NAT, provoquant des arrêts fréquents de TIDAL, QOBUZ et de tout ce qui était diffusé en streaming sur HTTP2. Cela était dû à un bug dans curl (sur buster) qui faisait échouer les requêtes http2 dans certaines conditions. Nous sommes actuellement en train de faire de l'assurance qualité sur ce correctif, et si tout va bien, la semaine prochaine nous publierons cette mise à jour (pour la joie de nombreux utilisateurs et de notre responsable de l'assurance qualité Davide).
Les travaux sur FusionDSP progressent bien, grâce aux efforts de deux brillants membres de l'équipe et de la communauté, nous mettons en place un nouveau composant open source pour que Fusion DSP fonctionne enfin avec l'AAMPP de Volumioet nous espérons qu'il pourra être rendu public très bientôt.
Nous travaillons également sur la nouvelle version de l'application Android\iOS (qui sera gratuite). Cette nouvelle version facilitera l'intégration des nouveaux utilisateurs, en leur permettant de mettre à jour automatiquement leurs appareils et de se connecter à leur réseau sans fil de manière très simple.
Cela devrait faciliter la vie des nouveaux arrivants sur Volumio sur Raspberry PI mais aussi sur les produits Volumio (c'est une autre chose sur laquelle nous travaillons dur... restez à l'écoute...).
Malheureusement, nous avons pris du retard dans l'amélioration de la procédure de soumission et de test de la boutique de plugins. Nous avons encore un grand nombre de plugins à tester et personne ne peut vraiment s'y consacrer car l'équipe de développement est entièrement occupée. Nous n'en restons pas là pour autant puisque nous recherchons activement quelqu'un pour s'en occuper en tant que première et unique activité (si vous êtes intéressé pour être cette personne, envoyez-moi un message).
Nous avons également apporté quelques corrections mineures au plugin de lecture de CD, à Tidal Connect et à Metavolumio.
C'est tout pour l'instant, à la semaine prochaine.
Mars
Semaine du 28 février 2022 - 4 mars 2022
Tout d'abord, toutes nos pensées vont à l'Ukraine et à TOUTES les personnes touchées par cette tragédie qui dépasse l'imagination. L'équipe discute de la manière dont nous pouvons apporter un soutien tangible et nous espérons pouvoir agir la semaine prochaine.
Nous avons décidé de ne pas prendre de position politique, ni de faire de déclaration sur la situation, mais plutôt de nous concentrer sur une action concrète pour aider les personnes dans le besoin.
Pour en revenir aux choses frivoles, notre travail cette semaine s'est concentré sur la poursuite du renforcement de notre infrastructure de serveurs en nuage pour la connexion à distance, en déplaçant progressivement tous les serveurs vers la configuration nouvelle et améliorée du caddy.
Lundi, nous avons publié une nouvelle mise à jour qui a corrigé un certain nombre de bugs, mais malheureusement, l'image de Tinkerboard a souffert d'une panne temporaire de Github, ce qui l'a empêché d'installer certains paquets de base comme curl et l'outil de mise à jour à distance. Nous avons donc publié une mise à jour d'urgence mercredi et notre équipe de support aide les personnes affectées.
Nous sommes en train d'améliorer le script de construction de manière à ce que la construction échoue si cela se reproduit, nous évitant ainsi de promouvoir des versions avec des paquets de base manquants.
Deux nouveaux modules alsa open-source ont été publiés et intégrés dans les images principales, permettant la finalisation des travaux de FusionDSP (qui semble très proche) et une facilité utile pour les développeurs de plugins.
Des corrections ont également été apportées à l'affichage des métadonnées sur les plans premium (à partir de la fonction de recherche) et à la lecture des CD.
Le développement des nouvelles applications est actuellement interrompu, dans l'attente des résultats des tests effectués par les modérateurs et les développeurs de Volumio.
C'est tout pour cette semaine. J'espère que le prochain billet de ce journal sera plus joyeux parce que la paix a été atteinte (bien que cela semble peu probable, mais c'est ce que nous espérons).
Semaine du 7 mars 2022 - 11 mars 2022
Cette semaine, l'équipe a presque entièrement travaillé "derrière les rideaux", des choses ennuyeuses mais très importantes...
Tout d'abord, il y a eu un incident lors de la sortie de la version 3.233 : une panne temporaire de github a empêché le système de construction de télécharger et d'installer certains composants critiques de l'image Volumio . En fait, la plateforme Tinkerboard s'est retrouvée sans certaines bibliothèques très importantes (curl, flac) et sans le programme de mise à jour. D'autres plateformes, comme la PI, ont été construites sans l'interface utilisateur classique.
Mais vous le saviez déjà.
Le travail de l'équipe a consisté à débriefer l'incident et à prendre des mesures proactives pour éviter qu'il ne se reproduise : nous avons modifié le système de construction de manière à ce qu'il fasse échouer la construction si cela devait se reproduire (merci Ash !) et nous avons ajouté quelques tests supplémentaires à notre liste de contrôle d'assurance qualité pour les nouvelles versions (merci Davide pour son travail acharné !).
Nous allons progressivement remanier le système de construction pour signaler (et faire échouer) chaque problème mineur dans le processus de construction. En plus d'augmenter la confiance dans la répétabilité des versions, ce sera une étape très importante dans le déploiement d'un système de construction automatisé (sur un CI) que nous envisageons depuis longtemps.
Ces derniers temps, la complexité du projet s'est considérablement accrue, de sorte que nous sommes arrivés à un point où nous devons mettre en place des procédures solides (qualité, développement, soutien) et débriefer très souvent.
Sur le plan organisationnel, cela augmente un peu la bureaucratie interne, mais nous estimons qu'il s'agit d'une tâche très importante à accomplir pour garantir des normes de haute qualité à nos utilisateurs. Le mantra que nous suivons est le suivant : ne jamais faire deux fois la même erreur.
Ensuite, les travaux sur la nouvelle application iOS et Android progressent, bien qu'avec quelques obstacles : nous essayons de résoudre certains problèmes de compatibilité avec les anciennes versions d'Android avec les nouveaux flux de configuration sans fil : il semble que les anciennes versions d'Android ne soient pas en mesure de recevoir correctement la liste des réseaux sans fil auxquels se connecter.
Nous continuons à surveiller l'infrastructure en nuage, suite à la grande mise à niveau qui a eu lieu ces dernières semaines. La mise à l'échelle des serveurs et de l'architecture semble résister assez bien, et l'augmentation de la charge est parfaitement gérée.
Enfin, puisque les plus gros (et les plus redoutables) bogues de Volumio 3 ont été corrigés, nous nous concentrons maintenant sur la correction de bogues mineurs et sur des ajustements, et nous avons une nouvelle version en cours de test d'assurance qualité, qui devrait être publiée la semaine prochaine. Elle comprendra des corrections pour l'interface utilisateur, le montage de stockage en réseau, la découverte de métadonnées et plus encore.
Comme vous pouvez le constater, le développement, la maintenance et la croissance de Volumio impliquent beaucoup de travail qui n'est ni évident ni visible pour le grand public, mais il est tout aussi important de le faire fonctionner.
Semaine du 14 mars 2022 - 18 mars 2022
Cette semaine a été une bonne semaine ici à Volumio HQ. La raison principale en est que nous avons l'impression d'avoir réussi à renverser le "mauvais climat" qui régnait dans cette communauté ces derniers temps et à rétablir l'ambiance joyeuse que nous nous efforçons de cultiver dans cet endroit du net.
Nous estimons que la sortie de Volumio 3 n'a pas été sans problèmes : de nombreuses personnes ont été frustrées par quelques bogues désagréables (que nous avons résolus) et par le manque de plugins dans la V3. Cela signifie que la communauté a été remplie de commentaires furieux d'utilisateurs (et de la fameuse minorité mécontente), qui exprimaient leur frustration à propos de ces problèmes. Cette ambiance n'a pas seulement rendu l'endroit moins intéressant, mais a eu un impact considérable sur le moral de l'équipe et sur l'"attachement" des contributeurs au projet.
Grâce aux suggestions du groupe privé de modérateurs, nous avons décidé d'agir et de consacrer beaucoup plus d'efforts à une communication proactive avec la communauté (ce que vous lisez en est le résultat) et les utilisateurs qui rencontraient des problèmes.
Il semble que cela porte ses fruits. Nous sentons que l'esprit de cette communauté revient. Cette période difficile nous a permis d'apprendre à mieux faire, et c'est ce que nous voulons continuer à faire.
Notre service d'assistance technique et d'aide à la clientèle est l'un des processus qui fait l'objet d'un remaniement en profondeur. Tout d'abord, nous souhaitions mieux "dispatcher" les demandes vers la personne appropriée au sein de l'organisation. Nous y sommes parvenus en restructurant la page de contact de manière plus "directive", afin de transmettre les demandes à la personne appropriée (demandes de boutique, retours, facturation, support technique, partenariats, distribution, etc.)
Ensuite, nous voulions fournir des réponses plus rapides aux personnes qui demandaient une assistance technique.
En analysant les demandes d'assistance, nous avons découvert qu'environ la moitié d'entre elles pouvaient être résolues assez rapidement sans l'intervention de notre personnel d'assistance, en fournissant simplement de petites indications écrites.
Nous avons donc mis en place un chatbot qui fait automatiquement correspondre les demandes des utilisateurs avec notre base de connaissances (que nous alimentons en permanence) et fournit des réponses immédiates aux problèmes ou situations connus.
Ce système s'est avéré efficace pour certains types de demandes, mais pas pour d'autres. En analysant le flux et les commentaires de nos utilisateurs cette semaine, nous avons découvert que ce système ne fournissait pas suffisamment de commentaires sur les actions requises pour certains utilisateurs (nous exigions une action supplémentaire de la part de l'utilisateur avant d'initier la session d'assistance) qui se sentaient frustrés de ne pas recevoir d'assistance et nous contactaient sur d'autres canaux (Facebook, forum, etc.).
Nous travaillons donc à modifier cette partie, en changeant le flux de contact de l'utilisateur dans ce type de situation. Nous prévoyons de mettre en œuvre cette modification dans une dizaine de jours.
Ainsi, pour les utilisateurs qui se sont sentis négligés au cours du mois dernier, nous reconnaissons le problème et nous nous efforçons de le résoudre, de sorte que la prochaine fois que vous aurez besoin de nous, vous bénéficierez d'une meilleure expérience.
En ce qui concerne le développement, nous avons encore travaillé cette semaine sur notre écosystème en nuage. Si vous vous demandez pourquoi nous avons passé tout ce temps sur le cloud et pas sur le côté "Volumio", voici pourquoi.
En 2018, nous avons pris une décision architecturale très importante : déplacer toute l'intelligence d'intégration dans le nuage, plutôt que sur l'appareil.
Par exemple, notre serveur de recherche de pochettes d'album fonctionnait sur l'appareil. Il identifiait l'artiste, l'album et le titre et effectuait des requêtes en ligne pour récupérer et télécharger la pochette d'album la plus appropriée pour un titre spécifique. Cela fonctionnait bien. Ou du moins jusqu'à ce que l'un de ces services en ligne ferme ou modifie son API (ce qui arrive plus souvent qu'on ne le pense).
Il y a donc deux façons de résoudre le problème :
- Mettez à jour tous les logiciels que vous avez sur le terrain (dans notre cas, plus de 430 000 installations). Cela signifie que de nombreux utilisateurs rencontreront le problème jusqu'à ce qu'ils mettent à jour leur logiciel. Cela signifie également que la détection de ce problème ne se fera qu'une fois que vous aurez reçu des rapports d'utilisateurs.
- Transférer la logique d'agrégation du contenu en ligne dans le nuage et faire en sorte que l'installation d'albumart à l'adresse Volumio s'appuie sur cette logique.
Nous avons franchi la deuxième étape. Cela présente des avantages supplémentaires :
- Nous pouvons comprendre rapidement si quelque chose ne va pas, car nous pouvons mettre en place un suivi automatique de tous les services que nous utilisons.
- Lorsque nous détectons un problème et le corrigeons, la correction est instantanée pour tous nos utilisateurs, sans qu'une mise à jour soit nécessaire.
- En procédant à des optimisations telles que la mise en cache et l'équilibrage de la charge, nous pouvons offrir des temps de réponse plus rapides qu'un algorithme fonctionnant sur l'appareil lui-même, ce qui permet d'améliorer l'expérience globale.
Cela présente également des inconvénients :
- Le fonctionnement de ces services coûte de l'argent. Si nous utilisons la puissance de calcul "distribuée" des appareils, cela ne coûte rien. Mais si nous devons mettre en place, entretenir et héberger ces systèmes à l'échelle requise pour Volumio, cela a un coût.
En fait, chaque fois que vous cherchez une pochette d'album, Volumio doit payer pour cela. Étant donné que le service que nous fournissons à certains de ces points finaux est gratuit, nous devons être très intelligents pour optimiser notre technologie afin de ne pas être trop coûteux (dans ces cas, nous n'utilisons pas AWS, mais un mélange de Kubernetes + VPS dédié avec une forte densité de microservices). - S'il tombe en panne, il tombe en panne pour tout le monde en même temps. Vous devez donc mettre en place des stratégies de récupération automatique et de surveillance et garantir des redondances adéquates.
Voici quelques exemples de services qui utilisent cette architecture :
- Connexion Oauth pour Spotify, QOBUZ, TIDAL (et éventuellement d'autres comme LastFm)
- Récupération de cartes d'album
- Navigation sur QOBUZ et TIDAL
- Boutique de plugins
- Sélection de webradios
- Métadonnées et recherche de crédits
Et oui, ce qui avait besoin d'un peu d'amour cette semaine, c'était le fournisseur d'albumart. Un changement dans une API en amont a détérioré la performance de la récupération des artistes. Nous avons été en mesure de le corriger et de déployer un correctif sans que personne n'ait besoin de faire une mise à jour. Et le plus beau, c'est que la plupart d'entre vous ne l'ont pas remarqué.
Nous continuons à suivre ce modèle architectural, en particulier lorsque nous enrichissons les fonctionnalités, ce qui explique peut-être pourquoi vous voyez moins de commits sur le backend de Volumio concernant de tels aspects.
Parmi les choses sur lesquelles nous avons déjà travaillé (nous attendons que les parties frontales les prennent en charge), il y a les notifications de concerts en direct et les paroles de chansons.
C'est tout pour cette semaine ! J'espère que vous avez eu un meilleur aperçu de l'impact que peut avoir la communauté sur Volumio, que ce soit de manière positive ou négative. N'oubliez pas cela et continuez à contribuer à faire de cet endroit une bonne partie du réseau.
Semaine du 21 mars 2022 - 25 mars 2022
Tout d'abord, nous avons réussi à compiler la mise à jour que nous publierons la semaine prochaine. Elle comprend diverses corrections pour le multiroom, les caractères utf-8 et la très attendue mise à jour AAMMP (qui nous permettra de sortir l'incroyable plugin Fusion DSP).
Ce qui nous a empêchés de sortir cette version, c'est un mystérieux bug affectant le multiroom, que nous avons mis du temps à identifier (il s'est avéré qu'il s'agissait d'une erreur très stupide, mais très cachée et difficile à repérer).
Enfin, nous avons réussi à amener la nouvelle application Android et iOS à un niveau dont nous sommes satisfaits : le nouveau flux d'accueil amélioré et simplifié fonctionne bien dans toutes les circonstances.
Il a fallu beaucoup de débogage, de tests, de jurons... Vous ne pouvez pas imaginer à quel point il est parfois fastidieux de concevoir et de mettre en œuvre un processus très simple...
La prochaine fois que vous essaierez une technologie qui fonctionne, pensez qu'un développeur aurait pu perdre tous ses cheveux pour la faire fonctionner correctement
Nous prévoyons de lancer un test bêta de la nouvelle application la semaine prochaine.
Cette semaine, nous nous sommes également concentrés sur une analyse minutieuse de notre situation actuelle (en tant que projet et en tant qu'entreprise) et sur la planification stratégique. Comme on dit, "la tactique sans la stratégie est le bruit qui précède la défaite".
Nous avons organisé plusieurs réunions d'équipe afin d'orienter notre stratégie dans deux domaines principaux.
La première est la stratégie et l'approche à long terme de l'OEM. Comme vous le savez peut-être, Volumio OEM est un service que nous fournissons à un grand nombre d'entreprises du secteur de la haute fidélité dans le monde entier. Nous leur donnons les moyens de lancer des produits hi-fi en utilisant la technologie et l'expérience de Volumio . Nous sommes fiers que plus de 30 sociétés Hi-Fi dans le monde choisissent Volumio pour alimenter leurs produits audiophiles.
Cela a bien fonctionné pour nous et pour eux au cours des dernières années et Volumio est ce qu'il est aujourd'hui grâce à la contribution financière et conceptuelle de nos partenaires.
Nous pensons toutefois que nous pouvons faire mieux et être plus ambitieux avec le programme des partenaires OEM.
Nous avons constaté une forte augmentation des demandes pour devenir des partenaires OEM de Volumio depuis la sortie de Volumio 3 et un léger changement dans ce que les nouveaux partenaires attendent de notre technologie.
Par rapport à il y a 3 ou 4 ans, les entreprises du secteur de la Hi-Fi ont tendance à avoir des départements informatiques internes et nous demandent moins d'implication directe et plus de liberté dans la mise en œuvre de notre technologie et d'une approche plus proche du SDK.
Nous sommes donc en train de remanier notre programme OEM de manière très similaire à ce que fait Android. Oui, notre objectif est que Volumio devienne l'Android du monde de la technologie musicale.
Bien entendu, conformément à notre approche de "co-conception", nous impliquons certains de nos meilleurs partenaires dans les processus de décision et de conception.
L'autre projet concerne le matériel. Nous avons des projets ambitieux et de très belles choses sur lesquelles nous travaillons...
Nous ne pouvons rien dévoiler pour le moment, mais si j'étais vous, j'envisagerais de visiter le salon HIGH END de Munich cette année...
HIGH END de Munich cette année...
C'est tout pour cette semaine !