Samordna opptak er en tjeneste som brukes av de fleste som søker opptak til høyere utdanning i Norge, og stort sett er den i bruk to ganger i året, fortalte utvikler i Sikt, Karl Yngve Lervåg, i en lyntale på JavaZone denne uken.
– Tjenesten er i bruk et par dager i april, og på sommeren når folk får svar.
Det betyr at lasten er svært ujevnt fordelt, og at utviklerne som jobber med Samordna opptak-løsningen jobber med kode og systemer lenge mellom hver gang de blir utsatt for mye trafikk.
– Folk har også en tendens til å utsette ting til siste øyeblikk, fortalte Lervåg fra scenen.
Simulerer trafikktopper
I lyntalen, som du kan se video av på JavaZones Vimeo-profil, fortalte Lervåg hvordan de brukte testverktøyet Gatling til å skrive lasttester.
– Vi har hatt en lasttestprosedyre for å forsikre oss om at ting fungerer når det skal.
Ved hjelp av Gatling setter utviklerne opp ulike scenarioer der de beskriver en "brukerreise" som simulerer hva en bruker gjør, rett på API-endepunktene. Slik kan de si at de for eksempel vil simulere 300 brukere i minuttet i fem minutter. Og så kan de definere grenser for hva som er godkjent ytelse – for eksempel at responstider skal være lavere enn en gitt grense.
Etter at lasttestene er kjørt, får man ut rapporter der man kan se på detaljer for hvert endepunkt, hvilke kall som er trege, og så videre.
– Den gir oss en god oversikt over den totale ytelsen til systemet.
Har automatisert testingen
Lervåg kunne varmt anbefale open source-løsningen Gatling til andre som hadde behov for lasttesting. Den er heller ikke spesielt vanskelig å komme igang med, mente han.
Gjennomføringen av testene har likevel tatt en del tid, med mange manuelle rutiner og mye som skal koordineres. Når ting gjøres manuelt blir det også viktig med rapportering.
– For akkurat dette med lasttesting, tenkte vi – er dette nødvendig, kan vi gjøre det enklere? sa Lervåg.
«Vi har gått fra en omstendelig prosess med masse rapportskriving, til noe som bare fungerer og gjør alt for oss. Det er veldig deilig.»
Dermed begynte de arbeidet med å automatisere lasttestingen. Kort fortalt så man tatt i bruk GitLab pipelines for å automatisere lasttestene.
– Hvis lasttesten feiler, så har vi en jobb som varsler oss på Slack, fortalte Lervåg.
På den måten holdes teamet oppdatert hele tiden hvis lasttestene skulle feile. Og risikoen for ytelsesutfordringer er mindre når alle logger seg på Samordna opptak samtidig – to ganger i året.
– Vi har gått fra en omstendelig prosess med masse rapportskriving, til noe som bare fungerer og gjør alt for oss. Det er veldig deilig, sa Lervåg.
Sjekk hele lyntalen her.