C2019D01: Uitfaseren Java 1.8

Aankondigingen

Beste klant / collega,

(Is dit bericht niet goed leesbaar? Bekijk dan hier de online versie.)

in de NPO hosting omgeving draaien een aantal belangrijke java gebaseerde applicaties, zoals Elasticsearch, Solr en Confluence. Ook POMS is voor een groot deel op java gebaseerd. Om een java programma te draaien is een Java Virtual Machine (JVM) nodig en die is weer onderdeel van een Java Development Kit (JDK) of Java Runtime Environment (JRE). Na de overname van Sun Microsystems door Oracle is ook Java in handen van Oracle gekomen en zijn zij lange tijd de belangrijkste maker van JVM's geweest. Tot recent was dat een vrij abstract verhaal, maar nu de huidige java versie (8) bijna end-of-life is en Oracle de licentie van de nieuwe versie (11) ingrijpend gewijzigd heeft betekent dat, dat we in de toekomst geen Oracle versie van Java meer kunnen gebruiken. Gelukkig is Java ook als Open Source product beschikbaar en hebben we dus alternatieven.

Er spelen nu dus twee dingen tegelijkertijd:

  1. Java 8 is vanaf januari 2019 end-of-life. De opvolger is JDK 11.
  2. Vanaf januari kunnen we vanwege licentie kwesties geen Oracle JRE of JDK meer gebruiken. We stappen over naar een alternatief.

Omdat de overstap van Java 8 naar 11 tamelijk groot is verwachten we niet dat die in een paar weken gemaakt kan zijn en dus zijn we op zoek gegaan naar een alternatief. Dit menen we gevonden te hebben in de vorm van AdoptOpenJDK, wat een drop-in replacement voor de Oracle java 1.8 versie levert en na januari 2019 nog wel gesupport wordt. Dit zou redelijk eenvoudig moeten zijn omdat ze beiden gebaseerd zijn op dezelfde onderliggende java versie (8 of 1.8 in de Oracle nummering))

We willen vrij snel de Oracle versie vervangen door AdoptOpenJDK(8). Dat geeft tijd om later in 2019 Java 8 te vervangen door JDK 11, in de vorm van AdoptOpenJDK(11). Bepaalde diensten zoals ElasticSearch kunnen nu al met JDK 11 werken. Voor andere zaken is wellicht een upgrade van de omliggende software. Het kan ook nodig zijn om de applicatie te (laten) updaten om samen te werken met JDK 11.

Dat betekent dat een deel van het werk (migratie Oracle jre1.8 → AdoptOpenJDK(8) → JDK 11) door het Hosting team gedaan kan worden, maar als de applicatie het niet doet onder een nieuwere java versie is er inspanning van de applicatie eigenaar (danwel software developers) nodig.

De reden om aan te dringen op de upgrade AdoptOpenJDK(8) → JDK 11 is dat er op dit moment geen duidelijkheid is hoe lang AdoptOpenJDK(8) nog gesupport zal blijven. De verwachting is dat RedHat in het gat springt dat Oracle achterlaat en gedurende enige tijd backports voor Java 8 zal blijven maken. Maar hoe lang dat is weet niemand, vandaar dat wij het verstandig achten om alles naar JDK 11 te upgraden. De verwachting nu is dat JDK 11 tot september 2022 gesupport zal blijven. Zoals het zich nu laat aanzien zullen we bij JDK 11 ook kiezen voor de AdoptOpenJDK(11) variant en niet voor de door Oracle geleverde GPL variant.

Daarnaast draaien er nog een paar hele oude jre1.7 instanties. Die worden allang niet meer gesupport en we grijpen deze gelegenheid aan om tegelijk met jre1.8 afscheid van jre1.7 te nemen. Dit betreft oude SOLR en Confluence versies. Deze versies werken niet onder java 8, dus het is zaak om deze applicaties voor 31 maart gechikt te maken voor java 8, danwel uit te faseren.

Het tijdschema ziet er als volgt uit:

periode actie
januari 2019 In de testomgeving alle Oracle jre1.8 instanties vervangen door AdoptOpenJDK(8)
februari 2019 Alle instanties waarvan de testomgeving het goed doet onder AdoptOpenJDK(8) ook in productie vervangen hierdoor
januari–maart 2019 Eventuele instanties die het nog niet goed doen onder AdoptOpenJDK(8) geschikt laten maken hiervoor. Echter, dat kunnen wij niet. Dat vereist dan aanpassingen van uw software leverancier hiervoor. We verwachten echter dat alles of bijna alles zonder aanpassingen wel gaat werken onder AdoptOpenJDK. M.u.v. de instanties die nu nog jre1.7 draaien.
31 maart 2019 Einde van beschikbaarheid van Oracle jre1.7 en jre1.8 instanties in de NPO hosting omgeving. Instanties die dan nog afhankelijk zijn van de Oracle jre's zullen niet meer werken na deze datum
april–december 2019 Stapsgewijs ombouwen van AdoptOpenJDK(8) naar JDK 11. Alles wat werkt onder JDK 11 is meegenomen. Zaken die dat nog niet doen moeten door uw software leverancier aangepast te worden
31 december 2019 Einde van beschikbaarheid van AdoptOpenJDK(8) in de NPO hosting omgeving.
  • aankondigingen/2019/c2019d01-uitfaseren-java-8.txt
  • Last modified: 2019/05/28 10:47
  • (external edit)