Rumoer over de Elastic licentie aanpassing

-

Een bom onder het opensource model, of een geniale zet om hun business te beschermen tegen piraten.

Op 14 Januari 2021 werd er een blog post gepubliceerd op de site van elastic, licensing change. In deze blog post kondigen ze een licentie verandering aan in de volgende release van al hun tools (oa Elasticsearch en Kibana). Doel van deze wijziging is vooral om AWS een hak te zetten Ze willen het AWS onmogelijk maken om een eigen concurrerende managed Elasticsearch service te maken. Deze verandering wordt niet echt positief ontvangen in de open source wereld. In deze blog post probeer ik een overzicht te geven van wat er gebeurd is, en wat de gevolgen zijn voor bedrijven die gebruik maken van Elasticsearch en Kibana. Nog even een disclaimer, ik ben verre van een jurist. Ik wil dan ook niet echt inhoudelijk in gaan op het nieuwe licentie model. Doel is om vooral een overzicht te geven van de explosie aan meningen op internet en de mogelijke gevolgen voor de gebruikers.

Het bedrijf Elastic

Mocht je het bedrijf Elastic helemaal niet kennen, het is het bedrijf achter een van de grootste zoek machines genaamd Elasticsearch. Het bedrijf is opgericht in Amsterdam, dus een van origine Nederlands bedrijf. Een bedrijf dat biljoenen waard is op de beurs in USA. Elasticsearch is hun belangrijkste product, maar er om heen zijn vele andere andere producten onstaan. Elasticsearch is als volledig open source product begonnen, ook andere projecten als Kibana, Logstash en Beats zijn begonnen als volledig open source projecten.

De wijziging in de licentie

Elasticsearch is begonnen als volledig Apache 2.0 project. Met de komst van X-Pack kwamen daar componenten bij die een gesloten model volgden. In een blog post in 2018, Doubling down on open,  laat Elastic weten ook de X-Pack code open beschikbaar te stellen. Let wel, open, dus niet open source. Vanaf dat moment werd er duidelijk gebruik gemaakt van een duale licentie. Een deel van de source code werd beschikbaar gesteld volgens de Apache 2.0 licentie. Een ander deel van de code werd beschikbaar gesteld via de elastic licentie. De binaries waren beschikbaar via de elastic licentie.

Met de volgende release gaat het licentie model veranderen. De Apache 2.0 licentie wordt vervangen door Server Side Public License (SSPL). De SSPL licentie werd ontwikkeld door MongoDB, zij hebben middels deze licentie gepoogd het AWS moeilijker te maken een Mongo as a service dienst te leveren. Waar zit hem nu het probleem vanuit de community? Het is geen opensource licentie meer. Waarom SSPL geen open source licentie is staat hier duidelijk beschreven op de website van het Open Source Initiative . Het komt er op neer dat de source code wel beschikbaar blijft, maar niet volgens de gedachten van het Open Source initiatief (OSI). Een andere kijk of deze zaak wordt in deze post weer heel goed uitgelegd. Het open source initiative kan hooguit zeggen dat zij een licentie niet onderkennen, maar zij hebben niet het recht om te zeggen dat iets niet open source is. Het betoog in deze blog Righteous, Expedient, Wrong ~ OSI swings at Elastic, misses, and leaves a mess geeft je weer een andere kijk op de beweringen van OSI.

De reden om deze stap te zetten is feitelijk om het Amazon onmogelijk te maken de AWS Elasticsearch service beschikbaar te stellen. Elastic heeft met een aantal grote cloud providers als Google en Microsoft Azure als afspraken gemaakt over hun service om Elastic producten als managed service aan te bieden. Met AWS is dit niet gelukt. De gevolgen van deze licentie verandering zijn voor sommige bedrijven die voortbouwen op Elasticsearch groot. Dit wordt goed uitgelegd in de blog van Bonsai, een bedrijf dat al jaren Elasticsearch als een service aanbied. Voor veel ontwikkelaars is het nog veel meer een principe kwestie. Dit wordt goed verwoord door iemand als Drew DeVault in zijn blog Elasticsearch does not belong to Elastic. Hij noemt de wijziging van licentie een klap in het gezicht van de 1573 ontwikkelaars die hebben bijgedragen aan het project door code beschikbaar te stellen.

Het meningsverschil tussen Elastic en AWS

Toch nog even terug naar die licenties. In het begin was Elasticsearch volledig open source volgens de Apache 2.0 licentie. Eerder heeft Elastic al besloten om niet alle onderdelen gratis weg te geven, daarom hebben ze hun eigen licentie toegevoegd aan een deel van de code. Iets dat door een partij als AWS niet gewaardeerd werd, vooral omdat het hierdoor lastig werd om zelf de code te gebruiken. Dit was het moment waarop een nieuwe elasticsearch distributie ontstond onder de naam “Open Distro for Elasticsearch“. Dit is een distributie met alle code die gereleased is onder de Apache 2.0 licentie in combinatie met andere open source producten. Hier waren volgens Elastic ook al problemen mee. Deze distributie gebruikt een aantal opensource uitbreidingen. Elastic beweert dat de makers van één van deze componenten code van Elastic die niet onder de apache license vallen hebben gekopieerd. Lees hier meer over in Dear Searchguard users. Persoonlijk vind ik het niet echt chique, maar ik denk wel dat het past binnen het opensource gedacht goed. Niet het stelen van soure code uiteraard, maar het maken van een fork. Zoals Elastic zelf aan geeft, hebben ze geprobeerd via recht zaken AWS een andere richting te laten kiezen, maar dit is niet gelukt. Zie hiervoor het volgende artikel Why License Change AWS. Overigens staat Elastic niet alleen in hun strijd tegen AWS. Er zijn vele bedrijven met Open Source producten die klagen over de manier waarop AWS met hen om gaat. Er is in 2019 een uitgebreid artikel verschenen in de New York Times: How Amazon Wields Power in the TechnologyWorld. Hierin wordt beschreven hoe Amazon managed services maakt van Open Source projecten zonder dat de bedrijven die van de projecten proberen te leven er beter van worden. In het artikel noemen ze het strip-minen van open source projecten. Er worden voorbeelden gegeven over producten als MongoDB, Splunk, MariaDB, Redis. Ook in het artikel van ZDNet AWS hits back at open-source software critics word het gevoel van de open-source wereld over AWS nog eens toegelicht. 

Terug naar AWS en Elasticsearch. Amazon blijft natuurlijk ook niet stil zitten. Zij geven aan niets fout te hebben gedaan. Ze hebben patches en uitbreidingen beschikbaar gesteld aan Elasticsearch. Zij zeggen echter dat dit stelselmatig tot niets leidde. Vandaar ook dat ze Open Distro zijn begonnen, waarvan ze zelf overigens zeggen dat het nog geen fork is omdat volgens Open Source Upstream hebben gewerkt. Ofwel, ze hebben de regeltjes gevolgd zoals een goed Open Source gebruiker dient te doen. De reactie van AWS op de laatste licentie verandering is dat ze nu wel echt een fork gaan maken.

AWS is niet het enige bedrijf dat een probleem heeft met deze laatste licentie ontwikkelingen. Er zijn online genoeg artikelen te vinden. Een goed voorbeeld is de blog van Logz.io Open source Elasticsearch doubling down. Zij bieden een monitoring oplossing in de cloud gebaseerd op open source tools, zoals Elasticsearch en Kibana. Ook zij geven aan dat de licentie verandering als een klap in het gezicht voelt voor de open source community. Zij zijn met een aantal andere bedrijven bezig met het opstarten van een fork. Ja een van de bedrijven is AWS. Dit is inmiddels ook publiek gemaakt: Stepping up for a truly open source elasticsearch. Een ander bedrijf dat ook al een lange tijd Elasticsearch As A Service aanbied is Bonsai. Zij lichten ook toe wat hun opties zijn om deze dienst te blijven bieden in hun blog Elasticsearch license changes. Zo bekijken zij het pad om aan de SSPL licentie te voldoen. Op het eerste gezicht lijkt de tekst van de licentie zelf niet eenduidig genoeg om er volledig achter te kunnen staan. Dan kunnen ze nog kiezen uit een afspraak maken met Elastic of volledig te gaan voor een Open Source fork.

Impact op dagelijks werken met Elasticsearch

Naar mijn idee is dit allemaal een slechte zaak voor de gebruikers van Elasticsearch. Hoe mooi zou het zijn als meerdere bedrijven werken aan verbeteringen van het product Elasticsearch, volgens de Open Source gedachte. Ik begrijp heel goed dat Elastic aan hun producten willen verdienen, zij stoppen de meeste uren aan ontwikkelwerk in het product. Net zo goed als MongoDB dat een aantal jaren terug als een probleem zag, en daarom de nieuwe licentie ontwikkelden. Het zou mooi zijn als AWS een deel van hun verdiende geld terug zouden stoppen in het project. Uiteraard zeggen ze dat ze dit doen door verbeteringen aan te dragen. Maar als ze een soort licentie zouden moeten kopen, hebben we het dan nog over Open Source? Dat is precies wat ze bij het open source initiative ook zeggen. Prima als je als bedrijf via een bepaald business model geld wil verdienen, maar dan moet je niet zeggen dat je een open source product hebt. En dan moet je dat van te voren bedenken, niet als je veel voordeel hebt gehad van de open source community.

Wat is nu de impact voor jou als je gebruik wil maken van Elasticsearch in je project? Daar is geen eenduidig antwoord op te geven. Elastic heeft wel een Faq geschreven die je moet helpen. Als je al een vorm van een contract had met Elastic, zal er niets veranderen. Als je voorheen alleen al gebruik maakte van de binaries verandert er eigenlijk ook niets. Misschien moet je ook dan kijken of je voldoet aan de licentie. Wanneer je een service bouwt op basis van Elastic producten, hier uitbreidingen op maakt en deze als service aanbiedt in de cloud, dan zul je met Elastic moeten gaan praten en met hun afspraken te maken. Of je moet dus vertrouwen hebben in een fork en hier mee verder gaan. Wanneer je nu gebruik maakt van een service als AWS Elasticsearch, Bonsai, Logz.io, dan zul je de komende tijd goed op hun strategie moeten letten. De meeste bedrijven zullen een afspraak maken met Elastic of overstappen op een fork. Natuurlijk kun je ook overstappen naar een cloud provider die wel met Elastic in zee is gegaan, of gebruik maken van de cloud service van Elastic zelf. Wat overigens nog steeds een hele goede keuze is als je van al het goede van Elasticsearch wil genieten.

Als software engineer ben ik een groot voorstander van het open source model. Maar als zeer ervaren elasticsearch consultant heb ik ook veel begrip voor de positie van Elastic. Ook deel ik de mening van veel ontwikkelaars in de community, dat een bedrijf als Elastic genoeg geld moet kunnen verdienen aan hun eigen cloud service en aan hun support contracten. Ik blijf de ontwikkelingen op de voet volgen. Voorlopig zal ik veel projecten met Elasticsearch blijven bouwen, maar ook niet stoppen met de projecten die gebruik maken van AWS Elasticsearch. Overigens blijven we ook projecten doen met Apache Solr en kijken we met veel interesse naar tools als Vespa en Weaviate om te kijken of ze voor klanten een beter alternatief hebben.

Chronologische Referenties

27 Februari 2018 – https://www.elastic.co/blog/doubling-down-on-open
4 September 2019 – https://www.elastic.co/blog/dear-search-guard-users
14 Januari 2021 – https://www.elastic.co/blog/licensing-change
19 Januari 2021 – https://www.elastic.co/blog/why-license-change-AWS
19 Januari 2021 – https://www.elastic.co/blog/license-change-clarification
19 Januari 2021 – https://drewdevault.com/2021/01/19/Elasticsearch-does-not-belong-to-Elastic.html
20 Januari 2021 – https://logz.io/blog/open-source-elasticsearch-doubling-down/
21 Januari 2021 – https://aws.amazon.com/blogs/opensource/stepping-up-for-a-truly-open-source-elasticsearch/

Nog een paar referenties

https://www.elastic.co/pricing/faq/licensing
https://opendistro.github.io
https://opensource.org/node/1099