Hardware, Systemudvikling og systemer, Software

Banedanmark: Trafikinfo i skyen rider stormen af

Banedanmark flyttede sit system til trafikinformation ud i skyen for at klare spidsbelastningen, når en storm giver togene problemer.

Hvornår kører toget? Det spørgsmål finder tusindvis af danskere svaret på via Banedanmarks websted. Hvad de ikke kan se, er at det underliggende maskineri både omfatter et system i skyen og en intern relationsdatabase. Banedanmark har nemlig praktisk erfaring med at integrere interne data i en cloud-løsning.
Når der er snestorm i Danmark, giver det problemer for togdriften. Men tidligere gav det også problemer for Banedanmarks websted. På en normal dag har sitet 80.000 besøgende. Ved den seneste storm var der fem millioner gæster på et enkelt døgn.
Det førte til, at sitet gik ned, netop når der var mest brug for det. Derfor fik de ansvarlige for trafikinformation i Banedanmark for et par år siden den ide at undersøge, om man kunne lægge en del af webstedet ud i skyen. På den måde kunne man skrue op for båndbredden og serverkraften, når der var brug for det.
Men der var en udfordring: Trafikinformationssystemet bygger på data, der ligger i en intern Oracle-database ved navn RDS – Regularitets- og Driftsstatistik-system. Det eksterne websystem skulle trække på de data.
– Vi ønskede ikke at lade cloud-systemet forespørge ned i Oracle-databasen. I stedet ville vi lave en kopi af databasen ude i skyen, så både databehandling og forespørgsler foregår derude, fortæller områdechef for trafikinformation Kenneth Lau Rentius, Banedanmark.

Biztalk henter data

Som cloud-system valgte man Microsofts platform-as-a-service-løsning Windows Azure og dens indbyggede database, SQL Azure. Til at stå for dataudvekslingen havde Banedanmark i forvejen Biztalk.
– Vi endte med et design, hvor Biztalk henter data fra RDS og overfører dem til SQL Azure. Der overføres kun data, når noget ændres i RDS. På den måde holder vi mængden af datatrafik nede, forklarer Kenneth Lau Rentius.
Helt enkelt var det imidlertid ikke. En af udfordringerne var, at RDS på det tidspunkt kørte på version 8 af Oracle-databasen. Den er så gammel, at den ikke længere bliver supporteret. Det var heller ikke nemt at få Biztalk til at kommunikere med den.
Derfor lavede man i første omgang en løsning, hvor Biztalk kommunikerede med en nyere Oracle-database, der så havde et link til RDS. Den løsning er siden blevet ændret, da Banedanmark har konsolideret alle databaser på samme version.

Flyttede stored procedures

En anden udfordring lå i, at RDS ikke var en ren database. Der lå også en række stored procedures, som udfører opgaver, der strengt taget hører til applikationslaget, ikke datalaget.
– Vi havde en forestående opgave med at rydde op, så nogle af de stored procedures blev flyttet op på applikationslaget. Det var nødvendigt, fordi vi ville konsolidere databaserne. Det arbejde benyttede vi så denne opgave til at tage hul på. Der var dog to procedurer, som det var nødvendigt at flytte over på SQL Azure, siger han.
De to procedurer fylder til sammen godt 3.000 linjer kode. De blev flyttet i et samarbejde mellem Banedanmarks egne udviklere og folk fra Microsoft.

Indførte selv alarmer

Banedanmark ejer selv sin it-infrastruktur, men har outsourcet driften af den til Atos. Det gav en udfordring, da en del af systemet nu blev lagt ud til en tredjepart.
– Da vi begyndte på projektet, var Azure så ny, at der ikke var mulighed for at overføre alarmer fra skyen til et andet system. Så det måtte vi udvikle som en del af projektet. Nu virker det, sådan at Atos får en alarm, hvis belastningen pludselig vokser, siger Kenneth Lau Rentius.
Desuden er der skrevet SLA'er (service level agreement), som definerer de krav, som Atos og Microsoft skal leve op til. Og der er udarbejdet retningslinjer til driftsfolkene, så de ved, hvem de skal kontakte, hvis der opstår problemer.
– En fordel ved cloud er, at man kan flytte systemet rundt i verden, hvis der opstår problemer i et af driftscentrene. Og vi kan skrue op for ydeevnen, når der opstår spidsbelastninger. Det så vi ved den seneste storm, hvor vi skruede op til at håndtere fem millioner besøgende på et døgn. Regningen var vist på 79 kroner, griner han.

Åben for mere integration

Integrationen behøver imidlertid ikke at stoppe her. Banedanmark vil gerne stille flere interne data til rådighed for cloud- og websystemer. Det kunne for eksempel være nogle af de informationer, som passagererne får via højttalere på stationerne. Eller det kunne være andet fra RDS-databasen end oplysningen om, hvorvidt et tog er forsinket.
– På det område er vi ikke kommet så langt, som jeg kunne ønske. Banedanmark skal ikke leve af at udvikle applikationer, så det passer fint til vores rolle at stille data til rådighed via web services, som andre så kan trække på. En mulighed kunne være integration med Rejseplanen – i dag får den vores data, men det sker via DSB, der henter dem hos os. Men vi har ingen konkrete planer endnu, siger Kenneth Lau Rentius.

Kræver styr på data

Det har overrasket ham, at projektet trods alt ikke var sværere. Der gik otte måneder fra de første overvejelser, og til systemet var i luften.
– Vi har lært, at hvis man har en business case for det, er cloud noget, man skal bruge. Men før man kaster sig ud i integrationsprojekter, skal man have orden i eget hus, siger han.
Med det henviser han til, at Banedanmark var nødt til at rydde op i sammenblandingen af data og funktionalitet i applikationer. Den oprydning var nødvendig for cloud-integrationen, men var også en forudsætning for den konsolidering af databaser, der fulgte efter.