Slik driftes store deler av buss- og hurtigbåt-trafikken i Rogaland

Vi jobber med data som endrer seg kontinuerlig, forteller Webstep-konsulent Jan Terje Egeland, som jobber hos mobilitetsleverandøren Kolumbus.

Jan Terje Egeland er innleid fra Webstep til Kolumbus hvor han arbeider på sky-infrastruktur. 📸: Privat
Jan Terje Egeland er innleid fra Webstep til Kolumbus hvor han arbeider på sky-infrastruktur. 📸: Privat Vis mer

Med mindre du bor i Rogaland har du kanskje ikke hørt om Kolumbus, som har ansvar for buss- og hurtigbåttrafikk i regionen.

I tillegg sørger de for at tog, sykkel, gange og bildeling skal henge sammen med båt og buss. Ingen liten infrastruktur-utfordring for teknologer, og noe man skulle tro var et mekka for en hver drifts-interessert person.

Vi hørte med Jan Terje Egeland, som er innleid seniorkonsulent fra Webstep og jobber med det nye sanntidssystemet hos Kolumbus, om hvordan driften av systemet egentlig fungerer hos dem.

#1. Hei Jan Terje, først og fremst hvor driftes det dere bygger i dag? 🤔

Sanntidssystemet, som vi utvikler, kjører i hovedsak i Microsoft Azure. Valget av skyleverandør ble tatt blant annet på bakgrunn av eksisterende plattform til andre løsninger hos Kolumbus og tilgjengelig kompetanse.

Vi opplever at de store skyleverandørene stort sett tilbyr sammenlignbar funksjonalitet, selv om de selvsagt har hver sine ting de er ledende på. Vår løsning baserer seg på blant annet Azure functions og event hubs, som er modne og godt integrerte tjenester i Azure.

#2. Hvordan håndterer dere deploy til serverene? 🏹

Vi kjører alle våre deployments gjennom Azure DevOps.

Infrastruktur deployes via ARM-templates, og byggene spesifiseres i YAML. Foruten utviklermiljøet har vi et test- og et produksjonsmiljø som er så og si identiske. Vi kjører de samme dataene gjennom testmiljøet som produksjonsmiljøet, og kan derfor være ganske trygge på at vi unngår ubehagelige overraskelser når vi tar kodeendringer videre til produksjonsmiljøet.

#3. Hva bruker dere til å holde oversikt over drift? 👓

Vi er et relativt lite team som jobber med systemet, og for å opprettholde leveransekraften bruker vi “managed services” så langt det lar seg gjøre.

I Azure er disse ut av boksen godt integrert med blant annet Azure Monitor og Application Insights. Spesielt sistnevnte bruker vi daglig for å overvåke applikasjonslaget. Da vi stort sett bruker managed services og serverless infrastruktur er det færre ting i det underliggende infrastrukturlaget som trenger å overvåkes.

For oss er det vel så viktig å overvåke dataene våre. Hvis vi for eksempel får mangelfull eller feil informasjon fra bussoperatørene påvirker det systemet vårt og passasjeropplevelsen i stor grad. Her har vi en del egenutviklede løsninger som vi kombinerer med mer klassiske BI verktøy for live rapportering.

#4. Hvordan håndterer dere caching? 🗃️

Vi jobber med data som endrer seg kontinuerlig. Fra vi får en GPS-melding fra en av bussene til lokasjonen oppdateres i appen har vi som mål at det skal gå under ett sekund.

Vi har derfor lite caching på hovedstrømmen av dataene våre, men vi har selvsagt andre data som caches. Da er det primært Redis som brukes.

#5. Hva bruker dere til domener og DNS? 🏡

Vi bruker Netpower.

#6. Hva bruker du mest tid på i hverdagen i forhold til drift? ⏰

Vi bruker mest tid på å analysere inndata til systemet, og å lage verktøy som fanger opp gjengangere automatisk. “Crap in = crap out” som de sier.

#7. Hva er du mest fornøyd med å ha gjennomført i forbindelse med drift det siste året? 😘

Driftsmessig er jeg mest fornøyd med at vi nå er live i alle områder i Rogaland.

Vi har flinke samarbeidspartnere som har vært ute i hundrevis av busser og installert fysiske gatewayer og skjermer i alle bussene. I tillegg har vi fått på plass gode integrasjoner med de fleste operatørene.

#8. Er det noe som skiller deres driftebehov fra andres? 🚂

Vi har kanskje et spesielt fokus på å minimere forsinkelser da dataene er relativt tidskritiske.

Det er derfor stort sett strømmedata det går i, i stedet for batch operasjoner. Vi har også en kanskje unormalt stor avhengighet til underleverandører av data.

#9. Hva har du lyst til å teste eller bytte ut fremover, og hvorfor?

Jeg er overbevist om at vi fortsatt har mye potensiell verdi å hente ut av dataene våre, og vi har derfor i det siste jobbet mer med å sentralisere og tilgjengeliggjøre dataene våre ved hjelp av Databricks.

Dette hjelper oss både når vi selv skal gjøre analysearbeid, og utvikle gradvis bedre maskinlæringsmodeller, men også i gradvis større grad for resten av organisasjonen.

#10. Hva skulle du ønske utviklere og kolleger ble flinkere på? 🙌

Generelt opplever vi at det skjer mye på teknologifronten, og at en del ny teknologi kan spare oss for mye utviklertid. Det å være flinke til å holde oss oppdaterte og å bruke rett verktøy til rett jobb øker verdien på alt arbeidet vi utfører.

Til syvende og sist er det nettopp det å gi verdi for kundene som er det viktigste for et eksperthus som Webstep, og for å få det til må vi både forstå kundenes utfordringer, og være relevante.