Fondée en 2018 par Mathieu Gallet et Arthur Perticoz, Majelan a lancé son application dédiée aux podcasts en juin 2019. Cette dernière permet d’accéder gratuitement à plus de 18 millions de podcasts issus de 50 pays. La startup produit également ses propres contenus audio, disponibles sur abonnement.

Thomas Fillon, Directeur Data chez Majelan, raconte :
« Nous analysons la data pour mieux comprendre nos utilisateurs, personnaliser leur expérience avec des recommandations, améliorer le produit et nos propres contenus. Notre architecture data est structurée autour d’Apache Kafka et tourne dans le cloud (AWS et GCP). Nous utilisions initialement Elasticsearch ainsi que nos propres serveurs pour réaliser les analyses. Avec la croissance de notre nombre d’utilisateurs et l’augmentation de l’usage de la plateforme, nous arrivions aux limites des possibilités de ces services en termes de stockage et d’analyse de données. Nous nous sommes tournés vers AWS pour trouver une solution à la hauteur de nos ambitions. »

Problématiques :

  • Analyser de grands volumes de données sur l’ensemble des statistiques collectées
  • Disposer d’une solution de stockage des données (datalake) fiable et peu coûteuse
  • Conserver la solution Apache Kafka mise en place en interne

Majelan collecte des données granulaires sur la manière dont les contenus sont écoutés, avec l’objectif de faire de la recommandation, d’améliorer ses contenus ou encore de mieux comprendre les passages où un utilisateur arrête d’écouter un programme.

« Nous avions mis en place un pipeline de données en propre, architecturé autour de la solution Apache Kafka et pensé pour respecter le RGPD. Elles étaient ensuite loguées dans Amazon Elasticsearch Service, précise Thomas Fillon. Rapidement, suite à notre croissance, nous avions atteint les limites de ce qu’Elasticsearch pouvait fournir ». Depuis son lancement, plus de 200 millions d’évènements ont en effet été collectés. 

Le besoin de Majelan était double : mettre en place un datalake, c'est à dire stocker les données dans des fichiers plats pour disposer d’une solution de stockage fiable et les analyser. Pour cela, Majelan avait besoin d’une solution performante capable d'analyser un grand volume de données. Après avoir partagé leurs besoins techniques entre AWS et Google Cloud Platform (GCP), la startup a finalement choisi AWS, « pour l’intérêt de la solution proposée et leur transparence sur la manière de l’implémenter ».

Cette solution, c’est Amazon Athena, qui permet de lancer des requêtes SQL sur de grands volumes de données. « Elle est accessible puisque les requêtes se font en SQL plutôt qu’avec un autre langage plus "complexe" comme Python. C’est un gain d’efficacité. Par exemple, notre responsable Growth Hacking maîtrisant le SQL, nous lui avons ouvert l’accès à Athena ce qui lui permet d’effectuer des requêtes directement sans passer par l’équipe Data, apprécie Thomas Fillon. Athena est également plus flexible pour s’adapter à notre architecture autour de Kafka. AWS nous a proposé une façon de connecter notre solution Apache Kafka à Athena, et cela sans pousser la solution propre d’AWS (Kinesis) ni nous obliger à passer uniquement par leurs services ».

Disposer des statistiques sur la plateforme est un outil clé pour Majelan (nombre d’utilisateurs connectés à un instant donné, contenus les plus utilisés, tendances, popularité, etc.). « Elasticsearch permettait d’indexer le contenu de notre base de données. Il est très pratique pour obtenir des données live sur l’utilisation de la plateforme, pour récupérer des statistiques à court terme. Au début, nous pouvions facilement agréger les données sur une semaine, un mois. Mais après 3 mois, l’opération pouvait prendre 10-15 mn, voire n’était plus faisable, la RAM de notre serveur devenant le facteur limitant. Avec Athena, les requêtes prennent à peine quelques secondes et sont effectuées dans le cloud directement ».

De plus, dans une base de données SQL classique, « si vous faites une requête sur 200 millions d’évènements, généralement, vous allez la mettre à plat et n’aurez pas les performances attendues. Athena permet de le faire rapidement tout en conservant la simplicité du langage SQL. »
La startup maîtrise également mieux ses coûts : « Si on ne fait pas de calcul, de traitement de données, on ne paye pas Athena mais uniquement le coût assez faible du stockage », relève Thomas Fillon.

En complément d’Athena, Majelan utilise 2 services fondamentaux : 

Amazon S3 tout d’abord, dans lequel 30 Go de fichiers sont compressés et hébergés. « Si un jour, nos workloads sont importants, nous pourrons récupérer la donnée assez facilement à un faible coût par rapport à d’autres solutions de stockage », précise Thomas Fillon.

AWS Glue ensuite, qui fait le lien entre Amazon S3 et Amazon Athena, « comme des robots d’indexation qui parcourent les fichiers S3 et en offrent une vue structurée à Athena pour que le service n’ait pas à lire les 200 millions d’évènements à chaque requête. C’est important, insiste Thomas Fillon, car le coût d’Athena est lié à la quantité de données lues pour effectuer la requête. Limiter les coûts implique donc de faire des requêtes intelligentes qui ne vont pas utiliser toute la donnée, par exemple en partitionnant les fichiers par date, utilisateur ou type d’usage ».

Thomas Fillon salue le soutien d’AWS dans la mise en place de cette solution. « Un Solutions Architect est venu dans nos locaux pour nous aider à faire le lien entre Kafka et le datalake (S3), pour mettre en place les tâches automatiques gérées par Glue, etc. Pendant deux jours, on a programmé, testé, mis en place la solution sur notre environnement de préprod. En une semaine, nous le passions sur notre environnement de production ».

Un atout, car « on préfère que nos développeurs passent du temps à améliorer l’app ou à mettre en place des services pour améliorer l’expérience utilisateur. Avoir quelqu’un qui connaît par cœur la façon de configurer ces services nous a fait gagner un temps précieux », souligne le Directeur Data.

« Nous ne voyons pas AWS comme un fournisseur de services mais plutôt comme un partenaire avec qui nous partageons une grosse partie de nos problématiques. Je pense que pour avancer, c’est important pour une startup d’avoir une relation de confiance avec des acteurs tels qu’AWS. Nous nous sommes servis de leurs retours pour mettre en place notre stratégie 2020, c’était important de la définir sur la base de données fiables, obtenues grâce à Athena. Nous avons beaucoup appris avec eux. Cette façon de collaborer est vraiment importante ».

Fort de cette expérience, Majelan a depuis migré une grande partie de son architecture au sein d’AWS pour la sécuriser et en faciliter la maintenance.

  • Plus de possibilité d’analyses grâce un temps de requête réduit de 10-15 min à quelques secondes
  • Un stockage sécurisé et peu coûteux de nos données
  • Une semaine pour mettre en production la solution Athena grâce au soutien d’un Solution Architect