Cofondateurs en janvier 2020 de la start-up américano-israélienne Treeverse, Einat Orr (CEO) et Oz Katz (CTO) ont travaillé chez SimilarWeb avant de quitter la société pour développer LakeFS, une plateforme open source (Apache 2.0) dédiée à la gestion de grands ensembles de données (Hadoop, Databricks, Iceberg, Jupyter, Kafka), capable de créer des référentiels basés sur des objets dans des services cloud comme Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage ou Minio. L’idée est de proposer aux développeurs de travailler avec les données, comme avec leur code hébergé sur GitHub ou GitLab : c’est-à-dire avec la possibilité de créer et de suivre différentes versions de données pour revenir en arrière ou exécutez des pipelines parallèles pour l'expérimentation et les déploiements CI/CD.

L’idée du projet LakeFS a germé chez SimilarWeb, alors qu’Einat Orr, docteur en mathématiques, était CTO et responsable de la recherche et du développement, et Oz Katz VP R&D/production engineering. « Nous étions dans un environnement où vous avez beaucoup de sources de données qui arrivent dans un data lake, généralement un stockage objet, comme S3, Google Cloud Storage ou Azure Blob, avec un tas d'ETL, créant soit de nouveaux ensembles de données, soit des dérivés des données qui peuvent être utilisés plus tard par les outils d'IA ou par les ingénieurs qui créent des modèles pour le machine learning ». Voilà donc l'environnement et si cela semble simple, c’est au contraire une façon très compliquée de gérer le stockage, assure la CEO, avec « d’un côté une R&D composée pour moitié d'ingénieurs d'application qui prenaient les dérivés des données et les présentaient sous forme de graphiques à nos clients. La seconde moitié de la R&D collectait et analysait les données. La différence entre les deux groupes était très nette : même si la plupart des talents de l'entreprise [SimilarWeb] se trouvaient dans le groupe des données, le groupe des applications avait beaucoup plus de facilité à travailler et à fournir des résultats. Et pour nous, qui gérions ce type de R&D, il était très clair que nous devions commencer à construire des outils qui permettront de mettre en place les meilleures pratiques d'ingénierie. Lorsque je parle de pratiques d'ingénierie, je pense aux environnements de développement, aux environnements de test, aux CI /CD, non seulement pour le code, mais aussi pour les pipelines de données qui sont en fait les principales activités des ingénieurs de données et des ingénieurs en machine learning ».

Un référentiel en mode Data as a Code 

Ce que les deux dirigeants entendent réaliser avec LakeFS, c'est fournir un environnement de développement qui fonctionne de manière isolée, mais où les équipes peuvent suivre l'évolution des différentes versions de leurs données comme elles le font avec les différentes versions de leur code. Pour travailler, les développeurs ont besoin des données de production et réalisent souvent des copies complètes de différents instantanés ou des sauvegardes prises à des moments différents. Le suivi des différences est difficile à faire et la prolifération des copies crée de la confusion et un accroissement des besoins en stockage, et donc de la facture globale.

 

Pour travailler avec les principaux data lakes, Treeverse a développé les connecteurs nécessaires pour créer ensuite une abstraction des données conservées sur une plateforme objet. 

Le concept LakeFS commence par un dataset principal, un référentiel de données en fait, avec la création de métadonnées stockées sur des buckets S3 et des liens symboliques (des pointeurs vers les données sources) pour éviter de répliquer les données. Pour travailler avec les fichiers, LakeFS utilise des concepts empruntés à la gestion de versions de code source, tels que les branches et les commits (enregistrement effectif d’une transaction dans une base de données). Les branches permettent de travailler sur des copies de fichiers en parallèle, tandis que les commits permettent de valider des modifications apportées à des fichiers et de les associer à une branche spécifique. Ces branches prolifèrent et sont gérées comme dans un arbre, le logiciel LakeFS traversant l'arbre. Les fichiers peuvent être mis à jour en ajoutant, en supprimant ou en modifiant des objets dans le référentiel. Les mises à jour peuvent être effectuées en créant un commit sur la branche en cours. Lorsque deux branches sont créées à partir de la même source, elles peuvent être fusionnées pour combiner les modifications apportées dans chacune d'elles. La fusion peut être effectuée à l'aide d'une commande LakeFS. Si une erreur est commise ou si une version précédente des fichiers doit être restaurée, LakeFS permet de revenir à une version précédente à l'aide d'une commande de restauration.

 

Plateforme de gestion de données, LakeFS permet de stocker des objets dans un service cloud et de gérer les versions de fichiers à l'aide de branches et de commits, tout en offrant la possibilité de restaurer des versions précédentes de ces fichiers en cas d'erreur.

« Dans les entreprises, certaines données ne sont pas exactement exactes, elles changent tout le temps. La plupart des données collectées sont de type opérationnelles. Pensez aux données de Salesforce, par exemple. Vous avez capturé les informations hier. L'un des commerciaux se rend compte qu'il a commis une erreur en indiquant le montant d’une commande. Il entre donc dans le système et corrige l'erreur. C'est ce qu'on appelle le backfill. Un autre exemple serait lorsque vous recalculez quelque chose, vous avez créé le modèle d'apprentissage automatique et vous avez calculé quelque chose, puis vous avez créé un meilleur modèle. Si vous voulez tout recalculer, vous aurez une nouvelle version de ce résultat. Vous aurez toujours besoin de l'ancienne version parce que certains de vos utilisateurs l'ont déjà utilisée et ne voudront pas connaître les différences, etc. Les données sont donc en constante évolution », nous a expliqué la CEO.

Promoteur du Data as a Code avec son service managé LakeFS  Cloud, hébergé sur AWS et bientôt sur GCP et Azure, Treeverse commercialise sa solution en mode souscription (cloud ou on-premise à partir de 2 500$ par mois). Une version locale open source – sur Ceph ou Minio – est également proposé avec un peu moins de fonctionnalités. Parmi les premiers utilisateurs de sa solution, les dirigeants mettent en avant Shell, Lockheed Martin, Walmart, Volvo, la Nasa, Netflix et SimilarWeb. Sur ce marché, Treeverse doit faire face à une concurrence emmenée par Dremio avec le projet Nessie et AWS avec sa solution Lake Formation Service.