Sådan migrerede Færøerne væk fra mainframen

Alfred Joensen (tv.) fik den idé at skrive et program, der oversatte PL/1-kode til C#. Ved en senere lejlighed bringer Version2 mere om, hvordan han sammen med Tórur Strøm (th.) og to andre halvgale færinger begyndte at genskabe et mainframe runtime-miljø på Windows. Illustration: Dan Mygind
Den sidste mainframe på Færøerne er slukket. Et nervepirrende projekt, der kunne have lammet det lille ø-samfund, blev en succes. Nu vil færingerne hjælpe andre med at slippe af med mainframen og store softwarelicenser.

I slutningen af november var det et år siden, at Færøerne slukkede for den sidste mainframe på de nordatlantiske øer.

Størstedelen af de 52.000 indbyggere havde ingen anelse om det nervepirrende drama, som udspillede sig i weekenden den 23.–25. november 2018 på Staravegur 9 i Thorshavn, hvor hosting- og applikations-managementfirmaet Elektron holder til.

Omkring 70 repræsentanter fra Skat, pengeinstitutter, virksomheder og andre myndigheder var forsamlet i Elektrons lokaler. De var i fuld gang med at teste, hvad der var kulminationen på et mangeårigt projekt med at konvertere årtier gamle PL/1-programmer til C# på Windows.

Et mangeårigt projekt, hvor ukuelig færøsk tro, stædighed og lettere galskab blev sat på prøve af alvorlige projektkriser, nedlukninger og uforudsete forhindringer.

IBM hæver licensprisen

Version2 har besøgt Færøerne for at høre om baggrunden for højrisikoprojektet, som fik projektledere til at gå udenfor og råbe deres frustration ud i den flotte færøske natur.

»Det var omkring 2005, at vi var i forhandlinger med IBM. De indførte en ny prisstruktur, som betød, at mainframelicensen blev forhøjet med en tredjedel. En ny aftale med IBM ville betyde omkring 4 millioner kroner ekstra om året, 30 millioner over 3 år, hvor vi førhen havde en treårig aftale til omkring 17 millioner kroner,« beretter Ulla Joensen, direktør for Elektron og fortsætter:

»Lige meget hvad vi prøvede at gøre i forhandlingerne, var der ingen vej udenom en betragtelig licensforhøjelse.«
[>>media:44504|]
Hun har været direktør siden april 2016 og været ansat hos Elektron siden maj 2002.

Blandt Elektrons kunder på det tidspunkt var færøske Skat, kaldet Taks, og de færøske pengeinstitutter, der alle havde PL/1-systemer kørende hos Elektron, som løbende blev videreudviklet og vedligeholdt af Elektrons udviklere.

Omkring på samme tid som forhandlingerne med IBM foregår, er Elektron i gang med en nærmest eksistentiel diskussion med kunderne. Alle programmer er udviklet i PL/1, men udviklerne hos Elektron bliver ældre og det er stort set umuligt at få fat i unge PL/1-udviklere.

»Vi siger, vi kan ikke fortsætte med at kode i PL/1. Det er svært at få folk, der kender til PL/1 og mainframe-udvikling,« siger Ulla Joensen:

»De to ting falder sammen og giver anledning til at overveje: Hvad skal vi gøre?«

En bombe smides

Den daværende direktør for Elektron Niels Christian Nolsøe kender udvikleren og direktøren i NES Tech Alfred Joensen, og de begynder at diskutere muligheder for at flytte de eksisterende programmer væk fra mainframen.

Den nu slukkede mainframe på Færøerne – en IBM System Z9. Illustration: Elektron

Det er et kæmpeprojekt.

De færøske skatteprogrammer alene består af mere end 40.000 PL/1-programmer med over seks millioner linjers koder skrevet gennem tæt på fire årtier.

Det færøske skattesystem er desuden særegent ved, at alle virksomheder indbetaler de ansattes løn direkte til Taks, og det er så Taks, der beregner, hvor meget skat der skal tilbageholdes, og efterfølgende udbetaler nettolønnen til lønmodtageren. Fejler systemet, får færingerne ikke udbetalt løn.

»Systemet er så stort og omfattende, at det skal lykkes. Det er alle lønudbetalinger, al gældinddrivelse, alle pensionsudbetalinger, sociale ydelser, toldvæsenet, ja, det er hele det færøske samfund, som er afhængig af systemet,« fortæller Ulla Joensen.

Midt i overvejelserne smider de færøske pengeinstitutter en bombe:

De planlægger at flytte deres systemer til danske SDC. Det er en melding, som er svær at sluge for Elektron, men også for Taks, da skattesystemerne er tæt integrerede med pengeinstitutternes systemer og pengeinstitutterne er med til at betale for mainframe-driften.

Eydun Mørkøre blev direktør i Taks 1. september 2009 efter en tre måneders periode som konstitueret direktør juni–september.

»Jeg var lige startet og blev kastet ud i det. Det første, jeg skulle forholde mig til, var, at pengeinstitutterne flyttede deres it til SDC. Det betød, at vores drift blev to millioner kroner dyrere per år,« fortæller Eydun Mørkøre.

I december 2009 kommer Alfred Joensen med flere detaljer om, hvordan man kan migrere væk fra mainframen, hvilket modtages med kyshånd af Taks' it-chef, Ann Damgaard.

»Det var en kanon-ide. Mainframen blev dyrere for os, så det ville være godt at komme væk og samtidig fremtidssikre vores systemer, der er altafgørende for det færøske samfund,« siger hun og fortsætter:

»Vi skal være sikre på, at de også kører om 20 år. Det var dyrt at holde platformen kørende, og nye udviklere uddannes ikke i PL/1.«

Som en skilsmisse

Alfred Joensen har skrevet en rapport, hvor han beskriver mulighederne for at migrere fra mainframen over til en Windows-platform.

»Hvis vi flytter til Microsoft, kan vi spare hardware og licenser. Jeg vurderer, at vi kan flytte systemerne for 25 millioner kroner,« siger Alfred Joensen, der dog kommer til at vente længe på en beslutning, da et så stort projekt for færøske Taks skal på den færøske finanslov.

Samtidig skal Taks og de færøske pengeinstitutter finde ud af, hvordan deres sammenfiltrede systemer kan udredes – og hvem der skal betale hvad.

»Vi havde kørt systemerne sammen siden 1983, så vi sad tilbage som de svigtede. Det var lidt som en skilsmisse. Pengeinstitutterne var ikke velsete, da politikerne mente, at flytningen skadede Færøernes it-udvikling. Der var lange forhandlinger om, hvad de skulle betale for skiftet til en ny platform,« siger Taks direktør, Eydun Mørkøre.

Samtidig blev det også diskuteret indgående om migreringen skulle i udbud. Andre it-leverandører på Færøerne mente, at projektet skulle i udbud, mens Elektron holdt fast i, at der ikke var tale om nyudvikling, men en teknisk migrering, hvor man skiftede platform. Det blev bakket op af Taks.

»Vi fik dem overbevist om, at der var tale om en teknisk migrering. Ikke nyudvikling. Det åbner så for, at andre leverandører kan byde ind på nyudvikling senere, når vi fik migreret. Det er kun Elektron, der havde mainframe og PL/1-udviklere,« siger Taks' it-chef, Ann Damgaard.

Regnen, der aldrig kom

Det blev undersøgt, hvilke leverandører som kunne hjælpe til med at migrere fra mainframe til Windows. Der blev kigget på amerikanske Microfocus, men det var for dyrt.

»Det var amerikanske enterprise-priser,« som Ulla Joensen formulerer det.

Et proof of concept-projekt alene ville koste millioner.

I stedet faldt valget på belgiske Raincode, som Alfred Joensen allerede havde erfaring med.

»Vi havde lavet en markedsanalyse for at finde ud af, hvem der kunne gøre det her for os,« siger Alfred Joensen og fortsætter:

»Belgiske Raincode havde en løsning, hvor PL/1-kode blev kompileret til .Net byte-kode, hvilket kunne få os væk fra mainframen. De havde lavet mindre konverteringer, og det var mest batch-jobs som de konverterede, så det var nok mere simpelt end vores systemer.«

Alfred Joensen havde stiftet bekendtskab med Raincode, da han var tilknyttet SDC som konsulent i 2012-2013. Udover 34 forskellige mainframe-systemer med 1050 3270-skærmbilleder, fungerede mainframen også som backend til en borgerportal og en virksomhedsportal, ligesom der var omkring 90 integrationer til samarbejdspartnere via MQ eller SFTP.

Derudover var der omkring 4.000 batchjobs, der skulle kompileres til .Net-bytecode. 3270-applikationerne anvendte også CICS, hvilket var nyt for Raincode.

Raincode-projektet startede i 2013 og foregik med hjælp af konsulenter fra Belgien, der løbende kunne tilrette systemet, når projektet løb ind i uforudsete forhindringer. Det skete jævnligt.

Efter knap to år, hvor mållinjen stadig ikke kunne ses,var færingernes tålmodighed sluppet op.

»Vi spurgte, om de kunne give os en deadline for, hvornår projektet ville være færdigt. Det kunne de ikke,« siger Alfred Joensen, der selv havde været med til at vælge Raincode og således meget gerne ville have det til at virke.

En sindssyg ide

Men der var ikke fremdrift i projektet. Det var i slutningen af 2014, og Færøernes største migreringsprojekt blev stoppet.

Der var bevilget millioner på den færøske finanslov til projektet, hvilket gav stor politisk bevågenhed. Taks og Elektron havde ikke råd til at fortsætte på mainframen, og afhængigheden af nogle få ældre PL/1-folk var der stadig.

»Jeg havde været med fra starten og følte et personligt ansvar for projektet med Raincode. Færøerne er et lille land, og det var dybt afhængigt af det her system. Jeg syntes ikke, det var sjovt, jeg var virkelig stresset i den periode,« mindes Alfred Joensen.

Der var dog en enkelt idé, som Alfred begyndte at forfølge. En ide, som sidenhen er beskrevet som sindssyg og insane af diverse involverede, og som man nok skal være under meget pres for at få:

»Jeg foreslog, at vi gjorde det hele selv.«

Det vil sige selv udvikle alt det nødvendige: en transformer, der kunne konvertere PL/1 til C#, en CICS til Windows og diverse andre ting, som Alfred ikke var klar over var nødvendigt for at få et kæmpe migreringsprojekt til at lykkes.

Du kan læse mere om, hvordan det går, i en kommende artikel her på Version2.

Version2 var inviteret til Færøerne af Elektron.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (23)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Lasse Mølgaard

hvorfor så skifte til Windows?

Nu står der heldigvis at koden blev oversat til C#, som kører primært i et Windows miljø, men:

Du kan også køre C# på Linux (f.eks Mono og Dotnet Core).

Især Dotnet Core synes jeg er interessant, da Microsoft er i gang med at migrere hele .Net Frameworket til Dotnet Core.

Dette åbner op for at man kan udfase Windows server til hosting og bruge Linux servere i stedet for, med deraf reducerede omkostninger til licenser.

Dotnet Core går dog over til at hedde ".NET 5", men det er stadigvæk platformsuafhængigt.

  • 6
  • 0
Maciej Szeliga

Hvis argumentet for migreringen var at slippe for stadige licensstigninger og låsning til en leverandør, hvorfor så skifte til Windows? Leverandør og platform er ganske rigtigt skiftet, men dilemmaet består!


Nu må du huske på at helt som IBM var det eneste rigtige i "gamle" dage så et det eneste rigtige nu Microsoft.
Projektet inkluderer garanteret også O365 og Azure, alt skal jo op i skyen, så fra det perspektiv er ikke helt så mærkligt.

  • 3
  • 1
Dan Mygind

Hej Maciej,

Jeg sidder og skriver på artikel 2 om den tekniske implementering.
Det er et spændende projekt, men det inkluderer ikke Azure eller O365.
Færingerne havde alt rigeligt at gøre med konverteringen af PL/1 til C#, udvikling af nødvendige CICS-services til Windows, konvertering af batchjobs, databaser og andre småting.
Systemerne kører nu på Windows-servere hos Elektron.

  • 4
  • 0
Bjørn Anker-Møller

Det er tilsyneladende gået fint med platformsskiftet, men hvor nemt er det nu at videreudvikle på de migrerede systemer? Ofte er der i denne type situationer en backlog af ændringsønsker, som der ikke er viden til at udføre på den gamle platform, og det er et krav at den backlog skal kunne afvikles på den nye platform. Hvordan ser de betragtninger ud her?

  • 0
  • 0
Yoel Caspersen Blogger

Interessant beretning fra rigets nordligste egne.

Jeg anede ikke, at alle lønudbetalinger skulle igennem det færøske skattevæsen, før lommepengene udbetales til befolkningen. Det lyder umiddelbart som et koncept, der tigger om at blive misbrugt.

De færøske skatteprogrammer alene består af mere end 40.000 PL/1-programmer med over seks millioner linjers koder skrevet gennem tæt på fire årtier.

Hvordan kan man have brug for 40.000 programmer i et skattevæsen, som betjener en befolkning på lidt over 50.000 mennesker - hvis tallet holder, burde man måske starte med en refactoring af skattelovgivningen (ligesom man også burde her i den sydlige del af riget!).

Men cadeau til færingerne for at insource udviklingsopgaverne - det kunne danske myndigheder lære noget af. Ser frem til at læse flere beretninger om projektet.

  • 7
  • 0
Tim Wentzlau

Jeg er udvikler på Elektron og programmer har en lidt anden betydning i PL1 og den transformerede kode. Datastrukturer (en slags klasse eller struct) er også programmer eller nærmerer c# projekter.

Koden kan beregne skat fra 1984 og frem til i dag, med alle de ændringer, der har været undervejs.

Alle varer, der kommer ind til færøerne er registreret i TAKS' (SKAT) systemer til beregning af afgifter mm.

Der er også systemer til indrivelse af gæld, moms mm.

Gennerelt skal vi lave de samme systemer som andre lande har og det eneste der er afhængig af befolkningsstørrelsen er størrelse på databaser.

Jeg og mine kollegaer under os ofte over, hvor dyrt det er for det danske skattevæsen, at udvikle it systemer. Mirgeringsprojektet er langt det største IT projekt på færøerne. Vi er ca 15 udviklerer, der vedligeholder og udvikler skattesystemerne.

  • 13
  • 0
Maciej Szeliga

Gennerelt skal vi lave de samme systemer som andre lande har og det eneste der er afhængig af befolkningsstørrelsen er størrelse på databaser.


Det er vist lidt af en oversimplificering, det afhænger jo også af hvor komplekse / hjernedøde / idiotiske skatteregler politikerne har opfundet.

Bortset fra det så syntes jeg det lyder som et meget spændende projekt.

  • 3
  • 0
Yoel Caspersen Blogger

Jeg er udvikler på Elektron og programmer har en lidt anden betydning i PL1 og den transformerede kode. Datastrukturer (en slags klasse eller struct) er også programmer eller nærmerer c# projekter.

Tak for svaret - det ændrer en del på sagen.

Gennerelt skal vi lave de samme systemer som andre lande har og det eneste der er afhængig af befolkningsstørrelsen er størrelse på databaser.

Point taken, men alt andet lige er der vel færre industrier / brancher på Færøerne sammenlignet med fx USA eller Tyskland og som følge deraf også færre ting, der skal reguleres?

Jeg og mine kollegaer under os ofte over, hvor dyrt det er for det danske skattevæsen, at udvikle it systemer.

Du er ikke den eneste, der undrer dig - det lader til at være et generelt problem med softwareprojekter i det offentlige.

Dog er der enkelte lyspunkter - som fx SDFE, som laver nogle ret kompetente ting, når det kommer til at udstille offentlige kort- og adressedata.

De har tidligere fortalt lidt om deres tilgang her på sitet.

  • 5
  • 0
Michael Cederberg

Jeg er udvikler på Elektron og programmer har en lidt anden betydning i PL1 og den transformerede kode. Datastrukturer (en slags klasse eller struct) er også programmer eller nærmerer c# projekter.

Spændende. Men også bekymrende.

For der kommer sjældent velskrevet kode ud af at transformere kode fra et sprog til et andet. Fx. vil visse features i det nye sprog ikke blive udnyttet og features i det gamle sprog bliver mystiske i det nye sprog. Jeg kan faktisk ikke huske et eneste eksempel på situationer resultatet er kode der er fornuftigt.

Hvis man fx. tager to sprog som Java og C# som på overfladen ligner hinanden meget. De har begge C/C++ lignende syntaks, de er begge objektorienterede og de kører begge ovenpå en VM hvor CLR er kraftigt inspireret af JavaVM. En udvikler kan skifte fra det ene til den andet i løbet af en time (det tager selvfølgeligt længere at lære detaljer og hele økosystemet). Alligevel vil en konvertering mellem de to sprog give kode jeg ikke ville ønske at vedligeholde. Jeg tør slet ikke forestille mig hvordan PL/1 kommer til at se ud på .NET. Jeg forestiller mig at det bliver næsten umuligt at videreudvikle koden.

  • 2
  • 0
Tim Wentzlau

Jeg er nysgerrig: Er det en speciel færøsk sprogkonstruktion (eller humor), eller blev SKAT så upopulære, at der måtte ske noget?

Det er skat bagfra :-) og der er en sproglig krølle, fordi "til taks" betyder at være tilgængelig på færøsk.

  • 2
  • 0
Tim Wentzlau

For der kommer sjældent velskrevet kode ud af at transformere kode fra et sprog til et andet. Fx. vil visse features i det nye sprog ikke blive udnyttet og features i det gamle sprog bliver mystiske i det nye sprog. Jeg kan faktisk ikke huske et eneste eksempel på situationer resultatet er kode der er fornuftigt.

Vi kalder internt koden PL/# og ja der er udfordringer, vi arbejder på at lave forskellige værktøjer, der skal hjælpe på dette.

Men vi spare i licenser, fået markant bedre svartider og et driftmiljø som flere hos os kan udvikle til og vedligeholde.

Der kommer vist nogle flere artikler der vil i helt sikkert kunne læse mere.

  • 3
  • 0
Tim Wentzlau

Kan køretiden eventuelt oplyses for en "årsopgørelse"-kørsel og tilhørende maskin-konfiguration?

Tager det: 100 sekunder, 100 minutter. 100 timer eller 100 dage?

Jeg har fået fremskaffet nogle tal. Årsopgørelsen tager ca 11 timer på det nye miljø. Det er flere batch programmer, der afvikles for at lave opgørelsen. Batch programmer køre ca 13% hurtigerer i windowsmiljøet.

Jeg står for TAKS web portaler og kan af logs se, at svartiderne fra backendsystem gennemsnitligt er forbedret med 5-600% i windowsmiljøet.

  • 3
  • 0
Michael Cederberg

Vi kalder internt koden PL/# og ja der er udfordringer, vi arbejder på at lave forskellige værktøjer, der skal hjælpe på dette.

Men fx. jeg synes at huske at PL/1 bruger GOTO noget mere end moderne sprog. Man kan godt lave GOTO i C# men det ser ikke pænt ud. Hvis man så begynder på label-variable (GOTO til en variabel label), så bliver det sværere at se hvad der sker ...

Jeg gad også godt se hvad der sker med kommentarer i koden.

Men vi spare i licenser, fået markant bedre svartider og et driftmiljø som flere hos os kan udvikle til og vedligeholde.

Jeg tror nok jeg ville have valgt at lave en PL/1 fortolker eller compiler hvis jeg havde haft opgaven. Hvis man blot udvikler features efterhånden som der er brug for dem, så bliver det ikke en kæmpe opgave. Det skulle være en compiler/fortolker som integrerede med .NET CLR. På den måde kunne man lige så stille omskrive PL/1 kode til C# når nogen alligevel skulle forbi koden.

Der kommer vist nogle flere artikler der vil i helt sikkert kunne læse mere.

Spændende. Jeg håber vi får nogle kodestumper at se.

  • 2
  • 0
Log ind eller Opret konto for at kommentere