Bedrock Streaming supervise ses plateformes avec une solution d'observabilité

Pour adapter son monitoring à l'expansion de ses activités, Bedrock Streaming a choisi d'outiller ses plateformes avec la solution d'observabilité de New Relic.
PublicitéJoint-venture formée par le Groupe M6 et RTL Group (Bertelsman), Bedrock Streaming fournit des plateformes de streaming pour les services de vidéo à la demande (VOD) avec ou sans abonnement. Historiquement, sa plateforme a démarré au sein du Groupe M6, servant un seul client. Aujourd'hui, l'entreprise opère les services de plusieurs clients, notamment 6Play et Salto en France, Videoland aux Pays-Bas, RTL Play en Croatie et Belgique et RTL Most en Hongrie. Ce développement des activités a conduit l'entreprise à faire évoluer ses infrastructures pour aller dans le cloud. Dans ce contexte, le monitoring s'est complexifié, avec un besoin accru de visibilité à la fois sur le back-end et le front-end, qui inclut le Web, les terminaux mobiles et les smart TV. Pour répondre à ce besoin, Bedrock a choisi de mettre en place la solution d'observabilité de New Relic.
« Au départ, notre plateforme était hébergée dans deux datacenters, avec un système mono-instance et mono-tenant. Pour accélérer notre développement et servir plusieurs clients, nous sommes passés sur le cloud AWS en 2019 », relate Olivier Mansour, directeur technique adjoint chez Bedrock Streaming. L'entreprise a alors basculé sur une architecture multi-instances et multi-tenant, pour s'adapter aux besoins de ses différents clients. Le monitoring applicatif était alors effectué avec un ensemble d'outils open source, dont la suite ELK d'Elastic, les logiciels Prometheus, Grafana, Graphite et StatsD. Ces solutions fonctionnaient très bien dans le contexte BtoC initial, où les équipes disposaient d'une bonne visibilité sur l'évolution de la plateforme et d'un calendrier précis, permettant d'anticiper les investissements à l'échelle d'une année. Mais les conditions n'étaient plus les mêmes dans un modèle BtoBtoC, avec des quantités de données croissantes. « Nous avons aujourd'hui trois grandes plateformes en production et 75 microservices. Sur ces environnements, nous avons besoin d'avoir un monitoring scalable et des indicateurs pertinents, avec une vision à la fois par instance et par client », explique le CTO. Par ailleurs, l'entreprise a une forte culture DevOps, avec 300 collaborateurs travaillant sur le développement et l'exploitation technique de sa plateforme de streaming. La solution de monitoring devait convenir à l'ensemble des équipes et s'adapter à la diversité des services et des technologies en place, afin de pouvoir suivre et analyser les événements sur l'ensemble de la chaîne, et faciliter la remédiation en cas de dysfonctionnement.
Une plateforme adaptable
En étudiant le marché, Bedrock a identifié différentes solutions qui offraient un monitoring applicatif à 360°, avec des modèles de licences adaptés aux environnements cloud. « Nous avons regardé les solutions de Datadog, Splunk, Elastic et New Relic. En interne, les différentes équipes avaient chacune leurs préférences. Nous avons retenu New Relic One en septembre 2020 après avoir testé la solution, car c'était le choix qui faisait le plus consensus en termes de fonctionnalités, et il s'agissait d'une plateforme sur laquelle nous pouvions capitaliser dans le temps », confie Olivier Mansour. Le déploiement a démarré en octobre 2020. Aujourd'hui, Bedrock n'utilise pas encore l'ensemble des fonctionnalités disponibles sur la plateforme d'observabilité. « Nous avons pris le parti de ne pas ralentir les développements métiers, aussi nous avons choisi de déployer la solution de façon progressive », explique Olivier Mansour. Pour celui-ci, la mise en oeuvre n'avait rien de complexe sur le plan unitaire, mais les nombreux microservices en place chez Bedrock nécessitaient d'étaler la feuille de route.
PublicitéBedrock Streaming a commencé par déployer la solution pour monitorer ses systèmes back-end, qui reposent sur de nombreux langages et frameworks différents : PHP, Java, Go, Node.js, etc. « Sur PHP, nous avions un historique important et des besoins particuliers. Nous avons pu accéder au code source du SDK PHP avant que New Relic le mette en open source, et nous avons travaillé avec les équipes de l'éditeur pour adapter la solution à nos contraintes », témoigne le directeur technique. « Le support d'OpenTelemetry par la solution nous permet également de l'utiliser avec certains langages récents, comme Rust », ajoute-t-il. La solution a été étrennée lors du lancement de la plateforme Salto, permettant aux équipes de se familiariser avec les indicateurs disponibles. « New Relic One offre de nombreux indicateurs techniques prêts à l'emploi, qui nous ont permis des gains immédiats sur des besoins simples, mais que nous n'avions pas eu le temps de traiter auparavant », apprécie le directeur technique. Lors du déploiement, il a toutefois fallu reconstruire certaines métriques. « Nous voulions une observabilité davantage métier que technique, avec des indicateurs comme le nombre de lancements de vidéos ou de chargements de page. Pour cela, nous avons réinstrumenté notre code », explique Olivier Mansour. Bedrock Streaming s'appuie en effet sur une approche d'infrastructure-as-code, exploitant l'outil Terraform pour effectuer le paramétrage de New Relic One.
Des alertes sur mesure pour préserver l'expérience client
Une fois ces métriques en place, les équipes de Bedrock ont également dû recréer des tableaux de bord pour les présenter de façon intéressante. « Nous construisons également nos dashboards avec Terraform, en exploitant les capacités de restitution d'information de New Relic », détaille le directeur technique. Pour obtenir la visibilité souhaitée par client et instance, les équipes, sur le conseil de l'éditeur, ont entrepris dès le démarrage de taguer systématiquement les ressources intégrées à la plateforme afin d'identifier le client et la technologie associés. « Quand nous analysons la qualité du code livré, si celui-ci n'est pas tagué, le projet apparaît en rouge », précise Olivier Mansour. « Nous avons apprécié la capacité de New Relic à agréger des données dans des workloads. Nous avons un workload par client, ce qui nous permet de voir en temps réel et sur un même écran tout ce qui se passe pour un client, à la fois à l'instant T et d'un point de vue historique », explique Olivier Mansour. Grâce aux tags, Bedrock a des vues similaires par technologie, pour voir par exemple toutes les applications Node.js ou sur IOS, ce qui facilite l'identification de certains problèmes. Cet effort sur les conventions de nommage sert également à différencier les environnements. En effet, Bedrock supervise dans la solution à la fois ses plateformes de production et son environnement de stagging, ce dernier étant utilisé par les développeurs et par les clients. « Auditer la performance lors du stagging est aussi un gage de qualité », souligne le CTO.
De façon similaire, les alertes sont également définies dans le code. Exploitant les capacités d'alerting de la solution, Bedrock a mis en place différents types d'alertes : certaines réveillent les personnes d'astreinte, d'autres non urgentes indiquent des points à regarder par les développeurs, et d'autres encore servent à arbitrer entre différentes fonctionnalités en cas de circonstances particulières, pour préserver le fonctionnement des services. Typiquement, en cas d'événements sportifs à forte audience ou de programmes diffusés en avant-première, qui peuvent générer des pics de trafic, des fonctionnalités telles la reprise des vidéos là où s'est arrêté le visionnage peuvent automatiquement être désactivées de façon temporaire. Bedrock utilise également les capacités de découverte de la solution. « L'outil de service map est capable de comprendre comment les services s'appellent entre eux. Avec nos 75 microservices en production, il a remplacé la documentation antérieure, avec l'avantage de fournir une vision toujours à jour », pointe Olivier Mansour.
Un accompagnement apprécié
L'accueil de la solution a été très bon chez les équipes de développement back-end, environ 80 collaborateurs, qui ont été les premiers à expérimenter New Relic. « L'éditeur a l'habitude des grandes transformations et nous a conseillés. Nous avons positionné des référents pour avoir une continuité dans le transfert de connaissances. En effet, chaque équipe, constituée d'environ 7-8 personnes, a besoin d'interlocuteurs de proximité, les référents, qui sont eux-mêmes en contact avec les architectes solutions de New Relic », indique Olivier Mansour. Pour éviter que des collaborateurs restent bloqués longtemps en cas de problème, un créneau de deux heures par semaine, réservé aux échanges avec l'éditeur, a également été mis en place, une approche jugée « très facilitante » par le CTO. Enfin, les équipes ont également pu accéder à la formation en ligne proposée par l'éditeur.
Actuellement, Bedrock déploie les fonctionnalités de log et démarre sur le monitoring de la partie front-end, en commençant par le Web. À terme, l'optique est de pouvoir suivre des requêtes de bout en bout, depuis le front jusqu'au back-end, en exploitant également les capacités de détection automatiques d'anomalies, grâce aux outils AIops intégrés à la plateforme de monitoring. Les nouvelles applications sont directement intégrées sur New Relic, tandis que les anciennes sont migrées de façon progressive. Bedrock conserve également un autre outil pour le monitoring de la qualité vidéo, la solution Youbora de NPAW, car il s'agit d'indicateurs très métiers, destinés aux clients, tandis que New Relic s'adresse avant tout aux équipes IT.
Article rédigé par

Aurélie Chandeze, Rédactrice en chef adjointe de CIO
Suivez l'auteur sur Linked In,
Commentaire
INFORMATION
Vous devez être connecté à votre compte CIO pour poster un commentaire.
Cliquez ici pour vous connecter
Pas encore inscrit ? s'inscrire