Einführung in die neuen Java Lizenzierungsmodelle

In der Java Welt passiert gerade sehr viel. So liefert Oracle seit Version 9 alle halben Jahre ein neues Major-Release der Standard Edition (Java SE) aus. Der Enterprise Standard Java EE wurde vor anderthalb Jahren als Eclipse EE4J an die Opensource-Gemeinde übergeben und hat als Jakarta EE eine interessante, wenn auch noch etwas ungewisse Zukunft vor sich. Diese kürzlichen Änderungen klingen soweit positiv, wäre die Verwendung des Oracle JDK ab Version 11 für den Produktionseinsatz nicht kostenpflichtig geworden. Ist das der Anfang vom Ende der aktuell meist genutzten Sprache (laut Tiobe-Index)? Immerhin durfte man Java doch bisher sowohl für die Entwicklung als auch die Produktion kostenfrei verwenden.

Schauen wir uns zunächst an, woher die Aufregung kommt. Seit den halbjährlichen Release Zyklen bietet Oracle nur noch für die alle drei Jahre erscheinenden Long Term Support Releases (11, 17, 23, …) langfristige Updates an, die aber für die Nutzung in Produktion immer kostenpflichtig sind. Selbst für das Oracle JDK 8 gab es im Januar 2019 das letzte freie Update. Möchte man es weiterhin nutzen und Aktualisierungen bzw. Sicherheits-Patches erhalten, muss man ebenfalls einen kostenpflichtigen Support-Vertrag abschließen.

Soll Java weiterhin kostenfrei eingesetzt werden, gibt es allerdings diverse Alternativen. So erhält die jeweils aktuelle Version des in Regie von Oracle entwickelten OpenJDK bis zur Veröffentlichung des nächsten Major-Releases zwei freie Updates (verteilt auf ein halbes Jahr). Übrigens ist das OpenJDK mittlerweile binärkompatibel zum Oracle JDK und damit auf jeden Fall ein vollwertiger Ersatz für alle, die weder Support benötigen, noch Geld für die Updates ausgeben wollen. Der Nachteil ist aber, dass man sein Produktionssystem regelmässig auf die nächste Major-Version aktualisieren muss, um wieder für das nächste halbe Jahr mit freien Updates versorgt zu werden. Das klingt einerseits anstrengend, die schnell wiederkehrenden Updates werden aber weniger schmerzhaft sein als die großen Versionssprünge in den früheren Jahren. Und damit bietet diese Vorgehensweise langfristig sogar Vorteile und spart teure Migrationsaufwände. Die Entwickler arbeiten zudem immer mit dem modernsten JDK und müssen nicht jahrelang auf neue Features warten.

Wird eine längere Unterstützung für eine bestimmte Java-Version bevorzugt, finden sich bei diversen anderen Anbietern ebenfalls alternative OpenJDK-Distributionen, die noch über mehrere Jahre hinweg Aktualisierungen und Sicherheits-Patches erhalten werden.

Aber was kostet denn das Oracle JDK, an das wir uns so gewöhnt haben, nun eigentlich. Aus Sicht derer, die bereits früher für den Oracle Support bezahlt haben, sind die Preise sogar gefallen. Nach eigenen Aussagen möchte Oracle die Einnahmen aus dem neuen Lizenzmodell nutzen, um die interne Weiterentwicklung von Java auf finanziell solide Füße zu stellen und damit unabhängig von anderen Geschäftszweigen im Hause Oracle zu machen. Man will also gar nicht Java als Cash-Cow melken. Allerdings hat das aktuelle Preismodell auch einige Haken. So zahlt man letztlich für physikalische Prozessoren, was bei virtuellen Servern zu einem ungünstigen Kosten-Nutzen-Faktor führen kann. So müssen für Oracle JDK Installationen auf 4 virtuellen Servern, die auf einem physikalischen Host mit 8 CPUs laufen, auch nur 8 Java Lizenzen bezahlt werden und nicht 4 x 8 = 32. Im Gegensatz dazu wird bei einer “kleinen” virtuelle Maschine, die auf einem Host mit 20 CPUs läuft, wiederum der Preis für 20 Lizenzen fällig. Diese etwas ungerechte Preisstaffelung könnten die großen Cloud Anbieter Amazon und Alibaba bewogen haben, mit Corretto bzw. Dragonwell freie Alternativen auf Basis des OpenJDK zu veröffentlichen. So ersparen sie ihren Kunden teure und schwer nachvollziehbare Lizenzkosten.

Die genauen Preise für das Oracle JDK findet man online. Sie unterscheiden sich bei der Client- (Java SE Desktop) und Servernutzung:

Java SE Desktop Subscription (Client-Installation)

  • 2,50 $ für 1-999 User pro Monat
  • 2,00 $ für 1000-2999 User pro Monat
  • 1,75 $ für 3000-9999 User pro Monat
  • 1,50 $ für 10000-19999 User pro Monat
  • 1,25 $ für 20000-49999 User pro Monat
  • individuelle Preisverhandlung bei mehr als 50000 Usern

Java SE Subscription (Server-Installation)

  • 25,00 $ pro Prozessor 1-99 pro Monat
  • 23,75 $ pro Prozessor 100-249 pro Monat
  • 22,50 $ pro Prozessor 250-499 pro Monat
  • 20,00 $ pro Prozessor 500-999 pro Monat
  • 17,50 $ pro Prozessor 1.000-2.999 pro Monat
  • 15,00 $ pro Prozessor 3.000-9.999 pro Monat
  • 12,50 $ pro Prozessor 10.000-19.999 pro Monat
  • individuelle Preisverhandlung bei mehr als 20.000 Prozessoren

Wenn man also aus Gewohnheit weiterhin lieber das Oracle JDK einsetzen möchte, muss man zukünftig Geld bezahlen. Das gilt ab sofort auch für das JDK 8, welches im Januar 2019 das letzte freie Update erhalten hat. Wie man den diversen Umfragen entnehmen kann, ist das JDK 8 aktuell mit Abstand die am meisten verwendete Java Version. Viele Entwickler stehen also jetzt genau vor der Frage, welche Version und welche Distribution sie zukünftig verwenden können. Vor einer Migration auf das aktuelle LTS-Release JDK 11 schrecken momentan viele zurück, weil die letzten Änderungen (unter anderem das Modulsystem und weggefallene JDK-Pakete wie JAXB) zunächst schwer einkalkulierbar erscheinen. Dass das aber gar nicht so aufwändig und ein valider Weg sein kann, zeigen wir in einem der folgenden Blog-Posts in dieser Reihe.

Laut den Lizenzbedingungen ist das Oracle JDK übrigens weiterhin “… only for the purpose of developing, testing, prototyping and demonstrating …” kostenlos einsetzbar. Nur der Betrieb kostet letztlich Geld. Aber beispielsweise Schulungen, die universitäre Ausbildung oder auch der interne Betrieb von Infrastruktursoftware (z. B. Jenkins, Jira) zählen schon zur kommerziellen Nutzung und sind dementsprechend in Zukunft bei Verwendung des Oracle JDK kostenpflichtig.

Welche Alternativen sich ergeben und wie mögliche Migrationsstrategien aussehen, werden wir in den nächsten Beiträgen dieser Reihe im Detail diskutieren. Ist man auf Support angewiesen, gibt es diverse kommerzielle Lösungen von Azul, IBM, RedHat (im Rahmen einer RHEL-Lizenz und auch JDK für Windows) und natürlich Oracle. Möchte man Java weiterhin frei nutzen, bietet sich die Verwendung von Oracles OpenJDK Distribution an, wobei man dann halbjährlich aktualisieren muss. Das OpenJDK wird aber auch von anderen Anbietern wie AdoptOpenJDK, Corretto, Dragonwell und SAP als Distribution zur Verfügung gestellt und über eine gewisse Zeit mit Updates versorgt.

Die Entwicklung der Sprache Java bleibt auch nach über 20 Jahren weiterhin spannend. Wir sollten die Steine, die uns Entwicklern aktuell in den Weg gelegt wurden, nutzen, darauf klettern und so in eine interessante Zukunft mit einigen Herausforderungen schauen. Schön wäre, wenn sich die diversen Anbieter alternativer OpenJDK Distributionen noch stärker in die Weiterentwicklung des OpenJDK einbringen und z. B. Verbesserungen und aktuelle Security Patches in das OpenJDK Projekt zurückportieren. Wenn Oracle dann neben dem sowieso schon als Opensource veröffentlichten OpenJDK auch das Test Compatibility Kit (TCK) frei verfügbar macht, können die anderen Anbieter ihre Distributionen einfacher gegen die Spezifikation von Java prüfen. Die Sprache und das Ökosystem Java könnten dann endgültig zu einem unabhängigen Industriestandard werden. Warten wir aber zunächst ab, wie sich das jetzige Modell etabliert und schauen gespannt auf die weitere Entwicklung.

Short URL for this post: https://wp.me/p4nxik-3po
This entry was posted in Politics and tagged , , , , , , , . Bookmark the permalink.

2 Responses to Einführung in die neuen Java Lizenzierungsmodelle

  1. Pingback: Java auch in Zukunft kostenlos! – Ein Überblick über die Alternativen | techscouting through the java news

  2. Pingback: AdoptOpenJDK – kostenlos und langfristig | techscouting through the java news

Leave a Reply