En vertu de la nouvelle licence, les fournisseurs de services en nuage hébergeant des offres Redis ne seront plus autorisés à utiliser gratuitement le code source de Redis. Par exemple, les fournisseurs de services en nuage ne pourront livrer Redis 7.4 qu'après avoir accepté des conditions de licence avec Redis, les responsables du code Redis.
Des distributeurs comme Fedora envisagent déjà de supprimer Redis en conséquence.
Redis (l'acronyme de REmote DIctionary Server qui peut être traduit par « serveur de dictionnaire distant ») est un magasin de structure de données clé/valeur en mémoire open source rapide. Redis propose un ensemble de structures de données en mémoire polyvalentes qui vous permet de créer facilement un large éventail d'applications personnalisées. Les principaux cas d'utilisation de Redis comprennent la mise en cache, la gestion des sessions, la fonctionnalité pub/sub et les classements. Il est distribué sous licence BSD, écrit en code C optimisé et prend en charge plusieurs langages de développement.
Sa vitesse et sa facilité d'utilisation en font une solution de choix pour toutes les applications (web, mobiles, jeux, technologies publicitaires et Internet des objets) qui nécessitent les meilleures performances. AWS assure la prise en charge de Redis via un service de base de données entièrement géré et optimisé nommé Amazon ElastiCache for Redis, et permet également aux clients d'exécuter un système Redis autogéré sur AWS EC2.
Ses avantages :
- Des performances ultrarapides : toutes les données Redis résident dans la mémoire principale de leur serveur, contrairement à la plupart des systèmes de gestion de base de données qui stockent les données sur un disque ou sur des disques SSD. En éliminant le besoin d'accéder à des disques, les bases de données en mémoire telles que Redis évitent les délais de recherche et peuvent accéder aux données à l'aide d'algorithmes plus simples qui utilisent moins d'instructions de CPU. L'exécution des opérations classiques prend moins d'une milliseconde.
- Structures de données en mémoire : Redis permet aux utilisateurs de stocker des clés qui sont mappées à différents types de données. Le type de données fondamental est une chaîne, qui peut être composée de texte ou de données binaires d'une taille maximale de 512 Mo. Redis prend également en charge les listes de chaînes dans l'ordre dans lequel elles ont été ajoutées ; les ensembles de chaînes non triés ; les ensembles triés classés selon un score ; les hachages qui stockent une liste de champs et de valeurs ; et les hyperloglogs pour compter les éléments uniques d'un ensemble de données. Presque tous les types de données peuvent être enregistrés en mémoire à l'aide de Redis.
- Polyvalence et facilité d'utilisation : Redis propose un certain nombre d'outils qui accélèrent et simplifient le développement et les opérations, notamment la fonctionnalité Pub/Sub qui permet de publier des messages sur des canaux, qui sont diffusés à des abonnés (idéal pour les systèmes de discussion et de messagerie) ; les clés TTL qui peuvent avoir une durée de vie déterminée, après quoi elles se suppriment elles-mêmes (utile pour éviter que la base de données soit remplie de données superflues) ; les compteurs atomiques qui s'assurent que les conditions de concurrence ne créent pas de résultats incohérents ; et Lua, un langage de script puissant, mais léger.
- Réplication et persistance : Redis emploie une architecture maître-esclave et prend en charge la réplication asynchrone qui permet de répliquer les données sur plusieurs serveurs esclaves. Cela peut offrir de meilleures performances de lecture (car les requêtes peuvent être réparties entre les serveurs) et une meilleure récupération lorsque le serveur primaire subit une panne. Pour assurer la durabilité, Redis prend en charge les instantanés ponctuels (copie de l'ensemble de données Redis sur le disque) et la création d'un fichierAppend Only File (AOF) pour stocker sur le disque chaque changement de données à mesure qu'il est écrit. Chaque méthode permet une restauration rapide des données Redis en cas de panne.
- Prise en charge de votre langage de développement préféré : Plus d'une centaine de clients open source sont mis à la disposition des développeurs Redis. Les langages pris en charge comprennent Java, Python, PHP, C, C++, C#, JavaScript, Node.js, Ruby, R, Go, etc.
Une nouvelle stratégie de licence qui a abouti à un accord commercial avec Microsoft
La nouvelle stratégie de licence de Redis utilise la Redis Source Available License version 2 (RSALv2) ou la Server Side Public License version 1 (SSPLv1), à partir de Redis v7.4 et pour toutes les futures versions. Ce changement est clairement destiné à empêcher les grands fournisseurs de cloud de proposer des alternatives gratuites aux services hébergés de Redis.
Malgré les rumeurs et les confusions qui ont circulé, la licence pour Redis open source n'a jamais été modifiée. Elle est, et restera, sous licence BSD. Cependant, les modules Redis développés par Redis ont vu leur licence changer de l'AGPL à l'Apache v2.0 modifiée avec la clause Commons.
Avec cette nouvelle licence, les fournisseurs de services cloud qui hébergent Redis devront conclure un accord commercial avec Redis. Microsoft est la première entreprise à le faire. En outre, Redis a également annoncé l'acquisition du moteur de stockage Speedb pour étendre ses capacités au-delà de l'espace de stockage en mémoire.
Les raisons de ce changement évoquées par Redis
À partir d'aujourd'hui, toutes les futures versions de Redis seront publiées avec les licences disponibles à la source. À partir de Redis 7.4, Redis bénéficiera d'une double licence sous la licence Redis Source Available (RSALv2) et la licence publique côté serveur (SSPLv1). Par conséquent, Redis ne sera plus distribué sous le système Berkeley Software Distribution (BSD) à trois clauses.
Dès le premier jour, Redis a fourni une base de performances et de simplicité pour les applications et l'infrastructure de données qui alimentent l'Internet moderne. Aujourd'hui, 15 ans plus tard, nous sommes fiers de servir des millions de développeurs à travers le monde en prenant en charge les applications en temps réel dont le monde dépend chaque jour. Nous avons déjà implémenté une double licence pour nos modules Redis avancés sous la distribution Redis Stack, qui a été bien accueillie par la communauté. En fait, plus de 50 % des téléchargements redis.io – depuis Redis 6 et au-delà – proviennent de Redis Stack. Nous pensons désormais qu'étendre cette licence à Redis lui-même nous permettra de continuer à faire évoluer l'ensemble le plus complet de modèles de données, de moteurs de traitement et de capacités de développement pour nos utilisateurs.
Les nouvelles licences disponibles pour les sources nous permettent de fournir durablement une utilisation permissive de notre code source. Nous conduisons Redis vers sa prochaine phase de développement en tant que plate-forme de données en temps réel avec un ensemble unifié de clients, d'outils et d'offres de produits Redis de base. Le code source de Redis continuera d'être disponible gratuitement pour les développeurs, les clients et les partenaires via Redis Community Edition. Les futures versions disponibles en source Redis unifieront le noyau Redis avec Redis Stack, y compris les modèles de données de recherche, JSON, vectoriels, probabilistes et chronologiques dans un package gratuit et facile à utiliser sous forme de logiciel téléchargeable. Cela permettra à quiconque d'utiliser facilement Redis dans une variété de contextes, notamment en tant que magasin de clés/valeurs et de documents hautes performances, moteur de requête puissant et base de données vectorielles à faible latence alimentant les applications d'IA générative.
Le succès de Redis a créé un ensemble unique de défis. Redis a sponsorisé l'essentiel du développement aux côtés d'une communauté dynamique de développeurs désireux de contribuer. Cependant, la majorité des ventes commerciales de Redis sont acheminées via les plus grands fournisseurs de services cloud, qui banalisent les investissements de Redis et sa communauté open source. Malgré les efforts visant à soutenir un modèle de gouvernance dirigé par la communauté et notre désir de conserver la licence BSD, la fourniture simultanée de plusieurs distributions de logiciels – à travers des logiciels open source, disponibles en source et commerciaux optimisés pour différentes plates-formes sur site et cloud – est à l'ordre du jour des chances avec notre capacité à conduire Redis avec succès dans le futur.
En vertu de la nouvelle licence, les fournisseurs de services cloud hébergeant les offres Redis ne seront plus autorisés à utiliser gratuitement le code source de Redis. Par exemple, les fournisseurs de services cloud ne pourront fournir Redis 7.4 qu'après avoir accepté les conditions de licence avec Redis, le responsable du code Redis. Ces accords soutiendront la prise en charge des solutions intégrées existantes et fourniront un accès complet aux prochaines innovations Redis.
Une situation prévisible ?
D'une certaine manière, cette décision n'est pas surprenante. Nous avons vu d'autres sociétés open source comme MongoDB, Elastic et Confluent prendre des mesures similaires. Même Redis - à l'époque où il s'appelait encore Redis Labs - a connu une série de changements en 2018 et 2019 qui ont modifié la façon dont il concédait des licences à ses modules Redis. C'est à ce moment-là que l'entreprise a introduit la première version de sa licence Redis Source Available License.
« Nous avons changé pour les mêmes raisons, je pense, que tout ce qui est venu avant nous a changé, à savoir la protection de notre investissement que nous faisons dans l'open source », a expliqué le PDG de Redis, Rowan Trollope, qui a rejoint l'entreprise il y a un peu plus d'un an. « En particulier avec Speedb, il s'agit d'un investissement important pour nous en tant que startup. Si nous mettons cela en place et que les fournisseurs de services en nuage ont la possibilité de le prendre et de l'envoyer rapidement à leurs clients - essentiellement sans rien payer - cela nous pose un problème, comme vous pouvez l'imaginer ».
L'entreprise est tout à fait consciente de la façon dont cela peut être perçu par la communauté open source. Redis Trollope, qui a rejoint la société il y a un peu plus d'un an, a expliqué qu'il avait informé un grand nombre de clients de ce changement et qu'il n'avait rencontré aucune controverse. Il est également conscient que ces nouvelles licences signifient que Redis ne sera pas considéré comme un logiciel libre, du moins selon la définition de l'Open Source Institute. Mais il a également souligné que Redis prévoit de continuer à travailler de manière ouverte et de permettre à n'importe quelle entreprise de déployer la version open source de Redis.
« Je ne serais pas surpris qu'Amazon sponsorise un fork », a-t-il ajouté. « Microsoft a déjà acquis une licence pour Redis. Nos portes sont ouvertes pour que Google et Amazon puissent obtenir une licence pour le logiciel. Ce n'est pas qu'ils ne peuvent pas continuer à distribuer Redis, ils doivent simplement conclure un accord commercial avec nous ».
Avec ce changement de licence, l'entreprise consolide également Redis Stack et Redis Community Edition en une seule distribution. Redis Stack a été lancée en 2022 en tant que distribution de pointe combinant certains des modules les plus populaires, un outil de visualisation et un SDK client. En raison de la licence BSD, Redis n'a pas pu intégrer ses dernières innovations dans Redis Core, ce qui signifie qu'il lui manquait des fonctionnalités telles que la recherche et l'interrogation, par exemple. Selon Trollope, cette évolution permettra de simplifier la tâche des utilisateurs qui devaient auparavant télécharger plusieurs éléments pour tirer le meilleur parti de Redis.
Sources : Redis (1, 2), Microsoft , Fedora
Et vous ?
Quelles pourraient être les conséquences à long terme du changement de licence de Redis pour la communauté open source ?
Comment ce changement affecte-t-il votre décision d'utiliser Redis dans vos projets futurs ?
Pensez-vous que la nouvelle licence de Redis pourrait dissuader les fournisseurs de cloud de proposer des services basés sur Redis ?
Quelles alternatives open source à Redis envisagez-vous d'explorer ?
Comment les entreprises peuvent-elles équilibrer la protection de leurs investissements tout en soutenant l'écosystème open source ?
Quel est votre avis sur l'acquisition du moteur de stockage Speedb par Redis et son impact sur l'avenir de Redis ?