Quantcast
Channel: oracle – techscouting through the java news
Viewing all articles
Browse latest Browse all 16

Java auch in Zukunft kostenlos! – Ein Überblick über die Alternativen

$
0
0

Im ersten Blog-Post dieser Serie über die neuen Lizenzmodelle von Java haben wir bereits gesehen, dass das JDK von Oracle nun zumindest beim Betrieb in der Produktion mit Kosten verbunden ist. Lediglich für Entwicklung und Test darf das OracleJDK weiterhin kostenlos verwendet werden. In diesem Blog-Post möchten wir daher einen Überblick über die möglichen Alternativen geben und klären, wann welche Alternative die richtige ist. Unser Ausgangsszenario:

Du betreibst bisher eine Java-Anwendung mit dem JDK von Oracle und hast keinen Supportvertrag. Du benötigst auch zukünftig keinen Support. Sicherheitsupdates möchtest du selbstverständlich dennoch haben. Vor allem aber soll der Betrieb von Java weiterhin kostenlos bleiben.

Für diesen Fall kommt das Oracle JDK künftig nicht mehr in Frage, da dieser beim Einsatz in Produktion, wie bereits erwähnt, immer kostenpflichtig ist. Es stehen jedoch mehrere Alternativen zur Auswahl:

Alternative 1: Schnelle Java-Updates mit OpenJDK

OpenJDK ist die quelloffene Referenzimplementierung der Java Platform, Standard Edition (Java SE). Das OpenJDK-Projekt selbst beinhaltet allerdings nur den Quellcode der Java Plattform und keine ausführbaren Binärartefakte für verschiedene Zielumgebungen. Da das Zusammenbauen eines JDKs für eine konkrete Laufzeitumgebung mühevoll ist, greifen die meisten Entwickler auf ein fertig zusammengepacktes JDK eines Distributors, eine sogenannte JDK-Distribution, zurück. Hier kommt nun zunächst doch wieder Oracle ins Spiel.

Oracle stellt für jede Java Version ein halbes Jahr lang kostenlos Binary-Releases der OpenJDK Quellen zur Verfügung. Diese nennen sich etwas verwirrend “Oracle’s OpenJDK JDK binaries”. Setzt du auf diese Distribution, hast du den Nachteil, dass Sicherheitspatches und Bugfixes für die eingesetzte Java Version lediglich ein halbes Jahr zur Verfügung gestellt werden. Im Klartext bedeutet dies, dass deine Produktionsumgebung alle sechs Monate auf eine neue Java-Version umgezogen werden muss. Falls du länger mit Updates versorgt werden möchtest, musst du den kostenpflichtigen Support des Oracle JDKs in Anspruch nehmen oder dich nach einer anderen Alternative umsehen. Die verschiedenen JDK-Distributionen sind binär kompatibel, was über das sog. Technology Compatibility Kit (TCK) sichergestellt wird. Ein Wechsel des JDKs sollte daher zumindest theoretisch problemlos möglich sein.

Die verschiedenen Namen und Begriffe können anfänglich etwas verwirrend sein, daher hier nochmal in einer Übersicht bevor wir zu den Alternativen zu Oracle kommen:

Java SE– die Sprachspezifikation
– beinhaltet keinen Quellcode
OpenJDK – Quelloffene Implementierung der Java Sprache
– beinhaltet Quellcode
– beinhaltet keine binär ausführbaren Artefakte
JDK binaries
/ distribution
– Plattformspezifische Binärartefakte
– entstanden z. B. aus den OpenJDK-Quellen
“die zusammengebauten Quellen”
Long Term Support
(LTS)
Eigenschaft einer Distribution:
“wird längere Zeit mit Updates versorgt”
Oracle JDK– ein von Oracle gebautes JDK mit LTS
– basierend auf den OpenJDK-Quellen
– zusätzl. Oracle-Bugfixes und -Erweiterungen
kostenpflichtig in der Produktion
Oracle’s OpenJDK
JDK binaries
– von Oracle gebautes JDK ohne LTS
– basiert auf den OpenJDK-Quellen
– kein Support
– Updates nur für 6 Monate

Alternative 2: AdoptOpenJDK – die wahre Alternative

Für alle, die Java weiterhin kostenlos betreiben und dennoch nicht alle sechs Monate die Java Version wechseln möchten, war bisher noch nicht das Richtige dabei. Schauen wir daher weiter nach einer kostenlosen Alternativen mit LTS.

AdoptOpenJDK ist eine JDK-Distribution, die von zahlreichen Sponsoren wie z.B. Azul Systems, GoDaddy, IBM oder Microsoft Azure kostenlos auch für Produktionsumgebungen zur Verfügung gestellt wird. Die meisten dieser Sponsoren bieten vergleichbar zu Oracle eine eigene JDK-Distribution mit Support-Vertrag an. Stellt sich also die Frage, warum sie dennoch an einem kostenlosen Angebot mitwirken. Die Antwort darauf ist denkbar einfach: Nahezu alle JDK-Distributionen basieren auf der Quellcode-Basis des OpenJDKs. Fehler, die darin enthalten sind, finden sich somit in quasi allen JDK-Distributionen wieder. Es wäre schlicht sehr ineffizient, wenn jeder Hersteller diese Fehler eigenständig fixen müsste, und daher haben sich diese Hersteller als Sponsoren des AdoptOpenJDKs zusammengeschlossen, um von den Bugfixes der jeweils anderen zu profitieren. Oracle geht hier bis jetzt bewusst einen anderen Weg.

Und nun der wichtigste Vorteil von AdoptOpenJDK gegenüber der OpenJDK-Distribution von Oracle:

Die Roadmap von AdoptOpenJDK verspricht dreimonatige Releases zu allen Java-Long-Term-Support (LTS) Versionen über einen Zeitraum von mindestens vier Jahren. Java 11 wird laut diesem Plan beispielsweise bis mindestens September 2022 mit Updates versorgt.

tl;dr 
Wer Java weiterhin kostenlos ohne spezielle Support-Anforderungen nutzen möchte, sollte sich aktuell AdoptOpenJDK anschauen.

Alternative 3: Amazon Corretto – the rising star?

Aber Moment mal. James Gosling höchstpersönlich hat doch Ende 2018 auf der Devoxx Konferenz eine neue JDK-Distribution von Amazon mit dem Namen Corretto angekündigt. Was ist denn damit?

Amazon Corretto bezeichnet sich selbst als “kostenlose, plattformübergreifende, produktionsbereite Distribution des Open Java Development Kit (OpenJDK)”. Amazon verspricht einen Support von Corretto 8 (vgl. OpenJDK 8) bis Juni 2023 und von Corretto 11 (vgl. OpenJDK 11) bis August 2024. Corretto 8 ist Anfang 2019 erschienen und kann mittlerweile heruntergeladen werden. Corretto 11 soll in der ersten Hälfte 2019 folgen. Amazon betreibt Corretto nach eigenen Angabe “intern mit Tausenden von Produktionsservices”.

Bis auf den zunächst offensichtlichen Nachteil, dass Corretto 11 bisher (Stand März 2019) nur in einer Vorschauversion verfügbar ist, hört sich das zunächst sehr gut an. Ein JDK, das für zahlreiche Plattformen verfügbar ist, quartalsweise mit Updates versorgt wird und das man kostenlos auch in Produktion einsetzen darf. Aber genau das ist AdoptOpenJDK doch auch. Warum kam Amazon also auf die Idee, eine eigene JDK-Distribution zu veröffentlichen? Die Antwort hierauf gab Yishai Galatzer ebenfalls auf der Devoxx 2018. Hier die Kurzfassung der Begründung, die sicherlich auch auf andere JDK-Distributoren in ähnlicher Weise zutreffend ist:

Corretto basiert auf den Quellen des OpenJDK. Amazon möchte Fehler, die in OpenJDK auftreten, möglichst schnell beseitigen, um ihren Kunden so früh wie möglich eine stabilisierte Plattform zur Verfügung stellen zu können. Alle Bugfixes, die von Amazon entwickelt werden, werden dem OpenJDK-Projekt als Contributions zur Verfügung gestellt. Allerdings kann es unter Umständen mehrere Monate dauern, bis eine solche Contribution im OpenJDK angenommen wird. Amazon schafft sich mit Corretto die Möglichkeit, bei auftretenden Problemen schneller zu reagieren. Es ist dennoch erklärtes Ziel die Abweichungen zum OpenJDK-Projekt so gering wie möglich zu halten.

Auch im Gegensatz zu AdoptOpenJDK könnte sich bei Corretto ein Geschwindigkeitsvorteil bei der Update-Regelmäßigkeit ergeben, da sich nicht zunächst zahlreiche Parteien auf eine gemeinsame Richtung einigen müssen. Ein weiterer Vorteil von Corretto: im Gegensatz zu AdoptOpenJDK wird Corretto bereits jetzt mit dem TCK geprüft. Welche Distribution in der Praxis die Nase vorne haben wird, wird erst die Zukunft zeigen. Dazu ist Corretto aktuell noch zu frisch auf dem Markt.

Weitere Alternativen

Neben den bereits beschriebenen Distributoren Oracle, AdoptOpenJDK und Amazon gibt es noch viele weitere, die alle aus ähnlichen Gründen wie Amazon auf eigene Distributionen setzen. Neuerdings bietet z. B. auch der chinesische Konzern Abibaba unter dem Namen “Dragonwell” eine Distribution eines JDK8 an. Hier eine Liste der wichtigsten Distributoren und eine kurze Übersicht deren Vorteile:

Azul – https://www.azul.com

IBM – https://www.ibm.com/developerworks/java/jdk

RedHat – https://developers.redhat.com/products/openjdk/overview

SapMachine – https://sap.github.io/SapMachine

Fazit

Wer heute eine kostenlose Alternative zum Oracle JDK mit Long Term Support sucht und keine speziellen Anforderungen an Support mitbringt, ist mit AdoptOpenJDK erst mal gut beraten. Wer allerdings spezielle Anforderungen beispielsweise an Stabilität oder in Bezug auf Performance hat, sollte sich die alternativen Distributoren genauer anschauen. Mit Amazon Corretto drängt gerade ein neuer Vertreter mit prominenten Unterstützern wie James Gosling in den Markt, von dem man in Zukunft im Java-Umfeld sicherlich noch einiges hören wird.


Viewing all articles
Browse latest Browse all 16

Latest Images

Trending Articles



Latest Images