Oracles Antworten auf die LTS-Frage

So funktioniert der JDK-Support von Oracle

Wolfgang Weigend

© Shutterstock | Maskim Kabakou

Das Thema Java-Release-Zyklus wird vielerorts kontrovers diskutiert. Seit Oracle mit Java 10 von Feature getrieben auf zeitbasiert umgestiegen ist und es keine freien LTS-Versionen mehr geben soll, häufen sich die Fragezeichen in den Köpfen der Entwickler. Im Artikel „Wie läuft das mit dem JDK-Support jetzt gleich noch mal?“ haben wir auf JAXenter bereits einige Antworten diskutiert. In diesem Beitrag bringt Wolfgang Weigend, Master Principal Sales Consultant bei Oracle, weiteres Licht ins Dunkel.

Wartung älterer Oracle JDK-Versionen

Durch die Einführung kürzerer Java-Release-Zyklen, mittels Time-Based-Release-Versionierung im JDK-Enhancement-Vorschlag JEP 322, werden zwei JDK-Versionen pro Jahr von Oracle veröffentlicht. Der Rhythmus gibt vor, dass nach dem Oracle JDK 8, alle drei Jahre ein weiteres Oracle JDK als Long-Term-Support-Release (LTS) folgt, für das die Benutzer den Oracle Java SE Advanced Support erwerben können.

Das Oracle JDK 8 ist ein LTS-Release, und nach Anwenderangaben befinden sich damit ca. 85 Prozent der Java-Applikationen im Produktivbetrieb. Die öffentliche Verfügbarkeit von Java-Sicherheitsupdates für das Oracle JDK 8 im Unternehmenseinsatz ist bis zum Januar 2019 vorgesehen, siehe Oracle Java SE Support Roadmap mit End of Public Updates für Oracle JDK 8. Sollte der Umstieg vom Oracle JDK 8 auf eine höhere Java-Version bis zu diesem Zeitpunkt nicht möglich sein, wird empfohlen, den Oracle Java SE Advanced Support in Betracht zu ziehen, damit weiterhin Java Sicherheits-Updates für das Oracle JDK 8 eingespielt werden können.

Oracle Java SE Advanced Support

JDK Feature Release und Critical Patch Update (CPU) (Quelle: Oracle)

Der Java SE Advanced Support erstreckt sich über drei Phasen: Premier Support, Extended Support und Sustaining Support. Für das Oracle JDK 8 wird der Premier Support bis März 2022 angeboten, der Extended Support ist bis März 2025 erhältlich (Tabelle 1).

Der Premier Support läuft fünf Jahre ab dem Erscheinungsdatum des JDK LTS-Release und bietet neben den beschriebenen Eigenschaften in den Oracle-Lifetime-Support-Richtlinien auch den Umgang mit Sicherheits-Alerts und die Erstellung von Critical Patch Updates. Gleiches gilt für den Extended Support, jedoch ohne weitere Release-Zertifizierung für neue Produkte von Drittherstellern und Oracle. Darüber hinaus kann der Sustaining Support für unbestimmte Zeit ausgewählt werden. Nach ca. 10 Jahren verringert sich die Fehleranzahl drastisch und damit auch die Wahrscheinlichkeit zur Erstellung neuer Critical-Patch-Updates in der Sustaining Support-Phase.

Der Oracle Java SE Advanced Support kann nur für ein LTS-Release abgeschlossen werden. Dabei ist zu beachten, dass man für ein Non-LTS-Release, wie JDK 10, keinen Java SE Advanced Support abschließen kann. Neben der grundsätzlichen Absicherung mit Java SE Advanced Support ist der Zugang zu künftigen Java-Critical-Patch-Updates für ältere Java-Versionen das Hauptargument, um bestehende Java-Anwendungen, die aufgrund von technischen Abhängigkeiten noch mit dem JDK 8 betrieben werden müssen, gegen mögliche Sicherheitsprobleme zu schützen. Der Oracle Java SE Advanced Support wird separat für die Clients gemäß der Metrik „Named-User-Plus“ (NUP) und für die Server nach Anzahl der Prozessoren lizenziert. Die Beschaffung des Oracle Java SE Advanced Support kann online mit der Auswahlreihenfolge: Software, Fusion Middleware, Java SE Advanced über den Oracle Store erfolgen oder durch direkte Kontaktaufnahme zum deutschen Java-Vertrieb.

Tabelle 1: Oracle Java SE Support Roadmap

JDK und OpenJDK

Oracle Java soll komplett Open Source werden, sodass es mit der JDK-Version 11 keine Unterschiede zwischen dem Oracle JDK und OpenJDK mehr geben wird. Durch die Gleichstellung des Oracle JDK mit dem OpenJDK wird der kontinuierliche Halbjahresrhythmus mit dem OpenJDK fortgeführt, bis ein weiteres Oracle JDK als LTS-Release erscheint. Die öffentliche Verfügbarkeit von Java Critical Patch Updates ist auf sechs Monate festgelegt und bedeutet für die Anwender ohne Java SE Advanced Support, dass sie nach diesen sechs Monaten das nächste OpenJDK verwenden sollten, um kontinuierliche Java-Sicherheits-Patches zu erhalten.

Mit dem Technologietransfer aus dem Oracle JDK sind die Sicherheits- und Performance-Optimierungen als Open-Source-Implentierungen in das OpenJDK geflossen. Damit wird das OpenJDK gestärkt, und es ist wünschenswert, dass sich mehr Entwickler als OpenJDK-Kontributoren beteiligen, um den Java-Code stetig zu verbessern. Für das Oracle Support-Engineering-Team ist es im Support-Fall wichtig, die Java-Software-Bereiche exakt einzugrenzen, und das gelingt nur mit dem Oracle JDK LTS in Kombination mit dem Oracle Java SE Advanced Support.

Update vom 22. August 2018

Die Nutzung vom Oracle JDK 11 in Produktivumgebungen ist nur für Kunden mit dem Java SE Subscription Support vorgesehen. Ohne Java SE Subscription darf das Oracle JDK nur für die Entwicklung, Testing, Prototyping oder für Demonstrationszwecke verwendet werden. Im Gegensatz dazu, kann das äquivalente Oracle OpenJDK in allen Umgebungen ohne Oracle Java SE Subscription eingesetzt werden. Das OpenJDK mit der GPL- & CPE-Lizenz, gebündelt mit eigener Anwendungslogik, kann frei verteilt werden und damit entfällt der zweckgebundene Einsatz von Java beim OpenJDK.

Fazit

Die Erfahrungen beim Umstieg von JDK 7 nach JDK 8 haben gezeigt, dass die Variante „Just run“ praktisch nutzbar ist. Das heißt, existierende Java-Anwendungen sind dank Abwärtskompatibilität ohne Modifikation mit dem höheren Java-Release ablauffähig. Dennoch muss man in seltenen Fällen die Möglichkeit einer Unverträglichkeit in Betracht ziehen, wenn auch nur in Randbereichen. Mit der Variante „Neukompilieren und Quell-Code anpassen“ wird der alte Java-Code immer auf dem aktuellen Stand der Technik gehalten und durch die gängigen Entwicklungsumgebungen bestmöglich unterstützt. Der Oracle JDK Migration Guide bietet Umstiegshilfe bei der Migration vom JDK 8 auf JDK 10.

Nach verschiedenen Befragungen bei Unternehmen ist ein Trend zu erkennen, bei dem nahezu 90 Prozent den direkten Umstieg von JDK 8 (LTS) auf JDK 11 (LTS) für Produktivsysteme anstreben. Lediglich drei Prozent verblieben beim JDK 7 und den darunter liegenden JDK-Versionen. Auf das vorwärts gerichtete Deployment des JDK 9 entfielen fünf Prozent, und immerhin zwei Prozent verwenden das aktuelle JDK 10. Daraus läßt sich eine pragmatische Vorgehensweise ableiten, bei dem die Unternehmen zweigleisig fahren: Zu 90 Prozent setzten sie auf ein LTS-Release des JDKs, doch gleichzeitig beschäftigen sich die Entwickler mit dem Einsatz von JDK 9 und JDK 10, den Zwischen-Releases, die ohne Übergangszeiten alle sechs Monate erscheinen.

Man sollte sich die Frage stellen, ob die Produktivumgebungen ohne eine Support-Absicherung den künftigen Sicherheitsanforderungen standhalten können. Es ist ratsam, die betroffenen JDK-8-Anwendungen mit dem Java SE Advanced Support auszustatten, um weitere Java Critical Patch Updates im Produlktivbetrieb so lange einspielen zu können, bis ein Umstieg auf das JDK 10 oder das JDK 11 (LTS) vollzogen werden kann.

Wie geht’s weiter?
Die Fragen im Zusammenhang mit den künftigen Java-LTS-Versionen werden sicherlich vorerst nicht abschließend geklärt werden können. Wir bleiben weiter am Ball und versuchen,  Orientierungshilfe zur Verfügung stellen. Aus diesem Grund werden wir neben Oracle auch Azul Systems und das Projekt AdoptOpenJDK befragen.
Geschrieben von
Wolfgang Weigend
Wolfgang Weigend
Wolfgang Weigend arbeitet als Sen. Leitender Systemberater bei der Oracle Deutschland B.V. & Co. KG. Er beschäftigt sich mit Java-Technologie und -Architektur für unternehmensweite Anwendungsentwicklung.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: