(Foto: Pressefoto)

Mikrotjenester og nettverk

Kjell mener dagens IT-systemer er for sårbare. Sånn vil han løse det store problemet

 

  • Sikkerhet

– Dagens systemer er alt for sårbare med tanke på angrep og hendelige uhell.

Det sier professor i informatikk, Kjell Jørgen Hole, ved Universitetet i Bergen til digi.no. Hole mener at det blir viktigere og viktigere å lage systemer som har en konstant oppetid.

Det skyldes at digitaliseringen blir mer og mer gjennomgående i alle sektorer.

– Ta for eksempel betalingssystemer som bankene benytter seg av. De må kjøre hele tiden, det samme må teleoperatørene. Når det først går galt, går det virkelig galt, konstaterer han.

Bok om sikkerhet

Hole har nylig publisert e-boken «Anti-fragile ICT Systems». Den ligger her for gratis nedlasting.

– Jeg ønsker at så mange som mulig leser denne boken. Den bidrar til utvikling og forståelse om problemstillingene.  Forhåpningen er å få større aktivitet på området om antisårbare systemer, og få industrien til å ta initiativ til å komme med innspill i form av dialog. Vi trenger rett og slett mer informasjon fra flinke utviklere som jobber med større systemer, sier han.

Professoren mener IT-Norge må bli flinkere til å lage systemer som begrenser konsekvenser av feil. Han synes også at man må bli flinkere til å lære av feilstegene man tar, og dermed ha mulighet til å forbedre svake løsninger og systemer.

For mange monolitter

For blir feilen for stor, kan skaden bli så ille at systemet ikke overlever, mener han.

– Vi har en tendens til å lage monolitter - systemer der de forskjellige delene er helt avhengige av hverandre for å kjøre. Ta for eksempel Telenor. Der oppstod det en lokal feil  da de oppdaterte en server. De klarte ikke å svelge unna kontrolltrafikken som oppstod i systemet, og sørget på en måte for et tjenestenektangrep mot seg selv. Når man får en feilforplantning i et system som dette, så ender man opp med å krasje hele systemet, forklarer han.

Måten å løse den floken på ifølge Hole er ved å ha mer distribuerte løsninger.

– Første steg på veien er å oppdage lokale feil tidlig, og isolere den delen av systemet som skaper problemer. Det krever både redundans og diversitet, sier han.

Liten diversitet

I dag har vi nemlig en tendens til å kjøre bare ett operativsystem på serverparken - altså liten diversitet. Det gjør at feil forplanter seg veldig lett.  Med denne monokulturen er alle serverne er utsatt for samme sårbarhet. Går en server ned, går trolig en eller flere ned på grunn av samme feil.

Hadde man valgt å kjøre med flere forskjellige operativsystemer i bunn, ville man forhindret denne type sårbarhet, ifølge professoren.

– Men vi må også bli flinkere på redundans. Det er viktig at man har mulighet til å ta fyre opp en reserve ressurs som kan ta over så fort noe skjer.

Men slike distribuerte løsninger koster. Derfor er nettskyen en god løsning, mener professoren.

– Da kan man gjennomføre en del av disse designprinsippene uten at det koster skjorta. Vi snakker her om større nasjonale systemer. Et selskap vi har diskutert mye i boka er Netflix. De er interessert i å ha ekstremt høy oppetid. Derfor er de også verdensledende når det kommer til antifragile systemer. Går deler av systemet ned, vil ikke en gang kundene merke det.

Bør satse på mikrotjenester

Ifølge Hole opererer Netflix på mikrotjenester som er et spesialtilfelle av tjenesteorientert arkitektur.

– Disse mikrotjenestene er så enkle at de kan utvikles av en enkelt programmerer, siden tjenesten er så liten er det ikke et problem for en annen utvikler å sette seg inn i hvordan koden fungerer. Man kan dermed fyre opp koper av disse tjenestene, og dermed også skalere. Om man trenger å gjøre en forandring, er det veldig enkelt å bytte mikrotjenesten ut med ny versjon.  Dette gjør at man får et system som er konstant forandring, og på den måten oppfører seg stabilt.

Men å gå over til denne løsningen er ikke gjort over natten.

– En klassisk løsning for aktører som kjører med monolitter er å fase ut deler av monolitten over tid. De delene man faser ut går over på å kjøre mikrotjenester. Da får man et distrubiert system med masse tjenester som samarbeider om funksjonene. Da er det ikke noe problem om en prosess går ned. Det på vil nemlig ikke påvirke systemet som helhet. For at det skal være en mikrotjeneste må det være et distribuert system som består av forskjellige tjenester i et nettverk.

Det finnes ingen garantier

Men man har fortsatt ingen garanti for at systemet ikke vil knele.

– Nei, det har man ikke. Det spørs jo også litt på hvor paranoid man er. Om vi bruker Netflix som eksempel igjen, så er de ekstremt paranoide. En hel region kan gå ned, uten at kundene deres blir påvirket. Det kan de fordi de kjører tjenester i flere regioner. Går det en kabel, så vil jo tjenestene gå ned, men da har man mange andre problemer igjen. Det finnes selvfølgelig ingen garantier, men man kan minimere risikoen for nedetid ved å ha bedre redundans enn man har i dagens systemer.

Til toppen