Terugblik Apeldoorn JUG Java Meetup

De toekomst van Cloud-Native Java

Zo’n 90 Java-ontwikkelaars kwamen op 15 oktober bijeen bij de Belastingdienst in Apeldoorn om te luisteren naar Adam Bien en Bert Ertman. Deze twee Java Champions kruisten de degens over Java-standaarden, middleware, containerplatforms en cloud-native ontwikkelmethoden. De grootste gemene deler deze avond: Java is nog steeds onmisbaar, als je het maar op de juiste manier gebruikt.

De conferentieruimte de Kern zit nagenoeg vol als organisatoren Bram van den Hout, architect van de Java OntwikkelStraat en software engineer van Luminis Apeldoorn Jouri Fledderman de bijeenkomst aftrappen met een korte beschouwing over de cloud-native-principes. Hoewel er verschillende definities de ronde doen, staat bij cloud-native in elk geval centraal dat applicaties zonder aanpassingen zowel in de in de publieke cloud als in een on-premise datacenter moeten kunnen draaien. Met andere woorden: apps zitten niet vastgebakken aan een specifieke hardware-infrastructuur. Dat levert allerlei voordelen op, waaronder meer portabiliteit en flexibiliteit. Cloud-Native apps zijn bestand tegen onbeschikbaarheid van services en resources waarvan ze afhankelijk zijn. Ook kunnen die apps meer resources aanspreken bij een piek in het aantal gebruikers, zodat ze goed blijven functioneren. Een monolitische app op traditionele infrastructuur kan dit niet, omdat die het moet doen met een vooraf vastgestelde hoeveelheid rekenkracht. Ook de zegeningen van het zogenoemde DevOps-principe komen aan bod. Een nauwere samenwerking tussen de ontwikkelaars van een applicatie, de bedenkers ervan, en de operationele medewerkers die de release verzorgen plus het uitrollen en monitoren levert een beter product op.

Productiviteit staat centraal

Dan is het de beurt aan Adam Bien, Java-ontwikkelaar van het eerste uur. Hij vertelt dat Oracle lange tijd de kar heeft getrokken met zijn Java Enterprise Edition (EE), en nu het stokje grotendeels heeft overgedragen aan de Eclipse Foundation, een open source community die het samenwerken aan software organiseert. Zo gebruikt Bien zelf MicroProfile, een bruikbare subset van Jakarta EE 8. De kern van Biens betoog: wie zich aan de moderne, actuele standaards houdt, is in staat om op een cloud-native manier in een handomdraai robuuste applicaties te bouwen. Want, zo zegt hij : ‘De toekomst draait om productiviteit: hoe lang duurt het voordat er iets op het scherm te zien is?’ Daarna gaat hij de diepte in – al snel vliegen er brokjes code over het scherm. Live maakt Bien een mini-applicatie, waarmee hij demonstreert hoe je ‘the boring stuff’ kunt afhandelen – oftewel de randzaken waarin ontwikkelaars niet teveel energie willen steken. Wat doe je bijvoorbeeld wanneer service A service B gebruikt en de laatste niet meer in de lucht is? Met behulp van Jakarta EE 8 – dat volgens zijn medespreker inmiddels ‘overleden’ is – laat Bien zien hoe je dat probleem binnen no time oplost.

Blik op wat komen gaat

Wat vinden de toeschouwers van Biens verhaal? ‘Zijn idee om het bij de basics te houden, spreekt mij wel aan’, zegt Java-ontwikkelaar Chris in de pauze. ‘Sommige mogelijkheden die hij demonstreert, gaan wat verder dan wat wij doen. Maar het was leuk om te zien wat je met één simpele annotatie kunt bewerkstelligen. Dat onthoud je voor het moment dat wij ook toe zijn aan nieuwere technologie.’ Mede Java-ontwikkelaar Fokke onderschrijft dat: ‘Wij werken nog met Java EE 6, Bien laat zien wat je met Jakarta EE 8 kunt en daarmee waar wij over zo’n anderhalf jaar willen staan. Deze beperking wordt mede opgelegd door de traditionele infrastructuur. Als wij op een containerplatform zoals OpenShift gaan werken, kunnen wij meerdere instanties van een server draaien en snel en simpel de status van een service opvragen. Is die gecrasht of nog in de lucht? Ertman zal straks gaan vertellen dat we van Java EE af moeten. Maar Bien sorteerde daarop voor door te zeggen: ik heb toch maar mooi snel iets met behulp van de beschikbare standaarden voor elkaar gekregen.’

Compute in plaats van computer

De presentatie van Bert Ertman, die zichzelf een Java-Cloud postmodernist noemt, is minder technisch van aard. De Java Champion houdt het bij welgeteld één slide waarop code te zien is. En zoals verwacht herhaalt hij zijn boodschap uit eerdere spreekbeurten: Java EE is dood. Cloud rust volgens traditioneel op 3 pijlers: Software as a Service (SaaS), Platform as a Service (PaaS) en Infrastructure as a Service (IaaS). Ertman voegt daar een nieuwe component aan toe: serverless. Volgens hem zijn we gehinderd door ons oorspronkelijke begrip van een computer, of althans de fysieke verschijning ervan. Bij vee gaat het ons ook niet zozeer de individuele dieren maar om wat ze samen produceren, zoals melk en/of vlees. Met computers is het weinig anders: de opbrengst van een computer is ‘compute’ – laat die laatste letter dus maar weg. Anders gezegd; ‘serverless in the cloud’ draait niet om afzonderlijke servers, maar om ongelimiteerde rekenkracht. Volgens sommige is dit een aantrekkelijk model: wie code in de publieke cloud uploadt, betaalt alleen voor de rekenkracht die hij afneemt. De cloud provider van je keuze houdt die bij en stuurt je een rekening. Als er niets runt, betaal je ook niets. Ook de middleware van een organisatie kan prima serverless door het leven gaan, stelt Ertman. ‘Op die manier houd je tijd over voor slimme oplossingen. Je wilt gebruik kunnen maken van de standaard bouwstenen die cloud providers bieden, functies en kleine brokjes software waarvan je niet eens weet op welke infrastructuur die draaien, zodat je je helemaal op de business functionaliteit kunt concentreren.’

Is een Java-ontwikkelaar wel klaar voor deze nieuwe werkelijkheid? ‘Het is prima als je in Java kunt programmeren, maar een cloud-native ontwikkelaar moet allerlei extra skills hebben’, luidt de waarschuwing. Daartoe behoren kennis van verschillende besturingssystemen, van netwerkconcepten, je moet iets weten over terminals, containers, de belangrijkste cloud providers…’ Kortom: behalve stof tot nadenken geeft Ertman zijn gehoor ook huiswerk mee.

Relevantie voor de aanwezigen van verschillende bedrijven

Van den Hout toont zich na afloop tevreden. ‘We hebben geprobeerd verschillende ideeën tegenover elkaar te zetten, en dat is gelukt. Bien en Ertman zijn niet voor niets de besten in hun vakgebied. Veel van de vandaag behandelde principes zijn trouwens ook relevant voor andere programmeertalen. Bien is daarbij wat pragmatischer inzake het gebruik van Java/Jakarta EE, Ertman wat innovatiever. Wat Bien aanbiedt is voor grote organisaties als de onze direct toepasbaar. Ertmans vergezichten moeten we nader onderzoeken. Deze opzet werd volgens mij gewaardeerd door de bezoekers.’ 

Bekijk hier de video van de avond. De slides van de avond bekijken? Klik hier. Meer informatie over NLJUG? Klik dan hier.