Elastic, la société derrière Elasticsearch, est en train de modifier les codes source des clients de sa base de données NoSQL orientée documents, pour bloquer leur connexion à des versions fork. La motivation de ce changement est d'étouffer OpenSearch, le fork d'Elasticsearch et de Kibana développé par AWS. Elastic estime en effet qu'AWS tire profit de ses investissements continus dans son projet open source, en offrant Elasticsearch en tant que service, mais sans contribuer en retour.
La division cloud d'Amazon propose depuis longtemps le service Amazon Elasticsearch, qui fournit la version open source d'Elasticsearch développée par Elastic en tant que service géré sur son cloud. Tout semblait aller bien jusqu'au mois de janvier de cette année où Shay Banon, PDG d'Elastic, a publié une déclaration condamnant fermement les plateformes de cloud public, en particulier AWS, pour ce qu'il considère comme une utilisation injuste de son produit open source.
Elastic reproche à AWS d'avoir créé la division et la confusion au sein de la communauté open source en développant sa propre distribution d'Elasticsearch. AWS a en effet forké Elasticsearch en 2019 en créant Open Distro for Elasticsearch. Pour cela, entre autres raisons, Elastic a modifié la licence d'Elasticsearch et de Kibana, passant de la licence Apache 2.0 à une double licence, la Server Side Public License (SSPL) et l'Elastic License, qui restreint l'utilisation d'Elasticsearch en tant que service commercial. « Ce changement de licence garantit à notre communauté et à nos clients un accès libre et ouvert pour utiliser, modifier, redistribuer et collaborer sur le code. Cela protège également notre investissement continu dans le développement de produits que nous distribuons librement et en open source en empêchant les fournisseurs de services cloud d'offrir Elasticsearch et Kibana en tant que service sans contribuer en retour », avait indiqué Elastic.
Avec ce changement, pour que le leader du cloud computing puisse continuer à offrir et à faire évoluer le service Amazon Elasticsearch, il devra soit signer un accord de licence payant avec Elastic et obtenir la permission d'utiliser les futures versions d'Elasticsearch, soit poursuivre indépendamment et activement le développement de son fork. AWS a choisi la seconde option, ce qui a abouti le mois dernier à la disponibilité générale d'OpenSearch 1.0, la première version majeure du fork d'Elasticsearch et de Kibana développé par AWS.
En guise de réplique, les développeurs d'Elasticsearch ont maintenant opté pour une modification discrète de la source d'elasticsearch-py, le client Python d'Elasticsearch. Celui-ci vérifie désormais si la base de données est le produit d'Elastic et non un fork. Une erreur sera alors générée « s'il n'y a pas d'en-tête HTTP X-Elastic-Product dans la réponse ou si la valeur de l'en-tête HTTP X-Elastic-Product n'est pas Elasticsearch ». Notons que le client elasticsearch-py compte plus de 202 000 téléchargements et est décrit comme le « client officiel de bas niveau pour Elasticsearch. » La même chose s'est produite avec le connecteur .NET pour Elasticsearch, avec des messages d'erreur tels que « Le client a remarqué que le serveur n'est pas une distribution prise en charge d'Elasticsearch ».
Cette bataille entre AWS et Elastic fait déjà de nombreuses victimes, y compris des développeurs open source qui ont contribué à Elasticsearch, mais qui se sentent maintenant laissés pour compte. « C'est décevant de voir ça. Nous sommes obligés en tant que spectateurs dans une bataille à choisir notre camp », a déclaré Lars Holm Nielsen, chef de produit pour un projet open source. Son produit a été développé de sorte à pouvoir facilement fonctionner à la fois avec Elasticsearch ou OpenSearch, mais avec cette guerre entre les deux entreprises, les choses se compliquent pour eux.
Dans la communauté OpenSearch, on se demande également ce qu'Open Search devrait faire pour tous les connecteurs et liaisons pour les différents langages de programmation actuellement disponibles. Beaucoup d'entre eux intègrent déjà des mesures anticoncurrentielles comme celles implémentées dans les clients Python et .NET. La licence de ces clients sous Apache 2.0 (comme c'est le cas avec les clients Python et .NET) ne semble pas suffisante pour une utilisation avec OpenSearch si le code bloque la connexion, bien que cela signifie que les clients peuvent facilement être forkés et modifiés. Elastic espère en tout cas que cela puisse nuire à AWS et son fork.
Source : GitHub
Et vous ?
Que pensez-vous des changements implémentés par Elastic pour empêcher ses connecteurs de fonctionner avec les versions fork d’Elasticsearch ?
Cela n’est-il pas anticoncurrentiel et contre les principes de l’open source ?
Les fournisseurs de cloud tirent-ils beaucoup trop profit des projets open source sans y investir et contribuer assez ?
Les éditeurs de solutions propriétaires s’enrichissent-ils sur le dos de l’open source ?
Elastic modifie le code source des connecteurs de sa base de données Elasticsearch pour qu'ils ne fonctionnent pas avec les versions fork,
AWS et son Open Search dans le collimateur
Elastic modifie le code source des connecteurs de sa base de données Elasticsearch pour qu'ils ne fonctionnent pas avec les versions fork,
AWS et son Open Search dans le collimateur
Le , par Michael Guilloux
Une erreur dans cette actualité ? Signalez-nous-la !