torsdag 24. mars 2011

Hvorfor Altinn-serverne fikk trøbbel!

Altinn serverne til Brønnøysundregistrene gikk ned under press fra brukerne, til tross for rigide testprosesser, ytelsestester, og nasjonale eksperter fra Accenture og Basefarm på høyytelsessystemer. Hvordan er det mulig? Og hvorfor finner de ikke feilene?

Nettavisene og venner på Facebook og Twitter klager på Basefarm som drifter serverne, uten å vite årsakene til feilene. Personlig erfaring fra lignende systemer har lært meg at feilene veldig sjeldent ligger hos driftsleverandøren, men oftest ligger i programvaren/arkitekturen og deres samspill med maskinvaren ved ekstrem belastning.

Systemer som Altinn består av mange ulike servere og programvaresnutter som kommuniserer med hverandre. Databaser, 3dje parts programvare, webservere, casheløsninger, autentiseringsprogramvare og filservere er alle avhengig av hverandre, og dersom en feiler vil det spre seg til alle avhengige løsninger. En liten programmeringssnutt kan oppføre seg helt normalt, helt til brukerne logger seg på i tusentall per minutt. Den lille snutten med feil vil henge noen få mikrosekunder, før andre avhengige programeringssnutter også stopper opp. En driftsansvarlig vil se at hele systemet henger, og vet ikke hvilken av de hundretalls ulike komponenter feilen først oppsto i. Dermed starter detektivarbeidet med å finne årsaken til feilen.

Brønnøysundregistrene har sannsynligvis i perioden rettet mange symptomer, og dermed optimalisert løsningen gradvis. Men de har fortsatt ikke funnet den egentlige feilen, dersom en slik årsak finnes. De har heller ikke lyktes med å gjenskape feilen i eget testmiljø, da den kun oppstår under høyt trykk i produksjonsmiljøet (og da kun 1 gang i året ved slipp av ligningen).

Tradisjonell organisering av utvikling/driftsmiljøet vil også komplisere feilsøkingsarbeidet. De fleste selskaper er basert på en mistillit mellom utviklerne og drift. Utviklerne sitter i et utviklingsmiljø, og leverer sin kode over til et testteam noen måneder før lansering. Et eget testteam vil gjennomteste løsningen, og når den er funnet OK overleveres koden til drift. De fleste utviklerne kjenner derfor ikke til driftsmiljøet, og har ikke tilgang til produksjonsserverne. Dette er det kun drifterne som har, som ofte består av personer som IKKE har utviklet løsningen. Å nekte utvikling tilgang til produksjon er ofte krav fra drift skal de være i stand til å levere en oppetidsgaranti (Basefarm kan ikke love noe så lenge fremmede ressurser klår på produksjonsserverne). Dermed blir det en kløft mellom utviklermiljøet og driftsmiljøet, og det blir veldig vanskelig å finne denne sannsynligvis programvareinitierte feilen.

Les også: Utvikling er enkelt, det er drift som er vanskelig!

Eneste mulighet for å finne feilen er dermed et samarbeid mellom drift og utvikling. Man må installere analyseverktøy på serverne, og med kunnskap i programvare og hvordan denne påvirker maskinvaren kan man sakte men sikkert finne årsaken til feilen. Slike programvare/maskinvareressurser er ofte en mangelvare i de fleste driftsmiljøer grunnet organiseringsformen og kløfta mellom drift og utvikling.

Jeg vil dermed ønske Brønnøysundregistrene lykke til i feilsøkingen, og håper at dette blir en motivasjon for å endre testrutiner og bryte barrierene mellom ulike kompetanseområder.

Selv har jeg ingen tilkobling til Brønnøysundregistrene, Accenture eller Basefarm, og dette er en generell kommentar til driftstrøbbelet.

4 kommentarer:

  1. Hvor fikk jeg NAV fra? Well, oppdatert med rett eier: Brønnøysundregistrene. Takk til de som så dette!

    SvarSlett
  2. Med Moore's lov må jo "den lille snutten med feil" som henger noen få mikrosekunder bli stadig mer snutten. I Televerket hiver vi båndbredde på "trafikk-snutter med issues", burde funke for introverte programmerere også, men neida...

    SvarSlett
  3. jojo.... maskinvare bør jo fungere det, men tidvis vil slike snutter spise alt som er tilgjengelig av ram og cpu, noe jeg skjønner skjer hos Altinn i disse dager. Men nå har de fleste brukerne fått gjort jobben sin, og etatene ansvarlig for Altinn har 1 år på å piske underleverandørene til å løse problemet!

    SvarSlett
  4. Vil tro at dine antagelser her nok er korrekte.
    Jeg tror det er flere nyanser her. Personlig vil jeg anta at Brønnøysundregistrene mangler en fast ansatt løsningseier, som har totaloversikten, god teknisk kompetanse, og ikke minst føler en dyp personlig forpliktelse og engasjement for at systemet fungerer. Å konkurranseutsette hele implementasjonen av en kompleks løsning som Altinn er å be om trøbbel. Dersom organisasjonen kun sitter igjen med kravstiller kompetansen ved overgangen til produksjon er løpet egentlig kjørt...

    SvarSlett