Letzte Woche gab Elasticsearch bekannt, sein Lizenzmodell für alle zukünfigen Versionen der beiden bekannten und beliebten Produkte Elasticsearch und Kibana zu ändern. Bisher wurden für beide Projekte die bekannte Open Source Lizenz "Apache License 2.0" verwendet.

In Zukunft stehen zwei Lizenzen zur Auswahl - entweder die SSPL oder die [Elastic License]. Das besondere dabei ist, dass die SSPL von der Open Source Initiative - OSI - nicht als Open Source Lizenz anerkannt wird. Entsprechend hoch gingen die Wogen in der Open Source Community, ist Elasticsearch doch eine wesentliche Infrastrukturkomponenten, die in vielen Open Source Anwendungen sowie in kommerziell entwickelten Anwendungen zum Einsatz kommt. Auch wir in der openFORCE verwenden Elasticsearch in unseren Software Lösungen.

Grund genug also, sowohl über die Entstehungsgeschichte und die Hintergründe als auch die Auswirkungen der Lizenzänderung auf unsere Produkt- und Entwicklungsstrategie zu beleuchten.

Disclaimer: Ich bin kein Jurist, arbeite aber seit mehr als 25 Jahren im IT Bereich mit Open Source Software und bin daher mit der Materie vertraut.

TLDR;

Ungeduldige Leser können auch gerne den größten Teil des Beitrags überspringen und gleich zum Ende scrollen :-)

Elasticsearch und Kibana - was ist das eigentlich?

Elasticsearch ist eine hochskalierbare Datenbank, spezialisiert auf die extrem schnelle Suche innerhalb von strukturierten und unstrukturierten Dokumenten. Für Laien - eine Suchmaschine die man für die eigene Softwareentwicklung verwenden kann. Die Experten unter den Lesern mögen mir diese sehr stark vereinfachte Darstellung verzeihen.

Kibana ist ein Tool, mit dessen Hilfe sich Suchergebnisse sehr einfach in Form von Dashboards zu wertvollen Informationen aufwerten und übersichtlich darstellen lassen.

In der Open Source Welt gibt es zwar sehr gute Alternativen, jedoch ist gerade Elasticsearch mit seinem Funktionsumfang, der Performance und der recht einfachen Verwendbarkeit für mich herausstechend und den meisten Alternativen weit voraus.

Vor allem aber sind die beiden Produkte Bestandteile des ELK Stacks (Elasticsearch, Logstash und Kibana). In vielen Organisationen ist dieser Stack die Grundlage für das zentrale Logfile Management bis hin zum Monitoring und Tracing von verteilten Anwendungen.

Entsprechend populär sind diese Produkte - übrigens nicht nur in der "Java Welt" sondern weit darüber hinaus. Auch wir bei openFORCE verwenden den ELK Stack (zumindest in Teilen) für genau diesen Zweck.

Die Bombe - Elasticsearch ändert das Lizenzmodell

In seinem Blog Beitrag vom 14. Jänner 2021 mit dem Titel Doubling down on open, Part II kündigt Shay Banon die Lizenzänderungen von zukünftigen Versionen von Elasticsearch und Kibana an. Shay Banon ist ein Urgestein der Open Source Welt. Ebenso ist er CEO von Elasticsearch (des Unternehmens) und auch der ursprüngliche Entwickler von Elasticsearch (des Produkts) und hat schon davor Open Source Software entwickelt (z.B. COMPASS). Mit Elasticsearch gelang ihm der große Wurf.

Die zukünftigen Versionen der beiden Produkte können mittels zweier Lizenzen verwendet werden. Einerseits der Server Side Public License (SSPL) und andererseits der Elastic License, einer proprietären Lizenz. Grundsätzlich bleibt der Source Code von Elasticsearch auch nach der Änderung des Lizenzmodells verfügbar. Das Projekt wird ganz normal im Github Projekt weiter entwickelt. Wozu dann also überhaupt diese Änderungen?

Gewitter in der Cloud

Auslöser für die Änderung ist ein Disput zwischen Elasticsearch und AWS. AWS hat 2015 einen Service integriert und diesen "Amazon Elasticsearch Service" genannt. Amazon hat also Elasticsearch in seine Webservices integriert und bietet diesen Service in seiner Plattform als Managed Service an. Soweit so gut, das machen alle anderen großen Cloudanbieter wie Google, Microsoft, Alibaba und andere auch. Allerdings hat sich Elasticsearch den Namen als Trademark registrieren lassen und unterhält mit den anderen Cloudprovidern aktive Geschäftsbeziehungen. Sprich, die anderen Cloudprovider teilen sich den Kuchen mit Elasticsearch.

AWS verwendet in seiner Produktbezeichnung demnach einen geschützten Markennamen und suggeriert eine Geschäftsbeziehung mit Elasticsearch, die allerdings nach Angaben von Elasticsearch nicht existiert. Aufgrund dessen wurde von Elasticsearch eine Klage gegen Amazon eingereicht. Man sieht, das Verhältnis zwischen den beiden Unternehmen ist nicht gerade friktionsfrei.

Die Änderung des Lizenzmodells bedeutet einen Angriff auf das Geschäftsgebaren von Amazon, denn die SSPL verpflichtet die Anbieter alle Softwareteile zur Integration in die eigenen Services zu veröffentlichen (analog zur GPL). Das ist für die Anbieter von Managed Services ein rotes Tuch, da sie Einblicke in die internen Automatisierungsprozesse preisgeben müssten. Zu diesem Zweck muss ein Anbieter solcher Managed Services zukünftig eine Lizenz von Elasticsearch erwerben.

Für alle Entwickler, Anwender und auch Infrastruktur Service Provider die diesen Beitrag lesen die gute Nachricht - für uns ändert sich vorerst nichts! Einen guten Überblick dazu gibt das Lizenz FAQ von Elasticsearch - License Change Clarification

Woher kommt die neue Lizenz SSPL?

Zunächst einmal ist die Lizenz nicht wirklich neu. Eine andere Größe in der Open Source Welt hat ähnliche Erfahrungen mit Amazon gemacht - MongoDB. MongoDB ist ähnlich wie Elasticsearch ein Dokumentendatenbank, die darauf ausgelegt ist, auf vielen Rechenknoten verteilt enorme Datenmengen zu verwalten. Und auch MongoDB fand sich eines Tages auf der Angebotsseite von AWS - ohne dabei an den Erträgen von AWS beteiligt zu werden. Dieser Disput führte gleichfalls zu einer Lizenzänderung - die Server Side Public License (SSPL) wurde formuliert und fortan für MongoDB verwendet. Das ganze fand im Jahr 2018 statt.

Elasticsearch hat diese Lizenz also nicht erfunden sondern sich einfach für deren Verwendung entschieden.

Obwohl der Source Code verfügbar ist, wird die SSPL nicht von der Open Source Initiative als Open Source Lizenz anerkannt. Die Begründung dazu findet sich im Beitrag The SSPL is Not an Open Source License. Die OSI sieht Punkt 6 in den Anforderungen an Open Source Lizenzen verletzt. Das ist bei objektiver Betrachtungsweise bestätigt. Jedoch kann ich dafür keine Gewähr abgeben - ich bin kein Jurist. Interessant finde ich übrigens den harschen Ton den die OSI gegenüber dem Blogeitrag von Elasticsearch anschlägt. Zusätzlich mehren sich die kritischen Stimmen zur Lizenzänderung.

Wenn sich zwei streiten...

...freut sich der Dritte, so ein altes Sprichwort. In diesem Fall bin ich dabei allerdings nicht ganz so sicher. Amazon hat am 21. Jänner 2021 auf die Lizenzänderungen reagiert und im Beitrag Stepping up for a truly open source Elasticsearch angekündigt einen eigenen Fork - einen parallenen Entwicklungszweig - von Elasticsearch und Kibana zu erstellen und diesen auch aktiv zu entwickeln.

Hier zeigt sich die große Stärke von Open Source. Durch die Verfügbarkeit des Source Codes zusammen mit den entsprechenden Verwendungsrechten sind solche Forks problemlos möglich. Allerdings birgt diese Tatsache Risiken. Wenn sich eine Community in zwei (oder mehrere) spaltet, dann schwächt das zwangsläufig die Projekte weil weniger Power in die einzelnen Zweige fließt. Allerdings gibt es auch umgekehrte Beispiele, bei denen Forks von Open Source Projekten zu einer enomren Verbesserung eines Zweiges geführt haben. Zur Verdeutlichung ein paar prominente Beispiele:

  • NextCloud vs. OwnCloud
  • OpenOffice vs. LibreOffice
  • XOrg vs. XFree86
  • MariaDB vs. MySQL

Ein Fork ist also grundsätlich nichts Schlechtes, jedoch kommt ein Projekt damit in eine Unruhephase. Die Community ist verunsichert. Es ist nicht klar, welcher Teil mehr Zuspruch erfahren wird oder ob sich beide Teile in komplett unterschiedliche Produkte entwickeln (wie zum Beispiel bei Camunda und Activity, zwei Produkte die heute nur noch das Thema "Business Automation" teilen und sich schon 2013 "getrennt" haben.)

Neben der allgemeinen Verunsicherung bleibt ein weiterer Aspekt, der berücksichtigt werden sollte - Vertrauen! Und hier geht Elasticsearch ein hohes Risiko ein. Vertrauen in einer Community aufzubauen ist ein langwieriger Prozess. Umgekehrt ist es sehr leicht verspielt und die Lizenzänderung hat die Elasticsearch Community verunsichert. Durch die Lizenzbedingungen ist die Software nicht mehr komplett frei im Sinne des Verwendungszwecks. Und dieses Mal ist es Amazon, dem dadurch die Verwendung von Elasticsearch als Managed Service in seiner AWS Cloud untersagt werden soll. Die Community befürchtet, dass zukünftig auch andere Nutzungsformen eingeschränkt werden könnten.

Fazit & Handlungsempfehlungen

Ich bin ein großer Anhänger der Open Source Bewegung seitdem ich The Cathedral and the Bazaar in den späten 1990ern gelesen habe. Ich bin aber auch Pragmatiker und verstehe, dass Unternehmen - gerade im Open Source Bereich - ein Geschäftsmodell entwickeln müssen, von dem sie leben können. Ich maße mir daher nicht an, die Schritte aller Beteiligten zu beurteilen. Dieser Blogpost soll dabei helfen, sich einen objektiven Überblick über die Ereignisse rund um die Lizenzänderungen zu verschaffen.

Worüber ich aber berichten kann ist, was wir als Wiener Software Unternehmen in dieser Situation tun werden. Und das ist vor erst - gar nichts!

Die aktuellen Lizenzänderungen betreffen uns nicht. Wir bieten Elasticsearch nicht als Managed Service in der Cloud an.

Keiner unserer Kunden ist von der Lizenzänderung betroffen!

Wir werden Elasticsearch weiterhin immer dann verwenden, wenn wir in unseren IT Lösungen folgende Anforderungen lösen müssen:

  • Große Datenmengen durchsuchen
  • Komplexe Suchabfragen (Fragmented Search) umsetzen
  • Logdaten zentralisieren

Dabei ist es nicht relevant, wo die Software läuft. Auch in der Cloud kann Elasticsearch einfach weiter wie bisher verwendet werden.

Wir haben allerdings auch Kunden, die eine Liste von Open Source Lizenzen führen, die in der Softwareentwicklung uneingeschränkt verwendet werden dürfen. Hier müssen wir aufpassen, denn durch die Ablehnung der SSPL Lizenz durch die OSI werden wir zumindest auf die Änderung hinweisen. Dabei ist zu beachten, dass die Schnittstellen zu Elasticsearch weiterhin in der "Apache License 2.0" zur Verfügung stehen. Die Lizenzänderungen betreffen ausschließlich das Elasticsearch Produkt selbst.

Ich werde die Entwicklungen rund um Elasticsearch sowie den Fork von AWS im Auge behalten und - sofern sich relevante neue Änderungen ergeben - wieder in einem Blogbeitrag berichten.

In diesem Sinne: Ruhe bewahren und abwarten. Es ist zu erwarten, dass von allen Beteiligten noch reichlich Stellungnahmen zu lesen sein werden.

Für alle, die sich selbst durch alle Blogposts und Lizenzmodelle durcharbeiten wollen, habe ich die Quellen meines Beitrags hier noch einmal zusammengefasst zum schnellen Navigieren: