Portable and Secure CI/CD for COBOL: Lessons from an Industrial Migration
Dit artikel beschrijft hoe Bankdata een fragiele Jenkins-CI/CD-pipeline voor COBOL migreerde naar een containergebaseerde architectuur met een abstractielaag, wat resulteerde in een 82% reductie in uitvoeringstijd en lagere onderhoudskosten.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat Bankdata een gigantische, oude bibliotheek is. In deze bibliotheek staan miljoenen boeken (de banktransacties) die geschreven zijn in een heel oud, maar ongelooflijk betrouwbaar taal: COBOL. Deze boeken worden bewaard in een zware, betonnen kluiskast (de IBM-mainframe) die al decennia draait. Alles werkt, maar het is zwaar, traag en moeilijk te veranderen.
Om deze oude boeken veilig te kunnen controleren en te updaten, hadden ze een systeem voor "controle en levering" (een CI/CD-pijplijn). Maar dit systeem was als een verouderde, rommelige machine die alleen werkte met een heel specifiek type olie (Jenkins).
Hier is het verhaal van hoe ze die machine hebben vervangen door iets moderners, vertaald in alledaags taal:
1. Het Oude Probleem: De Rommelige Machine
Vroeger was hun controle-systeem als een zwakke, ingewikkelde machine die in een hoek van de fabriek stond.
- Te veel losse onderdelen: De instructies voor de machine waren verspreid over vier verschillende schuiven (repositories). Als je een boutje wilde draaien, moest je in drie andere schuiven kijken.
- Vertraging: Elke keer als de machine startte, moest hij eerst zelf alle gereedschappen (software) uit een magazijn halen en monteren voordat hij kon werken. Dit duurde lang.
- Geen vrijheid: De machine was zo specifiek gebouwd voor Jenkins (een bepaald merk machine), dat je niet zonder meer naar een ander merk kon overstappen. Je zat vast aan één leverancier.
- Gevaar: Omdat de machine soms halverwege stopte of vastliep, was het lastig te zien wat er misging. En omdat hij onderweg alles zelf moest installeren, was er kans op fouten of zelfs hackers die zich vermomden als gereedschap.
Het resultaat? Het duurde 724 seconden (bijna 12 minuten) om één controle te doen. De ontwikkelaars moesten lang wachten, wat frustrerend was.
2. De Oplossing: De "Alles-in-één" Verpakking
Bankdata besloot om de hele machine te vervangen. Ze wilden een systeem dat:
- Snel was.
- Overal kon werken (niet alleen bij Jenkins).
- Veilig was.
Hun nieuwe aanpak was als het overzetten van een rommelige werkplaats naar een slimme, zelfrijdende vrachtwagen.
- De Container (De VRW): In plaats van dat de machine onderweg gereedschap moet zoeken, hebben ze een container (een soort metalen doos) gebouwd. In deze doos zaten alle benodigde gereedschappen, de oude taalvertaler (COBOL) en de controle-apparatuur al perfect gemonteerd.
- Vergelijking: Het is alsof je niet meer zelf je gereedschapskist moet vullen voordat je gaat klussen, maar dat je een kant-en-klare "klusbox" krijgt die je direct kunt openen en gebruiken.
- De Vertaler (Abstraction Layer): Ze bouwden een slimme vertaler. De oude machine sprak alleen "Jenkins-taal". De nieuwe machine sprak "Algemeen". De vertaler zorgt ervoor dat de instructies voor het klussen (de logica) niet veranderen, maar dat de vertaler alleen de taal aanpast naar de nieuwe machine (bijvoorbeeld GitHub Actions).
- Vergelijking: Het is alsof je een boek hebt dat je in het Nederlands wilt lezen, maar je hebt een vertaler die het direct in het Engels, Frans of Spaans kan voorlezen zonder dat je het boek zelf hoeft te herschrijven.
3. Het Resultaat: Snelheid en Rust
Toen ze de nieuwe "vrachtwagen" (de container) en de "vertaler" (de abstractie) inzetten, gebeurde er magisch:
- Snelheid: De controle duurde plotseling nog maar 130 seconden. Dat is een reductie van 82%.
- Vergelijking: Het is alsof je vroeger 12 minuten nodig had om een brief te schrijven, maar nu, met een snellere computer en kant-en-klare sjablonen, heb je het in 2 minuten af.
- Veiligheid: Omdat alles al in de doos zat, hoefden ze niets meer onderweg te downloaden. Dit maakt het veel moeilijker voor hackers om iets te manipuleren.
- Vrijheid: Omdat ze de "Jenkins-taal" hadden verwijderd en vervangen door een universele vertaler, kunnen ze nu kiezen welke machine ze willen gebruiken. Ze zitten niet meer vast aan één leverancier.
4. De Menselijke Kant: Gewoontes veranderen
Het technisch werk was één ding, maar het echte werk was het overtuigen van de mensen.
- De COBOL-programmeurs waren gewend aan hun oude, vertrouwde omgeving (de mainframe). De overstap naar een nieuw systeem (GitHub) leek eerst eng en verwarrend.
- De les: Ze moesten de programmeurs betrekken bij het proces. Het nieuwe systeem moest niet voelen als een straf, maar als een hulpmiddel dat hen tijd bespaart. Ze leerden hen dat ze niet hun oude gereedschap hoeven weg te gooien, maar dat ze nu een snellere auto hebben om erheen te rijden.
Samenvatting
Dit verhaal gaat over het moderniseren van een oude, trage en kwetsbare fabriek. Door de oude, losse onderdelen te vervangen door een slimme, alles-in-één verpakking (container) en een universele vertaler, hebben ze de snelheid verdrievoudigd, de veiligheid verhoogd en zich bevrijd van een specifieke leverancier.
Het bewijst dat je zelfs in een zeer oude, strenge omgeving (zoals de bankwereld met COBOL) kunt innoveren, zolang je maar slim genoeg bent om de oude logica te respecteren en de nieuwe tools op een veilige manier toe te passen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.