Stockage objet : LakeFS crée des copies virtuelles des données
En ajoutant la fonction de liens symboliques au mode objet, le système de Treeverse permet de gérer plusieurs déclinaisons virtuelles des données, un avantage pour les projets analytiques.
Traiter un lac de données comme un système de fichiers pour pouvoir gérer des versions alternatives ou successives de ces données. Telle est la fonction de LakeFS, un logiciel Open source développé par la startup israélienne Treeverse, laquelle compte se servir de l’agilité des fonctions de stockage pour apporter aux datascientists les bonnes pratiques des développeurs d’applications.
« Nous voulions que les ingénieurs qui font de l’analytique bénéficient des mêmes capacités de versioning et de branching que celles offertes par Git aux développeurs. Ceci afin qu’ils gagnent du temps lorsqu’ils se rendent compte que les jeux de données utilisés n’ont pas été transformés comme il aurait fallu », explique Einat Orr, la cofondatrice de la startup (à droite sur la photo). LeMagIT l’a rencontrée à l’occasion d’un événement IT Press Tour consacré aux startups israéliennes qui innovent dans le stockage.
« Et il nous est apparu que la meilleure manière de le faire était de traiter les données comme des snapshots de volumes », dit-elle, en précisant que le projet a démarré en 2020 et que la première version de LakeFS a été publiée au mois d’août de l’année dernière. À date, Treeverse compte 28 salariés.
Selon Einat Orr, le travail d’un ingénieur consiste à transformer successivement les données selon les différentes étapes d’un projet d’analytique. Mais un bug dans l’un de ces processus de transformation peut corrompre l’ensemble du jeu de données. Lorsque celui-ci a une taille de 1 Po, l’entreprise peut alors perdre jusqu’à trois semaines pour restaurer des données saines.
« Cela n’arriverait pas si vous aviez toujours une copie des données à chaque étape et si vous pouviez immédiatement remonter à l’étape qui a précédé le bug », assure-t-elle. Et d’ajouter que, même sans bug, il peut être pertinent de tester plusieurs variantes.
Problème, pour y parvenir il faudrait démultiplier les capacités de stockage du datacenter. Sauf si l’on travaille sur des alias des données (copies virtuelles à l’aide de liens symboliques) et que l’on n’enregistre sur disque que les quelques informations qui diffèrent d’un modèle original. Deux fonctions propres aux systèmes de fichiers.
Décliner un stockage objet en « branches » virtuelles
Sur le plan technique, LakeFS fonctionne avec des données source qui sont stockées dans un bucket, l’équivalent du volume de fichiers quand on parle de stockage objet. LakeFS supporte les formats objets d’AWS, Azure et GCP, ainsi que tous les systèmes de stockage accessibles via le protocole S3, le système de MinIO, etc.
« En clair, tous les systèmes de stockage objet que vous pouvez utiliser avec TensorFlow, Kafka, Apache Spark et consort. Nous proposons que ces logiciels ne communiquent plus directement avec ces systèmes objet, mais lisent et écrivent leurs informations dans LakeFS », précise Einat Orr.
LakeFS propose des buckets virtuels - des « branches » - qui sont au départ tous autant de liens symboliques vers le bucket d’origine. Puis, au fur et à mesure des écritures, les données nouvelles ou transformées prennent virtuellement la place des précédentes. Elles ne les remplacent pas physiquement sur les disques, mais les liens symboliques pointent à présent vers elles et, ce, avec une configuration qui varie d’une branche à l’autre. Au bout d’un certain nombre d’itérations dans les projets, les données sont organisées comme une arborescence de branches.
« LakeFS est comme le catalogue dans un système de fichiers. Il présente des pointeurs vers les données. Puis, lorsque vous avez besoin de revenir en arrière, cela fonctionne comme Time Machine, le système de sauvegarde chronologique d’Apple : LakeFS remet les pointeurs dans l’état qu’ils avaient au moment auquel vous voulez vous retrouver », intervient Oz Katz, le directeur technique de Treeverse, également co-fondateur (à gauche sur la photo).
Concernant les données définitivement obsolètes, typiquement celles d’une branche abandonnée, elles sont effacées périodiquement par une fonction de garbage collector. Treeverse indique que la période est configurable.
Faciliter la gestion des différentes versions des données
Voilà pour le moteur. Côté utilisateur, un client LakeFS permet aux administrateurs des données d’accéder à toutes les métadonnées liées aux branches de LakeFS. Ce client se manipule avec les mêmes commandes que Git pour assurer la maintenance des branches, les fusionner, changer de branche principale, etc.
« Le système prend aussi en compte que les données sources peuvent changer au fil du temps, ce qui arrive par exemple souvent lorsque la base sur laquelle vous travaillez contient des informations clients, issues d’une application de CRM », ajoute Oz Katz.
Parmi les utilisateurs, Karius, une startup américaine qui combine chimie et intelligence artificielle pour diagnostiquer les maladies, a témoigné auprès de nos confrères américains de TechTarget. « Pour passer de ce qui se trouve dans un tube à essai, à ce qui se trouve traité en cloud, à ce qui trouve écrit dans le rapport du médecin, nous devons sécuriser la chaîne des données. Dans ce contexte, LakeFS nous apporte l’attention dont nous avons besoin. Nous n’avons plus à investiguer en permanence pour savoir si les bonnes données arrivent aux bonnes personnes », explique Sivan Bercovici, le directeur technique de Karius.
LakeFS est installable gratuitement sur un serveur et nécessite une base de données tierce pour ses métadonnées. La version payante, sur site ou en cloud public (pour l’heure uniquement disponible chez AWS, avec un lien PrivateLink pour accéder aux données) est facturée 2500 dollars. Elle seule permet de connecter LakeFS à un domaine Active Directory, lequel est pour ainsi dire obligatoire dès lors que différentes équipes doivent décliner chacune les mêmes données.