Bagarre ouverte dans l’Open Source autour de la licence Elastic

Elastic a passé la licence d’ElasticSearch et Kibana en SSPL, provoquant l’ire de nombre de membres de la communauté open source du projet et la réaction d’AWS avec l’annonce de forks. S’agit-il d’une transition «normale» ou d’une grave atteinte à l’Open Source ?

Un «drame» presque habituel De nombreuses entreprises éditrices de logiciels, qu’il s’agisse de bases de données comme MongoDB, de bibliothèques graphiques comme Qt ou autres se voient attaquées dans leur modèle (service, open core, double licence libre et payante, ...). Ces entreprises affirment généralement que d’autres acteurs leur « volent» leur chiffre d’affaires en se plaçant en intermédiaires, captant des revenus avec une approche base de données à la demande ou en revendant du code propriétaire créé à partir de code open source auquel ces derniers n’ont pas même contribué. La solution retenue pour stopper une telle dérive est souvent un changement de licence, vers bien entendu une licence non-libre respectant le plus fréquemment les critères suivants :

• le code reste accessible, il ne passe pas directement de totalement ouvert à fermé – le changement serait brutal –, mais sa réutilisation est souvent très contrainte. Il est généralement interdit, à minima, de faire du «sur mesure» sans publier le code modifié;

• cela ne change rien pour l’utilisateur final, du moins au début pour ne pas faire fuir tout le monde. S’il ne paie pas, cela reste ainsi un certain temps et s’il paie déjà pour le support, pour certains services, cela continue à l’identique, en attendant une nouvelle évolution plus ou moins rapide.

logz.io fournit des outils open source d’analyse de logs, de calcul de métriques et de suivi et d’analyse de traces considérés parmi les meilleurs, dont ELK, Prometheus et Jaeger

Chronologie des faits

Tout commence sans doute en février 2018 avec l’annonce, par Elastic, de l’ouverture de son composant de sécurité X-Pack, doublant la mise à l’époque «sur l’ouverture et l’Open Source». Elastic se lance brillamment dans un modèle économique pérenne et à succès autour de l’Open Source. Concernant X-Pack, l’ouverture n’est faite qu’en termes de visibilité du code, pas de licence libre. Elastic le précise assez clairement : «As of 6.3, the X-Pack code is open under the Elastic License. However, it will not be ’open source’ as it will not be covered by an OSI approved license.» Ouvert or not Ouvert, la question se pose déjà, et the réponse est plutôt… not. En avril 2018, Elastic proclame à qui veut l’entendre que «OSSFL est un logiciel open source pour la vie. Nous croyons à l’Open Source et notre investissement dans ce domaine restera inchangé. Nous ne retirons pas de code Apache 2.0.» Côté communauté, la réaction suite à l’annonce d’Elastic est plutôt que «la SSPL n’est pas une licence open source», certains utilisateurs parlant même de «Fauxpen» Source. En février 2019, un an plus tard, Amazon annonce la sortie d’OpenDistro, un fork hostile d’ElasticSearch dans sa version sous licence Apache 2. La réaction d’Elastic ne se fait pas attendre. Le 12 mars 2019, la société déclare : «We believe in Open Source, and the power it brings. Our level of investment in Open Source since then has only increased.» Elastic affirme ainsi son investissement dans l’Open Source. Le 14 janvier dernier, l’entreprise annonce qu’à partir de la version 7.11, Elasticsearch et Kibana passeront sous licence SSPL (Server Side Public License). L’APL (Apache Public License) v2 et la licence propriétaire pré-existante Elastic License disparaissent. La raison invoquée par Elastic est la concurrence de gros fournisseurs de Cloud qui utilisent leur offre d’Elasticsearch/Kibana à la demande, ne générant pas suffisamment de retombées financières ni de code en retour. Elastic estime faire comme MongoDB avant eux. L’annonce de la disparition de la licence libre APLv2 et, plus généralement, d’un certain modèle économique, a bien évidemment provoqué une réaction des utilisateurs. Le 21 janvier, Amazon reparle d’un potentiel fork open source d’Elasticsearch. Rappelons qu’à ce moment-là AWS fork Elastic Search n’est plus sous licence Apache, soit dit en passant. Le 25 janvier 2021, AWS riposte à Elastic avec un fork d’Elasticsearch. Amazon annonce aussi que d’autres vont faire de même, comme la société de surveillance du Cloud Logz.io. Certains partenaires voudraient une distribution open source pour Elasticsearch et Kibana sous pilotage ASF (Apache Software Foundation) ou CNCF (Cloud Native Computing Foundation), par exemple. La dernière annonce en date du 2 février 2021 parle de l’introduction de la licence Elastic v2, simplifiée et plus permissive (d’après Elastic), la SSPL restant néanmoins une option.

X-Pack n’est pas si ouvert que le prétend Elastic. Seul le code l’est, et bien que cela constitue un point essentiel, d’autres critères sont requis selon les règles établies par la FSF (Free Software Foundation), critères auxquels la licence Elastic ne répond pas.

Le point de vue de Shay Banon, CEO d’Elastic

Ce très cher Shay Banon défend bien sûr son «bout de gras». Voici, ci-dessous, un extrait de sa déclaration. «Nous avons récemment annoncé un changement de licence que nous expliquons dans un article de blog (https://www.elastic.co/ fr/blog/licensing-change) et dans une FAQ (https://www.elastic.co/fr/pricing/ faq/licensing). Je souhaite à présent vous expliquer la raison du changement de licence d’Elastic. Pourquoi avoir pris cette décision? À cause d’AWS et d’Amazon Elasticsearch Service qui se sont autorisés des libertés inacceptables à nos yeux depuis 2015. Malheureusement, la situation ne s’est pas améliorée depuis. Ce changement de licence a pour objectif d’éviter que des entreprises fournissent directement Elasticsearch et Kibana en tant que service sans coopérer avec nous. Selon nous, Amazon/AWS induit en erreur la communauté depuis des années. Nous avons donc décidé de mettre un terme à de telles pratiques avec ce changement de licence. Nous avons envisagé toutes les options possibles, y compris d’éventuelles poursuites judiciaires. Or, face au comportement d’AWS, nous avons choisi de changer notre licence afin de nous concentrer sur le développement de nos produits et d’innover au lieu de porter plainte. Selon nous, le comportement d’Amazon n’est pas conforme aux normes et valeurs particulièrement importantes dans l’écosystème de l’Open Source. Avec ce changement, nous utilisons notre position sur le marché pour nous défendre afin d’éviter des problèmes similaires à d’autres entreprises. Imaginez donc notre surprise quand Amazon a lancé en 2015 un service fondé sur Elasticsearch qui a été appelé Amazon Elasticsearch Service. À nos yeux, il s’agit d’une violation pure et simple de notre marque. Nous avons tenté en vain de résoudre ce problème avec Amazon, ce qui nous a obligés d’intenter une action en justice. Je crois dans les valeurs fondamentales de la communauté de l’Open Source, à savoir la transparence, la collaboration et l’honnêteté. Je souhaite développer des produits de qualité pour les utilisateurs du monde entier. Elasticsearch et Kibana ont déjà permis de créer des solutions fabuleuses, et continueront de le faire

La Suite Elastic est l’évolution de la Suite ELK issue de trois projets open source : Elasticsearch, Logstash et Kibana.

Conséquences prévisibles

Quelles conséquences découlent du changement de licence? Si vous êtes un «libriste» convaincu et exclusif, alors ces deux logiciels n’étant plus sous licence libre chez Elastic, vous pouvez bifurquer vers la dernière version libre, le fork d’AWS. Vous pourriez avoir des problèmes dans le futur en tant que simple utilisateur si ces logiciels étaient retirés des distributions ou des bibliothèques standard des langages, comme cela a été le cas avec MongoDB. Si vous voulez juste un logiciel pour une utilisation à court terme, par exemple, en dehors du retrait éventuel des distributions et des langages, cela peut ne rien changer ou presque pour vous. Vous devrez peut-être utiliser les dépôts des éditeurs pour vous fournir en paquets, comme c’est le cas pour Elastic. Rien ne devrait donc changer au moins à court terme. Il est aussi envisageable de se dire qu’il est urgent de ne rien faire, d’attendre de voir ce qui se passe. Qui sait, le problème sera peut-être réglé dans un mois? La première version sous SSPL n’est pas encore sortie. Comme pour tous les logiciels, les questions qui se posent sont leur pérennité, la dépendance à un éditeur, la richesse des fonctionnalités, la sécurité ou le coût. Si par contre vous vendez de la base de données à la demande, vous êtes directement concerné. Une profonde introspection s’impose afin de savoir si vous êtes un contributeur du monde de l’OS ou non, si vous allez forker de façon hostile ou de façon pérenne. Certains dirons que contrairement à IBM qui a contribué à Linux quand Linux est devenu important pour lui, AWS semble ne pas jouer le jeu de la même manière, que ce soit en termes de partage de revenu ou de code. Ce qui a peut être poussé Elastic à ses tristes décisions. Le libre s’intéresse à la liberté de celui qui reçoit (lire l’encadré sur les libertés de la FSF). Rappelons que des millions de sociétés, et Amazon en fait partie, utilisent des distributions Linux et vendent de l’hébergement sans reverser une seule ligne de code en retour. A priori Linus Torvalds n’a pas fait de scandale pour autant et n’a pas menacé de passer le noyau Linux en SSPL ou autre licence pseudo-libre. Ceux qui ne jouent pas le jeu sont très nombreux depuis le début du libre, quoiqu’en dise Elastic.

La riposte d’AWS

AWS a expliqué que la décision d’Elastic de ne plus rendre disponible en Open Source son moteur de recherche et d’analyse Elasticsearch ainsi que son tableau de bord de visualisation des données Kibana l’a obligé à prendre des mesures radicales. « Nous annonçons aujourd’hui que AWS va s’engager à créer et à maintenir un fork sous licence ALv2 de l’Open Source Elasticsearch et Kibana afin de garantir que les versions open source des deux logiciels restent disponibles et bien supportées, y compris dans nos propres offres», a déclaré AWS dans un article de blog. «Faire le choix de bifurquer d’un projet à un autre n’est pas une décision à prendre à la légère mais cela peut être la bonne voie à suivre lorsque les besoins d’une communauté divergent», dixit l’équipe d’AWS. Lorsque quelque chose de ce genre se produit dans le monde du logiciel libre, les développeurs ont fort heureusement déjà tous les droits nécessaires pour reprendre le travail eux-mêmes, pour peu qu’ils soient suffisamment motivés et/ou financés. La direction d’AWS a également souligné que l’équipe aurait les moyens suffisants pour maintenir le projet. AWS a des années d’expérience de travail avec la base de code et avec les contributions en amont à Elasticsearch et à Apache Lucene, la bibliothèque de recherche principale à partir de laquelle Elasticsearch a été construit, avec plus de 230 contributions de Lucene rien que pour la seule année 2020. AWS a donné un aperçu de son approche : « Nos forks d’Elasticsearch et de Kibana seront basés sur les dernières bases de code sous licence ALv2, version 7.10. Nous publierons de nouveaux dépôts GitHub dans les prochaines semaines. Les deux seront à terme inclus dans les distributions Open Distro existantes, en remplacement des versions ALv2 fournies par Elastic. Nous sommes engagés sur le long terme et nous travaillerons de manière à promouvoir des pratiques saines et durables en matière d’Open Source, notamment en mettant en place une gouvernance de projet partagée avec une communauté de contributeurs.» Rien moins que cela. Un nouvel héraut du libre est né et il s’appelle AWS. Pour autant, AWS n’est pas le seul groupe à s’opposer à la tentative d’Elastic de monétiser la «pile» logicielle Elasticsearch, Logstash et Kibana (ELK pour les intimes). Une start-up du Cloud, Aiven, pour ne pas les nommer, n’a guère apprécié l’approche d’Elastic. AWS a donc répondu au changement de licence adopté par Elastic en maintenant la licence open source initiale sur Elasticsearch et Kibana dans le but clairement annoncé de créer des forks. Le conflit entre AWS et Elastic aura abouti à la décision d’AWS de changer de modèle de licence pour ses solutions Elasticsearch (moteur de recherche) et Kibana (datavisualisation). Le fournisseur de Cloud a annoncé qu’il allait conserver la licence Apache 2.0 initiale pour les deux produits, ce qui entraîne de facto le fork des deux solutions. L’origine de cette bataille remonte à 2019 (cf Chronologie des faits), lorsque AWS a lancé Open Distro pour Elasticsearch. Elle était décrite comme une « distribution à valeur ajoutée d’Elasticsearch 100% open source (sous licence Apache 2.0).» La suite s’est traduite par une plainte d’Elastic contre le fournisseur de Cloud. C’est dans ce contexte tourmenté que Elastic a pris la décision de basculer ses deux services sous licence SSPL (Server Side Public License). Cette licence vise à pousser les fournisseurs de Cloud, AWS en particulier, à participer au code et à reverser leurs travaux à la communauté. Celle-ci n’a guère apprécié ce changement, plusieurs voix s’élevant pour déclarer que Elasticsearch et Kibana n’étaient plus des logiciels open source. AWS a réagi dans un message signé par Carl Meadows, Jules Graybill, Kyle Davis et Mehul Shah, chez AWS, qui ont communément déclaré : « Afin de garantir que les versions open source de ces deux logiciels restent disponibles et bien supportées, y compris dans nos propres offres, nous annonçons aujourd’hui que AWS va s’engager à créer et à maintenir un fork sous licence ALv2 des logiciels open source Elasticsearch et Kibana. Le service Amazon Elasticsearch hébergé dans le Cloud commencera à utiliser le fork d’AWS et toutes ses nouvelles fonctionnalités et maintiendra la rétrocompatibilité afin que les clients n’aient pas à changer leurs applications pour continuer à utiliser le service.» AWS tente ainsi d’inciter les développeurs à adopter son fork.

Le point de vue de la communauté

Le PDG d’Aiven, Oskari Saarenmaa, a estimé que l’annonce d’Elastic était hypocrite. « De nombreux logiciels désormais propriétaires incluant de nombreuses restrictions ont été construits d’une manière ou d’une autre à partir d’autres projets open source. Les problèmes de licence dans le domaine de l’Open Source ne seront jamais résolus, mais il est néanmoins important de distinguer les véritables projets open source menés par la communauté des produits créés par un propriétaire donné qui cherche à tirer parti de leurs racines open source et du travail des autres.» Logz.io, une autre société de surveillance du Cloud ainsi que d’autres partenaires divers et variés ont annoncé avec emphase le lancement d’une véritable distribution open source pour Elasticsearch et Kibana. « Notre objectif est de faire en sorte que ces projets soient menés par plusieurs organisations commerciales et non par une seule. Il est prévu qu’ils soient toujours sous Apache 2 et pilotés par la communauté, de sorte qu’ils puissent finalement être confiés à des fondations telles que l’ASF (Apache Software Foundation - https:// www.apache.org/) ou la CNCF (Cloud Native Computing Foundation - https:// www.cncf.io/). C’est ce que suggèrent les comités de pilotage », a encore déclaré Tomer Levy, cofondateur et PDG de Logz.io. Tomer Levy a ajouté sur une note plus personnelle : « J’ai toujours admiré Elastic et même sa culture d’entreprise, ses dirigeants et l’activité qu’ils ont créée. C’est pourquoi leur récente démarche est encore plus décevante. Il est ironique de présenter Elastic comme une entité pauvre et démunie. C’est une société pesant plusieurs milliards de dollars qui essaie de bloquer brutalement la concurrence, de forcer les utilisateurs de la communauté à payer pour Elasticsearch, et de monétiser entièrement un écosystème.» Cela rappellera de mauvais souvenirs à certains – mais surement pas chez Oracle. « Elastic a énormément bénéficié de la mise à disposition via l’Open Source d’Elasticsearch et de Kibana à la communauté. L’entreprise a, certes, favorisé l’adoption et créé une activité de près de 15 milliards de dollars. Oser prétendre après cela et aussi soudainement qu’ils doivent fermer la source parce que d’autres organisations peuvent en bénéficier semble pour le moins opportuniste.» Enfin, en empruntant quelque peu ironiquement aux déclarations tonitruantes d’Elastic, « ce n’est pas correct », voire un peu malhonnête à notre avis. Avant même que Elastic n’opère son changement de licence, Bradley M. Kuhn, Policy Fellow à la Software Freedom Conservancy (https://sfconservancy.org/) évoquait déjà la façon dont « les entreprises ont cherché des méthodes pour combiner les modèles commerciaux traditionnels de licences propriétaires avec des offres de logiciels libres et à code source ouvert » (https://sfconservancy.org/blog/2020/ jan/06/copyleft-equality/). D’après ce monsieur, ce modèle commercial a un effet « toxique sur le copyleft, et ce, à tous les niveaux. Les utilisateurs ne jouissent pas de leur liberté logicielle sous l’assurance qu’une large communauté de contributeurs et d’utilisateurs ont tous été liés les uns aux autres sous une même licence, forte et garantissant la liberté ». Pour citer cette fois Stephen O’Grady, le cofondateur de RedMonk, une société d’analyse axée sur les développeurs et experts en licences open source, « Elastic a clairement le droit de faire le changement, mais je ne suis pas convaincu, de manière générale, que les licences soient une solution aux problèmes de modèles commerciaux.»

Les quatre libertés fondamentales du logiciel libre

Les libertés d’utiliser, de copier, d’étudier et de modifier les logiciels ainsi que de redistribuer les versions modifiées constituent l’essence même du logiciel libre. Un logiciel ne peut être réellement considéré comme libre que si et seulement si sa licence garantit les quatre libertés fondamentales qui suivent : • la liberté d’utiliser le logiciel • la liberté de copier le logiciel • la liberté d’étudier le logiciel • la liberté de modifier le logiciel et de redistribuer les versions modifiées Les deux dernières libertés ne peuvent s’appliquer que si l’on à accès au code source qui est en quelque sorte la recette de fabrication du logiciel. Les freewares (logiciels gratuits) et les sharewares ne doivent pas être confondus avec les logiciels libres. Le principe du shareware consiste à proposer une version limitée destinée à tester le logiciel, la liberté d’utiliser est limitée soit dans la durée, soit dans le nombre de fonctionnalités. Il faut payer pour obtenir la version complète. La liberté de copier est le plus souvent accordée sans restriction pour les freewares comme pour les sharewares puisqu’elle contribue à faire connaître les logiciels en question. En revanche vous n’avez ni la liberté d’étudier, ni celle de modifier le logiciel et de redistribuer les versions modifiées. Une caractéristique essentielle des logiciels libres est la possibilité d’accéder au code source. Ainsi, les libertés d’étudier, de modifier et de redistribuer, n’existent ni pour les freewares, ni pour les sharewares, ni pour les logiciels propriétaires puisque leur code source est gardé secret.

Pour tout savoir sur les logiciels libres, adressez-vous au GNU (https://www. gnu.org/philosophy/free-sw.fr.html). La bête connaît le sujet sur le bout des cornes et vous aidera à comprendre ce qu’est réellement un logiciel libre.

La Suite ELK

ELK est un acronyme pour trois projets en Open Source : Elasticsearch, Logstash et Kibana. Elasticsearch est un moteur de recherche et d’analyse. Logstash est un pipeline côté serveur, destiné au traitement des données (type ETL). Sa mission? Ingérer simultanément des données provenant d‘une multitude de sources, puis les transformer et les envoyer vers un système de stockage comme Elasticsearch. Kibana permet aux utilisateurs de visualiser des données avec des tableaux et des graphes dans Elasticsearch. Tout a commencé avec Elasticsearch, le moteur de recherche RESTful en Open Source et distribué utilisant le format JSON. Sa nature simple à utiliser, scalable et flexible, lui a valu une grande popularité parmi les utilisateurs et une entreprise s’est formée autour pour la recherche d’amélioration et l’exploitation de ses possibilités.


Le modèle de licence d’Elasticsearch / Kibana

Des paquets elasticsearch-oss et kibana-oss open source sont fournis dans des dépôts séparés depuis la version 6.3.0 d’Elasticsearch et de Kibana et jusqu’à la version 7.11.0. La plupart des versions sont sous licence APLv2. Des paquets elasticsearch et kibana sous licence non-libre Elastic peuvent être utilisés gratuitement en ce qui concerne les fonctionnalités de base (étiquetées Basic). En payant (c’est le choix dit Gold+), l’ensemble des fonctionnalités est disponible. La 7.11, si l’annonce du 14 janvier est confirmée, devrait proposer une licence SSPL pour l’ancienne partie sous APLv2 ainsi que des versions Basic et Gold+ sous licence Elastic. Et un peu plus tard, suivant l’annonce du 2 février cette fois : SSPL pour l’ancienne partie sous APLv2 et Basic et Elastic v2 pour la partie Gold+.