Carrefour dote son SI d'une architecture « data-centric »
Le numéro 1 français de la distribution a entrepris la modernisation de son système d'information en déployant un Data Lake. Baptisé PHENIX, ce projet vise à faire basculer l'informatique de l'entreprise dans le temps réel.
Comme tous les grands groupes de distribution mondiaux, l'informatique de Carrefour s'est constituée lors de ces 30 dernières années par une accumulation d'applications et de couches logicielles successives. Les transferts de données par traitements batch y sont légion.
Un mode de fonctionnement hérité du passé qui, à l'heure de la transformation numérique, est devenu un handicap dans la mise en place de nouveaux services. « Les informations issues des caisses sont transférées en fin de journée dans le back-office du magasin, puis il y a des transferts de données des back-offices vers les systèmes de Supply Chain. Il est très difficile d'avoir une vision temps réel de nos stocks », reconnait Jean-Christophe Brun, Directeur du Centre de Solutions BI & Big Data de Carrefour.
A l'heure du E-Commerce, l'enseigne ne pouvait donner d’information sur la disponibilité des produits en magasin fiable à ses clients. « Nos données sont cohérente au niveau de chacune de nos applications mais, du fait de ces échanges par batch, elles sont incohérentes au niveau du système d'information dans son ensemble. L'objectif était de dé-siloter et de décloisonner l'ensemble de notre SI pour arriver à avoir une information fiable en temps réel ».
La difficulté pour le distributeur était d'assurer une modernisation de son informatique sans bousculer cette accumulation d'applications ; tout en tenant compte de la très grande décentralisation de l'entreprise qui compte plus de 5 600 magasins en France et gère entre 700 000 à 1 million de produits.
25 briques Open Source constitue le socle technique du projet
Jean-Christophe Brun décide alors de mettre en place une architecture de type « Data Centric » : un cluster où vont se déverser potentiellement toutes les données générées par les applications du groupe en temps réel.
Le projet est initié dans le courant de l'année 2014 par le test de diverses solutions Big Data sur le marché.
« Nous voulions découvrir les outils du Big Data et ce qu'ils pouvaient nous apporter dans notre contexte. On parlait alors beaucoup du Big Data dans l'environnement client, nous voulions savoir ce qu’il pouvait nous apporter dans nos process opérationnels au quotidien. Nous avons étudié les différentes solutions aidés par Hurence. Fin 2014 nous avons considéré que cela présentait un réel intérêt pour nous, se posait alors la question du passage à l'échelle ».
A partir de début 2015, le projet PHENIX est véritablement lancé. Celui-ci est mené avec l'aide de la société Sentelis qui va appliquer sa méthodologie « Smartfoundations ». Le travail est mené sur trois fronts différents dont seul le premier est technologique. Il s'agit de faire le tri dans les multiples solutions Big Data présentes sur le marché afin de constituer le socle technologique du projet.
Pas moins de 25 solutions sont retenues pour constituer ce socle, dont la distribution Cloudera d'Hadoop, la base NoSQL Cassandra, Hive, ElasticSearch, Spark, Kafka ainsi que les langages Python et R.
Les contraintes qui vont peser sur le futur Data Lake Carrefour sont fortes. « Nous nous sommes mis dans une démarche où toutes les données de l'entreprise étaient amenées à être intégrées que se soit les tickets de caisse, les stocks, les commandes, les réceptions, etc ».
Non seulement toutes les données de base de l'entreprise devaient être chargées dans le cluster Big Data, mais tout ce qui était réalisé en batch devait l'être en temps réel et avec le niveau maximal de détails. Même les logs systèmes des systèmes de production devraient converger vers le Data Lake.
Les ingénieurs ont opté pour une architecture type LAMBDA afin de garantir le niveau de performance attendu.
Le deuxième chantier ouvert en parallèle à au Data Lake portait sur les cas d'usage. « Dissocier le socle des usages est important », estime Jean-Christophe Brun.
« On a souvent tendance à aborder le Big data via les usages, notamment l'analytics. C'est un élément important, mais si l'on veut construire quelque chose qui est industrialisable, il faut absolument travailler sur cette notion de socle. C'est un peu la partie cachée de l'iceberg mais elle doit se montrer capable, au fil du temps, de résister à tous les cas d'usage que l'on va bâtir dans les années à venir ».
Enfin, un troisième volet porte sur la gouvernance des données. Carrefour a mis en place une organisation devant assurer la maitrise de la donnée qui va alimenter son Data Lake, avec la nomination de « Data Owners » et la mise en place d'outils de traçabilité pour garantir la qualité de la donnée dans la durée.
Les premières applications sont entrées en production
L'industrialisation de la plateforme PHENIX s'est déroulée tout au long de l'année 2015, tandis qu'en fin d'année étaient déployés les premiers cas d'usage.
Parmi ceux-ci, le chargement en temps réel des tickets de caisse des ventes de l'ensemble des magasins, ainsi que ce qu'appelle Jean-Christophe Brun, « la vision 360 du produit ». Il s'agit du référentiel produit Carrefour. Celui-ci intègre aussi bien les données internes qu'externes, notamment celles liées à la concurrence.
En outre, grâce à PHENIX, Carrefour est enfin en capacité de récupérer l'ensemble des mouvements de stocks en temps réel et d’afficher un état des stocks effectif sur l'ensemble de ses magasins.
Le cluster PHENIX doit absorber les données déversées par les différents systèmes de Carrefour en temps réel, mais il doit aussi conserver un historique de l'ensemble. « C'est un point très important car nous souhaitons une convergence et une mise en cohérence des données transactionnelles et décisionnelles »
« C'est ce qui permet la création de nouveaux services qui nécessitent le partage au même moment de l'historique du client, d'un produit ou d'un stock magasin ainsi que les événements temps réels pour pouvoir réagir face à une rupture magasin ».
Dans l'approche progressive privilégiée par les équipes de Carrefour, les applications rallient petit-à-petit PHENIX. Dès qu'une application est interfacée, ses données deviennent accessibles à l'ensemble des nouvelles applications sous forme de Web Services.
Le Data Lake joue alors le rôle de base de données pour la nouvelle application. « Par exemple, pour le développement de notre nouvelle application de SAV, nous nous sommes concentrés sur l'IHM et le processus associé à l'application. Les données sont stockées dans le Data Lake ».
Cette architecture est même sollicitée par une application "legacy", écrite en Cobol, dont une des fonctions vient puiser des données dans le Data Lake au moyen d'un Web Service. « C'est comme cela que l'on arrive à tisser des liens entre l'IT existante et l'IT à venir tout en gérant un patrimoine d'applications du XXe siècle », s'amuse Jean-Christophe Brun.
Un impact organisationnel certain
Si le pari de cette architecture Data-centric semble gagné, la mise en place s'est accompagné de profonds changements dans la façon de travailler des équipes Carrefour.
« Après plus d'un an sur ce projet, ma conclusion est qu'il est nécessaire de faire évoluer sa manière de travailler, en particulier du côté des opérations. Le Big Data est un monde très mouvant. Il faut être capable de s'adapter aux changements qui apparaissent régulièrement sur les systèmes et sur les logiciels que l'on a choisis ».
« Il faut que ces changements se passent de la manière la plus naturelle possible, jusqu'à la production. Cela implique d'aller vers une approche de type DevOps ».
Avec l'aide de Sentelis, Carrefour a mis en place des outils d'intégration continue afin de pousser les nouveaux développements vers la production. Baptisée « PHENIX Software Factory », cette plateforme s'appuie sur Git, Jenkins, Nexus, Ansible, Jira et Docker, les moyens pour la DSI d'apporter l'agilité réclamée par les métiers à sa plateforme Big Data.