Net als telefoons en computers krijgt ook de programmeertaal Java regelmatig een update naar een nieuwe versie. In de dagelijkse praktijk blijven organisaties echter nog vaak steken op oudere versies die officieel niet meer worden ondersteund. In dit artikel gaan we dieper in op het belang van Java upgrades en geeft Eonics consultant Rory tips hoe deze verantwoord in je organisatie uit te voeren.
Wanneer we Senior Java consultant Rory Slegtenhorst vragen naar het belang van Java upgrades aarzelt hij geen moment: “Neem bijvoorbeeld Java versie 8, welke bij veel organisaties nog in gebruik is. Deze wordt simpelweg niet meer ondersteund. Dit betekent bijvoorbeeld dat er geen security updates meer worden uitgebracht, een enorm risico voor je bedrijfsvoering. Daarnaast is de recente Java 11 versie ook voor het eerst bestempeld als LTS (red: long term support, ondersteuning voor lange tijd), wat het een perfect moment maakt om te investeren in een overstap. Java 11 bevat daarnaast talloze nieuwe features die de upgrade de moeite waard maken: ondersteuning voor containers (red: bijvoorbeeld Docker), een groot aantal nieuwe API’s zoals native collections, ondersteuning voor de belangrijke nieuwe web-standaard HTTP/2, en ga zo maar door.”
Een goede voorbereiding is het halve werk
Wanneer het besluit tot een upgrade eenmaal is genomen begint het echte werk. Een gedegen voorbereiding op weg naar de daadwerkelijke migratie naar de nieuwe versie is hierbij essentieel. Rory legt uit: “Uiteraard is iedere situatie anders, maar de eerste stap is altijd een gedegen voorbereiding. Duik met de relevante specialisten de diepte in en breng heel gedetailleerd in kaart wat voor jouw specifieke situatie de impact van de upgrade is op de bestaande code en infrastructuur. Voor een upgrade van Java 8 naar 11 zal in deze fase bijvoorbeeld naar voren komen dat de runtime niet langer de Enterprise Edition onderdelen bevat. Gebruikt je applicatie bijvoorbeeld XML? Dan heeft deze wijziging direct een grote impact. Door dit soort zaken vooraf goed uit te zoeken voorkom je verrassingen later in het proces.”
Creëer een proof-of-concept branch
Als het vooronderzoek is voltooid en er een goed beeld is van de impact van de upgrade is het tijd voor actie. Ook voor deze fase heeft Rory een goede tip: “Maak een proof-of-concept branch waarin je een volledige update uitvoert op basis van de huidige code. Dit geeft een goed beeld van het benodigde werk en vormt daarmee een solide basis voor een stappenplan van de daadwerkelijke upgrade. Uiteraard hoeft dit geen functioneel eindproduct te zijn, zie het meer als een kwalificatieronde voor de Grand Prix die nog moet volgen. Op deze manier weet je tenminste wat je eigenlijk echt te wachten.”
Andere zaken om aan te denken
Zoals gezegd is het onmogelijk om een algemeen stappenplan te geven. Wel kan Rory vanuit zijn ervaring een aantal stappen noemen die belangrijk zijn en hij vaak terug ziet komen: “Denk aan het updaten van Maven en de IDE’s, de standaard en kritieke build componenten, het introduceren van een artefact voor het verwijzen naar opensource versies van verwijderde enterprise componenten, en natuurlijk het updaten van kritieke dependencies. Iedere applicatie is anders dus maak vooral zoals besproken een goed plan vooraf zodat je weet dat je geen belangrijke stappen vergeet!”
Meer informatie
Tot slot vroegen we Rory om wat zoek- en lees-tips zodat je beslagen ten ijs kan komen op je eerste meeting over een Java upgrade in jouw organisatie:
- Java 11 migration guide op CodeFX
- Artikel over Java 11 migraties op Medium
- Google je foutmeldingen en gebruik sites als stackoverflow.com
Wil je graag hulp of onafhankelijk advies over Java upgrades of vergelijkbare trajecten? Laat je gegevens achter via het onderstaande formulier, dan nemen wij zo snel mogelijk contact met je op.