gustavofrazao - stock.adobe.com

Base de données : Redis retourne à l’open source

Le 1er mai, Redis a annoncé qu’il proposerait la version 8 de sa base de données in-memory sous licence AGPL – donc compatible avec les exigences de l’Open Source Initiative – en sus des licences propriétaires permissives SSPL et RSALv2. C’est « trop peu, trop tard », selon certains professionnels IT.

Pour rappel, Redis a dévoilé au mois de mars 2024 l’abandon de la licence BSD-3 pour contrer les offres des hyperscalers basées sur sa technologie.

Plus précisément, Rowan Trollope, CEO de Redis, rappelle que contrairement à MongoDB et Elastic, l’éditeur a d’abord créé Redis Stack avec l’intention de maintenir une édition entreprise séparée de Redis Core (Community Edition, désormais nommé Redis Open Source). Puis, en mars, la décision avait été prise de passer cette édition communautaire sous licence SSPL (Server Side Public License).

Une décision qui avait vécu par certains contributeurs comme une trahison.

« Notre objectif a été atteint – AWS et Google maintiennent désormais leur propre fork –, mais ce changement a nui à nos relations avec la communauté Redis », reconnaît Rowan Trollope.

Quatre ans plus tôt, Salvatore Sanfilippo (aka « Antirez », créateur et mainteneur « Benevolent Dictator for Life » de la base de données) avait quitté son poste et laissait, sur le papier, la place à une gouvernance plus ouverte. L’année dernière, Antirez a rejoint Redis en tant que membre des relations développeurs pour, entre autres, retrouver cette confiance auprès des contributeurs.

Redis 8 : plus complète, plus ouverte

Salvatore Sanfilippo, Benjamin Renaud (CTO de Redis) et les développeurs principaux ont impulsé des changements de licence et techniques.

D’abord, le choix de la licence montre que Redis suit la voie d’Elastic. Ces deux éditeurs sont revenus à l’open source à travers l’AGPLv3, car c’est une licence copyleft « forte ». Toute modification du code disponible publiquement doit rester sous la même licence. Pas de surprise ici : SSPL est une déclinaison propriétaire de l’AGPLv3.

Ensuite, des fonctionnalités présentes dans Redis Stack sont incorporées dans Redis 8, dont la prise en charge de JSON, des time series, des types de données probabilistes et le Redis Query Engine, qui permet de retrouver les données par contenu et non par clé.

Redis 8 introduit également en préversion les « vector sets ». « Vector set étend le concept de sorted sets [qui permet d’attribuer un score à des chaînes de caractères uniques rassemblées dans une collection, N.D.L.R.] pour permettre le stockage et l’interrogation de vecteurs à haute dimension ».

Cela améliorerait la pertinence de Redis pour la recherche sémantique et les systèmes de recommandation. « Vector set complète la capacité de recherche vectorielle existante intégrée dans Redis Query Engine », assure l’éditeur.

Redis 8 dispose également de gains de performance, notamment une hausse des débits de 112 % sur un CPU Intel grâce à une implémentation revue du multithreading. Un nouveau mécanisme de réplication ferait baisser la consommation de mémoire vive de 35 % lors de cette phase. Le moteur Redis Query Engine serait 16 fois plus rapide qu’auparavant. Par ailleurs, le mécanisme de listes de contrôle d’accès a été amélioré pour gagner en granularité afin de bloquer certaines commandes ou certains accès aux données aux usagers.

Bref, l’éditeur entend prouver que la version open source de Redis n’est pas tronquée. D’autant que les nouvelles fonctionnalités disponibles dans Redis Open Source ne sont pas encore accessibles dans ses autres offres. Elles le seront plus tard cette année.

« Trop peu, trop tard » ?

« L’AGPL représente un bon équilibre en matière de protection de Redis inc. contre ce qu’ils perçoivent comme des tactiques commerciales déloyales de la part des fournisseurs de services en cloud. »
Roman LakovlevIngénieur logiciel, GitHub

Mais n’est-ce pas trop tard pour la communauté ?

« Mon opinion est que l’AGPL représente un bon équilibre en matière de protection de Redis inc. contre ce qu’ils perçoivent comme des tactiques commerciales déloyales de la part des fournisseurs de services en cloud », écrit Roman Lakovlev, ingénieur logiciel chez GitHub, sur LinkedIn. « Redis aurait dû passer à l’AGPL (au lieu de la SSPL) à partir de sa licence BSD, et éviter tout ce drame et ces bifurcations ».

Si Redis se satisfait du fait qu’AWS, Google ou encore Oracle soutiennent le développement du projet open source Valkey (BSD-3), le fork de Redis 7.2.4 bénéficie du soutien de la Linux Foundation et d’une communauté grandissante.

« Le changement de licence d’un point de vue purement open source, c’est trop peu et trop tard, la confiance est déjà rompue. »
Dor SereroPrincipal architect, Microsoft

« Valkey gagne beaucoup de terrain. Redis a donc dû revenir à l’open source », comprend Avinash Pandey, ingénieur logiciel chez Microsoft. « Mais je suppose que le mal est fait », affirme-t-il.

« Le changement de licence d’un point de vue purement open source, c’est trop peu et trop tard, la confiance est déjà rompue », assure de son côté Dor Serero, principal architect chez Microsoft. « Je pense que le plus grand avantage de Valkey par rapport à Redis est qu’il est soutenu par la Fondation Linux, ce qui en fait essentiellement un projet open source “pour toujours” ».

Une réponse à Valkey

Dotan Horovits, responsable des relations développeur pour l’open source chez AWS, est forcément plus sévère.

« Ils [les responsables de Redis] ne reviennent pas à la licence BSD qu’ils ont utilisée pendant 15 ans jusqu’à l’année dernière », lance-t-il. « Au lieu de cela, ils ajoutent la licence AGPL, plus restrictive et avec copyleft, en plus des deux licences non-open source existant (SSPL et Redis License) ».

« Ce retour à l’open source est le résultat de l’action rapide et décisive de la communauté l’année dernière, qui a uni ses forces derrière un fork (Valkey) dirigée par la communauté sous l’égide de la Fondation Linux », martèle-t-il.

« Je respecte Redis pour avoir réintroduit une licence open source, mais soyons réalistes : tant qu’il [le projet] n’est pas sous licence MIT ou Apache 2.0, il n’est pas vraiment open source à mes yeux. »
Trey KingV-P ventes, Hazelcast

Trey King, vice-président des ventes chez Hazelcast et ex-responsable commercial chez Redis, partage l’avis de Dotan Horovits, mais considère que ce n’est pas suffisant. « Je respecte Redis pour avoir réintroduit une licence open source, mais soyons réalistes : tant qu’il [le projet] n’est pas sous licence MIT ou Apache 2.0, il n’est pas vraiment open source à mes yeux », affirme-t-il.

« L’AGPLv3 peut cocher la case OSI, mais les restrictions liées à l’utilisation du réseau et à la divulgation obligatoire des sources en font une licence très éloignée des licences permissives que les entreprises confient à leurs développeurs ».

La réponse à Valkey est toutefois notable, selon Peter Zaitsez, fondateur de Percona. « […] Un certain nombre d’extensions, telles que RedisJSON qui n’est plus open source depuis 2018, sont maintenant incluses avec Redis sous la même licence AGPLv3 », remarque-t-il sur LinkedIn. « Cela semble être une partie importante de la réponse contre Valkey, qui n’a pas toutes les mêmes fonctionnalités, car seul le code BSD Redis “de base” a été forké ».

D’autres professionnels de l’IT avaient fait part d’une réflexion similaire quand Elastic a annoncé l’adoption de la licence AGPLv3 pour Elasticsearch, face à la concurrence que représente désormais son fork OpenSearch. Elastic affirme pour autant qu’il ne perçoit pas réellement le projet comme une menace commerciale.

Shay Banon, CTO et cofondateur d’Elastic, avait démenti le fait que ce changement était lié à une baisse du cours en bourse. De son côté, Redis n’a pas réalisé son introduction, bien que l’entreprise ait annoncé s’y préparer il y a quelques années. Rowan Trollope a tenu des propos similaires. De fait, même si OpenSearch et Valkey peuvent affecter le recrutement de nouveaux clients, Redis et Elastic bénéficient d’une base de clients installés préférant le support commercial de solutions plus ou moins ouvertes.

Pour approfondir sur Base de données