Een grote versie-upgrade van WSO2 zal regelmatig nodig zijn om de opbouw van technische schuld te voorkomen. Veel bedrijven stellen een upgrade echter uit, waardoor de te overbruggen kloof steeds groter wordt.
Deze blog is gebaseerd op een recent upgradeproject voor een Yenlo Connext-klant. Meer informatie over Yenlo Connext, onze 24/7 gehoste en beheerde WSO2-cloudoplossing, is te vinden bij onze oplossingen.

Waarom zou je toch upgraden?
Een upgrade houdt je WSO2-implementatie in goede staat. Let wel, de meest directe behoefte is te vinden in urgente (beveiligings)patches als die zich voordoen. Hoe langer je laatste grote upgrade geleden is, hoe meer problemen een dringende patch je zal opleveren. Tot het punt dat je misschien alleen maar slechte opties hebt. Zelfs als het je zou lukken om die patch geĂŻsoleerd uit te rollen, eventueel met wat tweaks, dan is je productconfiguratie niet langer formeel ondersteund.
Herinner je je het probleem met log4j nog, dat eind 2021 opdook? Dat gaf veel problemen voor bedrijven die achterliepen met de configuratie van software. Je wilt gewoonweg niet in een zeer kort tijdsbestek, met veel stress, upgraden terwijl je veiligheid op het spel staat.
De eigenlijke Yenlo Connext-platformversie was al gevrijwaard van de kwetsbaarheid van log4j. Desondanks heeft Yenlo als tijdelijke voorzorgsmaatregel een tussentijdse release uitgebracht met extra beveiligingsinstellingen. Log4j trok wereldwijd veel aandacht, je kon niet weten wat de toekomst zou brengen. In ieder geval was elke Connext-klant die de nieuwste en beste platformversie gebruikte al veilig.
Wat we hiermee willen zeggen: vermijd een roestige configuratie!

Aanpak voor de upgrade
Bij Yenlo streven we ernaar het integratieplatform te scheiden van de artefacten die erop draaien. Dat maakt het upgraden en kopiëren/herstellen van een omgeving zoveel gemakkelijker. Een goede geautomatiseerde implementatiepijplijn dient om snel en consistent platformversies en artefacten te herimplementeren. Ook streven we ernaar om stateful transactiegegevens apart op te slaan. Yenlo Connext is dienovereenkomstig uitgevoerd.
In het betreffende project werd de upgrade gerealiseerd volgens de planning van de klant. Allereerst werd een nieuwe en tijdelijke upgrade-omgeving voorzien, wat de voorkeur had boven een in-place upgrade, om de lopende ontwikkelingswerkzaamheden niet te verstoren.
Vervolgens werden de artefacten deployed en (regressie)getest. Ter voorbereiding op de PROD-uitrol werd een runbook gemaakt en gevolgd.
Stappen
Concreet omvatte de upgrade de volgende stappen.
- Stel een aparte upgrade-omgeving beschikbaar. Voor Yenlo Connext is deze stap eenvoudig, met behulp van de geautomatiseerde platformpijplijn van Connext, waardoor handmatige activiteiten worden vermeden.
- Veel klanten implementeren aangepaste componenten in een omgeving, wanneer dat nodig is voor specifieke integraties. Bijvoorbeeld een specifieke bibliotheek voor encryptie, hashing, etc. Daarom is het belangrijk te documenteren welke aangepaste componenten van toepassing zijn. De pijplijn van het Yenlo Connext-platform kan worden aangepast om dergelijke aangepaste componenten op te nemen, om de omgevingen consistent te houden (TEST, UAT, PROD) – en zo handmatige activiteiten te vermijden.
- Vervolgens is het tijd om verbinding te maken met de betrokken eindpunten. Verbinding komt vaak in verschillende vormen voor, bijv. openbare internettoegang, privénetwerktoegang (via VPN), IP-whitelisting. Ook hier is het belangrijk deze goed te documenteren, om reverse engineering tijdens het upgradeproject te voorkomen.
- Ook certificaten vergen aandacht. Ze kunnen voor verschillende doeleinden worden gebruikt, zoals de bellerauthenticatie en de responsondertekening. Nogmaals, behoud het overzicht door goede documentatie. Als je de goede werking van de certificaten op de upgrade-omgeving wilt controleren, dan heeft het wel degelijk zin om de toepasselijke certificaten aan te vragen en te installeren. In de praktijk is dit vaak een tijdrovend proces, op het kritieke traject van de planning.
- Daarna kunnen de services worden deployed op de EI van de upgrade-omgeving. Vaak gebeurt dit lang nadat de oorspronkelijke ontwikkelaars naar andere projecten of werkgevers zijn overgestapt. Daarom heb je gedocumenteerde implementatierichtlijnen nodig voor je ondersteuningsteam, zodat zij met minimale kennis en inspanning kunnen implementeren.
- Evenzo moeten de API’s worden geĂŻmplementeerd op de upgrade-omgeving. Geef waar nodig een klant-id en secret, zodat API-callers toegangstokens kunnen genereren. Voor Yenlo Connext is dit een van de standaard acties van Yenlo’s ondersteuningsteam.
- In het huidige project werd WSO2 Identity Server niet gebruikt. Als dat in jouw geval wel zo is, identificeer dan de voorbereidende acties, waarmee je IS kunt testen in verband met de platformupgrade.
- Op dit punt is je upgrade-omgeving klaar om getest te worden. Standaard regressietests zullen behulpzaam zijn (happy flows en edge cases), samen met Postman sanity checks. De gemiddelde grote upgrade zal weinig invloed hebben op niet-functionelen. In de praktijk zijn de ontvangstsystemen meestal de beperkende factor bij de verwerking van volumes. Dit zal waarschijnlijk niet veranderen door een platformupgrade. In het voorliggende project brachten de tests geen problemen aan het licht, wat vertrouwen gaf voor de uitrol naar PROD.
- Voordat we live gaan is er nog de vraag of we voor een in-place upgrade moeten gaan of dat we PROD volledig moeten vervangen. Elke keuze heeft enkele voor- en nadelen. Voor Yenlo Connext kozen we voor de in-place upgrade, omdat die vergemakkelijkt wordt door de beschikbare geautomatiseerde pijplijnen.
- Als laatste voorbereidende stap moet een runbook voor het uitrollen van UAT en PROD worden gemaakt. Zelfs als je ervan overtuigd bent dat de geplande upgrade onder controle is, moet je nog steeds nadenken over praktische zaken, zoals:
- blokkeer de invoer naar het integratieplatform, en wacht op voltooiing van eventuele lopende transacties (kijk bijvoorbeeld of de wachtrijen leeg raken), zodat er geen onvoltooid werk tussen zit
- informeer upstream- en downstream-applicatiebeheerders over downtime
- organiseer stand-by van specialisten bij opnieuw opstarten
- controleer juiste verwerking van eerste records na de herstart
- let op een rollback-scenario
Dat is het! Deze stappen zouden je de weg moeten wijzen. In het voorliggende project is de upgrade vlot uitgevoerd.
Conclusie
Bij het upgraden van je WSO2- of Yenlo Connext-omgeving heb je baat bij eerdere discipline in het onderhoud van:
- stateloze omgevingen
- geautomatiseerde implementatiepijplijn voor het platform, waardoor het eenvoudiger wordt om je configuratie up-to-date te houden, en deze gesynchroniseerd te houden tussen verschillende omgevingen
- geautomatiseerde implementatiepijplijn van artefacten, waardoor het gemakkelijker wordt om artefacten indien nodig (opnieuw) in te zetten
- documentatie over artefacten, aangepaste componenten, connectiviteit, certificaten, inzetrichtlijnen, sequentiediagrammen en meer
- sets voor regressietesten
- ingebouwde sanity checks (bijv. Postman), goed gebruik van logging, monitoring en dashboards
Als je van dit traject afwijkt, nemen de kosten van je upgrade-inspanning toe, en wordt deze aanzienlijk vertraagd. Bovendien nemen de risico’s bij een grote versie-upgrade ook toe.
Yenlo Connext levert de benodigde tooling zoals beschreven. Samen met de Yenlo Way of Working word je begeleid naar succes bij een grote versie-upgrade. Bovendien kan Yenlo met ruime expertise ondersteuning bieden. Hierdoor kun je vaker upgraden en het niet als een grote belemmering ervaren. Daarbij worden de problemen door uitgesteld onderhoud vermeden.