Basée à San Mateo, en Californie, Rakuten Rewards est une société de primes de fidélité pour le commerce en ligne. Elle gagne de l'argent grâce à des liens marketing d'affiliation sur le web. En retour, les membres récoltent des points chaque fois qu'ils effectuent un achat chez un détaillant partenaire et obtiennent des récompenses en dollars. Évidemment, cette circulation permet de collecter beaucoup de données sur les utilisateurs : des centaines de téraoctets en mémorisation active et davantage en stockage passif. En 2018, l'entreprise voulait qu’un plus grand nombre d'utilisateurs puisse accéder à ces informations, sans avoir recours à Python ou Scala, et cela, en réduisant ses dépenses d'investissement en matériel. Forcément, elle a commencé à intéresser au cloud.
Anciennement connue sous le nom d'Ebates, l'entreprise a été rachetée en 2014 par le géant japonais du commerce électronique Rakuten. Depuis, elle connaît une croissance rapide, l’obligeant à moderniser sa technologie et à se concentrer davantage sur les données pour attirer et fidéliser ses clients. En premier lieu, elle a modernisé son architecture. Pendant ces trois dernières années, Rakuten Rewards a commencé par déplacer ses big data SQL, en grande partie sur site, vers Hadoop, également sur site, avant d’opter pour un datawarehouse dans le cloud géré par Snowflake.
La mise à l’échelle des serveurs SQL en question
« Les serveurs SQL ne permettent pas une mise à l’échelle satisfaisante, c'est pourquoi nous avons installé Hadoop sur site avec Cloudera, en utilisant Spark et Python pour exécuter l'ETL et améliorer un peu les performances », a déclaré Mark Stange-Tregear, vice-président de l'analyse chez Rakuten Rewards. « Gérer une structure Hadoop n’a rien de trivial, c’est même assez complexe. Donc, quand les entrepôts de données dans le cloud sont apparus sur le marché, nous avons décidé de déménager nos données et de construire cet entrepôt et ce lac de données centralisés de niveau entreprise », a-t-il ajouté.
Comme l'a affirmé Mark Litwintschik, ancien développeur et consultant big data de Bloomberg, dans son billet de blog intitulé « La fin de Hadoop ? », le monde a commencé à s’éloigner de la plateforme après les jours heureux qui ont marqué le début des années 2010. Aujourd'hui, les frameworks cloud, qui déchargent les équipes d'ingénierie des données, sont de plus en plus populaires auprès des entreprises qui veulent réduire le coût lié à l'inactivité des machines sur site et cherchent, de façon générale, à rationaliser leurs opérations d'analyse.
Se détacher de Hadoop
Mi-2018, Mark Stange-Tregear et le data ingénieur principal Joji John ont donc décidé d'entamer une migration majeure des données de leurs systèmes centraux vers le datawarehouse dans le cloud de Snowflake, en plus de l'infrastructure de cloud public d'Amazon Web Services (AWS). La couche de reporting et certains des sets de données les plus utilisés par l'entreprise ont été déplacés en premier. Ont suivi l'ETL et les workloads de production de données réelles. Toutes ces opérations ont été achevées vers la fin de l’année 2019, à l'exception de la migration de certaines informations plus sensibles concernant les ressources humaines et les cartes de crédit. Grâce à cette migration dans le cloud, Rakuten a amélioré ses capacités de mise à l’échelle. L’entreprise peut mieux s’adapter aux pics et aux baisses d’activité qui varient en fonction des périodes de shopping.
Snowflake permet également à Rakuten Rewards de segmenter son lac de données en une série d'entrepôts de formes et de tailles différentes pour répondre aux besoins des différentes équipes, et même d'en créer de nouveaux pour des projets ponctuels, sans pour autant mettre les équipes en concurrence quand elles utilisent la mémoire ou la capacité des processeurs sur le même cluster. Auparavant, « une grosse requête SQL d'un utilisateur pouvait effectivement bloquer ou faire tomber les requêtes d'autres utilisateurs, ou interrompre une partie du traitement ETL », a expliqué M. Stange-Tregear. « A mesure du développement de l'entreprise et de la croissance exponentielle de nos données, l’exécution des requêtes prenaient de plus en plus de temps. Pour éviter ces problèmes, nous avons essayé de répliquer les données sur différentes machines, mais nous avons introduit d'autres problèmes, car nous devions désormais gérer la réplication et la synchronisation des données big data ».
Un accès aux données pour tous les analystes
Désormais, Rakuten peut retraiter plus facilement les segments clients, et remonter jusqu’à l'historique complet du processus d’achat d'un utilisateur donné, tous les jours. Le système peut ensuite remodéliser leurs centres d'intérêt pour améliorer le ciblage marketing ou modéliser des recommandations. Il peut ainsi cibler l'offre client au moment où ce dernier envisage réellement d'acheter une nouvelle paire de chaussures, plutôt que de lui laisser le temps d'y réfléchir. « Nous pouvons reproduire le processus plusieurs fois par jour pour des dizaines de millions de comptes », a encore expliqué M. Stange-Tregear. « Il faut ensuite regrouper toutes ces données pour chaque utilisateur dans un modèle JSON, de façon à pouvoir réévaluer le profil de chaque membre plusieurs fois par jour, et interroger ce profil à l’aide de quelques lignes SQL ».
Ces modalités rendent l'analyse et les données granulaires accessibles à tous, aussi bien aux data scientists ayant des compétences en Python ou en Spark qu’à tout analyste familier du SQL. « Il est plus facile de trouver des gens qui codent en SQL qu’en Scala, Python et Spark », admet M. Stange-Tregear. « Aujourd’hui, mon équipe d'analystes - certains ont davantage de compétences en Python qu’en Scala - peut créer plus facilement des pipelines de données pour le reporting, l'analyse, et même des fonctionnalités d'ingénierie, car ils sont livrés dans un joli paquet SQL ». D'autres tâches big data, comme le traitement des paiements, prennent désormais beaucoup moins de temps grâce aux meilleures performances du cloud. « Traiter des factures de centaines de millions de dollars demande beaucoup de travail », a déclaré M. Stange-Tregear. « Auparavant, il fallait des semaines pour traiter ces cycles trimestriels. Aujourd’hui, nous pouvons recalibrer et traiter ces données en quelques jours ».
La vie après Hadoop
Tous ces efforts s'accompagnent également d'une certaine rentabilité. Désormais, Mark Stange-Tregear, Joji John et le directeur financier reçoivent chaque jour des tableaux indiquant le coût quotidien du traitement de données réparti par fonction commerciale. « Nous pouvons voir le coût effectif de chaque fonction et le rendre cohérent dans le temps », a expliqué M. Stange-Tregear. « Nous pouvons facilement suivre nos dépenses, voir à quel poste nous pouvons optimiser nos coûts, et connaître immédiatement le coût des nouvelles charges de travail. Ce qui était très difficile à faire avec Hadoop ». Comme beaucoup d'entreprises avant elle, Rakuten Rewards a tiré le plus de valeur possible de son investissement Hadoop. Mais quand l’entreprise a pu trouver une solution qui lui permettait de maintenir sa plateforme plus simplement - et à un plus grand nombre d'utilisateurs d'en profiter - ses bénéfices ont largement dépassé ses coûts.