momius - Fotolia
SGBD : Redis s’éloigne, lui aussi, de l’open source
La semaine dernière, l’éditeur a annoncé un changement de licence affectant le cœur de sa base de données qui devient propriétaire, mais est accessible de manière permissive. Une modification qui fait grincer des dents, mais qui n’a rien d’étonnant.
Redis a annoncé le 20 mars un changement important de licence. Redis Core, jusqu’alors sous licence BSD-3, passe dans un mode de licence duale à partir de la version 7.4 : SSPLv1 (Service Side Public License) ou RSALv2 (Redis Source Available License). La première licence a été créée par MongoDB au moment de quitter sa licence open source, la seconde est une création de Redis Labs (devenu Redis Inc ou Ltd).
La RSALv2 est une licence propriétaire, permissive, libre de redevances et non transférable concernant du code pouvant être utilisé, copié, distribué et dérivé à condition qu’il ne soit pas rendu disponible à de tierces parties comme un service ou dans un logiciel.
La SSPLv1 est une version de l’AGPL qui modifie la section 13 afin d’en restreindre l’utilisation par les fournisseurs de cloud et les éditeurs de logiciels. C’est celle qui a été choisie par Elasticsearch.
« Pour les clients commerciaux de Redis, il n’y a pas de changement. Ces clients bénéficient de notre technologie dans le cadre de licences négociées séparément », avance l’éditeur dans une FAQ.
Redis Inc. rejoint le mouvement lancé par MongoDB
« Malgré des efforts pour prendre en charge un modèle de gouvernance géré par la communauté et notre désir de maintenir la licence BSD, la délivrance de multiples distributions logicielles simultanées – des logiciels open source, ouvert et commerciaux pour différentes plateformes sur site et dans le cloud – est en contradiction avec notre capacité à diriger l’avenir de Redis ».
Pour rappel, l’éditeur avait déjà modifié ses licences en 2019 afin de clarifier le statut des extensions et des modules passés sous licence RSLAv1.
En juillet 2020, Salvatore Sanfilippo, créateur de Redis, a quitté son poste de « Benevolant Dictator for Life », ce qui devait conduire à la mise en place d’une gouvernance « méritocratique ».
Redis et Salvatore Sanfilippo promettait alors que le « cœur du projet Redis resterait sous licence BSD-3 ».
Après la décision annoncée le 20 mars, le code de l’édition communautaire de Redis restera accessible. Redis Core et les extensions présentes dans Redis Stack sont amenés à fusionner. Ainsi, selon l’éditeur, des fonctions de recherche, la prise en charge de fichiers JSON, des vecteurs ou encore des données time series se retrouveront « dans un seul paquet logiciel téléchargeable et gratuit ».
Cela est vrai pour les utilisateurs finaux de Redis 7.4, mais les éditeurs et les fournisseurs de cloud « ne seront plus autorisés à utiliser le code source gratuitement ». « Par exemple, les fournisseurs de cloud pourront proposer Redis 7.4 seulement après avoir accepté les termes de licences de Redis [l’entreprise], le mainteneur du code de Redis [la base de données] ».
En revanche, les librairies client resteront sous licence open source. « Redis continuera à prendre en charge son vaste écosystème de partenaires, dont les fournisseurs de services managés et des intégrateurs, en leur confiant des accès exclusifs aux prochaines versions, mises à jour et fonctionnalités, fournies par Redis à travers son programme consacré aux partenaires ».
Microsoft a décidé de faire les deux. D’un côté, avec Azure Cache for Redis, Microsoft s’engage à respecter les conditions de Redis Inc., sans changement pour ses clients. De l’autre, Microsoft Research lance sous licence MIT Garnet, un « nouveau magasin de stockage de cache » s’appuyant sur le protocole RESP, celui-là même utilisé pour motoriser Redis. Il s’agit encore d’un projet au stade de la recherche, mais qui fonctionne avec les clients Redis.
Comme un sentiment de trahison
Ce changement de licence, qui s’inscrit dans une tendance de fond depuis 2018, est mal vécu par la communauté open source. La situation est toutefois différente de celle du cas de MongoDB ou Elasticsearch.
« Le problème avec Redis n’est pas tant le changement de licence, mais le mensonge lorsque Yiftach Shoolman , Co-Founder & CTO de Redis a fait cette promesse publique en 2018 : “La licence de Redis est BSD et restera BSD” », déclare Philippe Ombrédanne, développeur logiciel et analyste chez nexB, et cofondateur de SPDX, sur LinkedIn.
Bruno BernardConsultant logiciel et contributeur au code Redis
« Il ne s’agit pas simplement de l’accès à une technologie de base de données ; il s’agit de l’intégrité d’une promesse et des valeurs qui sous-tendent l’écosystème open source », avance de son côté Bruno Bernard, consultant logiciel et contributeur au code de la base de données. « Lorsqu’Antirez (le pseudonyme de Salvatore Sanfilippo) a pris cet engagement, il ne s’agissait pas d’une simple remarque, mais d’une promesse de respecter les principes de la liberté de l’open source ».
Pour autant, et comme à chaque annonce de ce genre, les forks et les alternatives à Redis refont surface.
C’est le cas de KeyDB, projet sous licence BSD-3 maintenu principalement par Snap Inc, la société derrière Snapchat. Redict, lui, est une fork de la version 7.2.4 de Redis sous licence LGPL 3.0. Dragonfly, lui, est un remplaçant sous BSL 1.1.
« Compte tenu de la popularité de Redis, il existe plusieurs clones et alternatives compatibles avec Redis, offrant différentes fonctionnalités, une vitesse accrue et diverses optimisations. Ces alternatives répondent à un large éventail de besoins », commente Nassir J. cofondateur et CEO de Revity, sur LinkedIn.
« Lorsque je me suis retiré de Redis, je l’ai formellement laissé entre les mains de la Core Team constituée par Redis Ltd (celle qui incluait trois programmeurs de Redis Labs, un d’AWS, un d’Alibaba), mais c’était un acte formel de ma part : avec la licence BSD, n’importe quel tiers peut forker, changer de nom, continuer le projet avec une trajectoire différente et des objectifs différents », lance Salvatore Sanfilippo, sur ycombinator. « Le code BSD est un bien commun, et chacun peut imprimer de nouvelles directions, s’il le souhaite ».
Pour autant, l’ancien BDFL ne croit pas au remplacement de Redis par une version open source suivant les critères de l’Open Source Initiative (OSI). « Mettre notre destin entre les mains de ce que l’OSI approuve ou non est une folie. En fait, pour que les logiciels libres soient viables à l’avenir, nous aurons probablement besoin de beaucoup d’autres licences basées sur le copyleft, qui permettent aux développeurs de nouveaux projets de dire, “OK, je peux utiliser une licence ouverte parce que j’ai une certaine protection contre les mégacorps” ».
De son côté, Redis Inc. veut aller de l’avant. Le lendemain de l’annonce du changement de licence, l’entreprise a acquis la startup israélienne Speedb (à prononcer speedy bee) dont le moteur de stockage sur SSD NVMe remplace RocksDB dans Redis On Flash, la couche d’autotiering de l’offre commerciale de l’éditeur.