Redis Labs : le multi-modèle, oui, mais pas sans le partage des données
La société greffe des modules dédiés au time series et à l’IA à sa technologie In-Memory, mais pousse dans ses retranchements son approche multi-modèle, en présentant une technologie serverless (RedisGears) qui favorise le partage des données d’un module à l’autre.
Le passage d’un cap. C’est ainsi que pourraient être interprétées les évolutions technologiques présentées par Redis Labs à l’occasion de sa conférence RedisConf19 qui se tient actuellement aux Etats-Unis.
L’édition 2019 de cet événement a un parfum bien particulier. La société derrière le projet open source de base de données In-Memory Redis est actuellement sous le feu des projecteurs, à la fois médiatiques, mais aussi ceux de la communauté open source, pour avoir tranché avec son modèle économique et instauré une nouvelle forme de licence, résolument plus Open Core. Il s’est certes attiré l’ire des membres actifs de la communauté open source. Mais cela lui a aussi permis d’assoir un modèle capable d’attirer, cette-fois-ci, les investisseurs. Ces derniers ont en effet investi 60 millions de dollars dans la société. Tous les regards sont donc aujourd’hui tournés vers Redis Labs.
Redis Labs développe au-dessus du cœur Redis un ensemble de modules, chacun correspondant à un modèle de traitement des données, mais tous héritant des performances de la base In-Memory. D’abord clé-valeur, ces modules ont permis à la base de savoir traiter le modèle documents, les graphes, les flux de données, mais également de proposer des fonctions de recherche (RedisSearch) ou encore de traitements liés au Machine Learning. Et dans ce contexte, la société a souhaité confirmer son statut de base de données réellement multi-modèles et haute performance.
A l’occasion de RedisConf19, Redis Labs y a ainsi ajouté deux modules : un portant sur le traitement des séries temporelles (Time Series) et un autre permettant d’appliquer directement des algorithmes d’AI sur les données de Redis – respectivement RedisTimeSeries et RedisAI.
Les données temporelles, généralement issues de machines ou des réseaux de capteurs, correspondent en fait à des marqueurs temporels qui permettent d’évaluer les variations de courbes ou de tendances. Cela demande d’abord de fortes capacités de dimensionnement, mais aussi des performances élevées pour qui souhaite y appliquer des traitements analytiques en temps réel, explique ainsi Priya Balakrishnan, directeur Product Marketing de Redis Labs, pointant du doigt les possibilités de scalabilité linéaire de la base In-Memory.
De son côté, RedisAI a une vocation transversale puisqu’il permet d’exécuter des traitements d’AI sur toutes les données contenues dans Redis, in-situ, sans avoir à les déplacer vers un autre repository. Redis Labs a développé plusieurs types de données (Tensor, Model et Script) qui donnent la possibilité d’orienter des traitements spécifiques vers un runtime supporté (TensorFlow et PyTorch sont supportés, le support de ONNX est en cours), mais aussi vers le moteur souhaité (CPU, GPU ou les deux).
Mais si cumuler les modèles n’aurait pour vocation que d’apporter un système « polyglotte » qui jongle d’un module à l’autre, comme le propose AWS par exemple, rappelle Manish Gupta, Directeur marketing de Redis Labs, la société préfère, elle, intégrer l’ensemble. Là est, selon elle, le « vrai multi-modèle ». C’est ce à quoi doit répondre RedisGears et qui s’apparente à la plus importante annonce pour la société.
« Instaurer un dialogue fluide entre les données »
RedisGears correspond concrètement à une couche d’abstraction entre tous les modèles et modules Redis et apporte un ciment d’inter-connexion à chacun d’entre eux. Là est le tour de force. RedisGears s’apparente ainsi à un module « pivot », car il « fait travailler les données d’un modèle à l’autre », commente Priya Balakrishnan. « Aujourd'hui on doit utiliser plusieurs applications pour réaliser plusieurs fonctions, ce qui crée des problèmes de performances et des problèmes en matière d’expérience utilisateur », ajoute-t-elle. Il s’agit là d’instaurer « un dialogue fluide » entre les données de Redis qui sont désormais partagées entre modules et ce, dans leur format natif.
Techniquement, Gears effectue les transformations adéquates sur ces formats, soit après la requête, soit de façon pré-formatée (et donc avant la requête), soit au moment même de la requête. Cela peut être déclenché à partir d’événements, grâce à l’architecture serverless de Gears qui permet de segmenter très finement chaque traitement. Les modules se partagent les données mais peuvent également hériter des données des autres – ce qui est clé pour l’analytique et l’application de traitements d’AI.
Aller plus loin que le caching ?
Cette approche devrait ainsi pousser Redis Labs – et Redis – au-delà du caching qui forme aujourd’hui l’essentiel des cas d’usage de la technologie. Même si Manish Gupta soutient que ces trois dernières années, Redis a trouvé sa place dans le stockage de sessions, les transactions haute performance ou encore la gestion des jobs. Citant une étude maison, la base serait même considérée par 67 % des utilisateurs comme une base principale (comprendre pour un cas d’usage spécifique).
Comme Hazelcast ou encore GridGain, Redis Labs fait aussi le constat que le In-Memory se généralise progressivement, poussé par la volonté des entreprises d’user de ses capacités de très hautes performances et de très faible latence pour leurs applications. Et avec l’essor des modèles distribués, l’enjeu consiste à maintenir ses performances, conclut le responsable.