Åbningen af Aarhus 2017...

... skabte hektisk aktivitet i maskinrummet hos Novicell

Det er nok gået de færrestes næse forbi, at Aarhus var på den anden ende lørdag den 21. januar, da Europæisk Kulturhovedstad 2017 blev skudt i gang med et brag. Novicell havde op til begivenheden udviklet spritnyt website og app til Aarhus 2017, og i åbningsweekenden skulle de begge stå deres prøve.

Godt klædt på

For at imødekomme den voldsomme trafik i forbindelse med åbningen af Aarhus 2017 havde Novicell beredskabet klar. Det er en helt naturlig forberedelse til opgaver i den størrelse, hvor det handler om at være på forkant, så man kan løse eventuelle problemer hurtigst muligt.

Ét af grebene i forberedelsen var at benytte et CDN (Content Delivery Network). Et CDN kan bedst beskrives som et skjold, der kan sættes op foran det oprindelige website. Alle de mange pludselige besøgende rammer skjoldet, hvor de ser en kopi af det oprindelige website. Vi brugte et CDN, der hedder Fastly.

Opsætningen er relativt simpel og fungerer ved, at man ved hjælp af DNS sender trafikken igennem Fastly’s servere. I og med at de besøgende ser en kopi af sitet, er det meget vigtigt, at man ikke kopierer dynamisk indhold ud til Fastly’s skjold-servere. Derfor flyttede vi ikke hele sitet, men lavede sammen med kunden en vurdering af, hvilke elementer der ville være statiske i det kommende døgn fra åbningsdagen, og disse flyttede vi i cachen til Fastly.

At det virkede efter hensigten viser et kig på tallene for åbningsweekenden, der viser, at Novicell leverede ca. 70 GB data til brugerne, mens Fastly tog ca. 500 GB!

Overvældende trafik

Kernen i den nye digitale platform er programmet med mere end 700 unikke events fordelt over hele året og hele Østjylland. Begivenhederne kan filtreres efter brugerens ønsker og rummer alt fra lysinstallationer til mørkespisning, fra børnearrangementer til rockkoncerter og meget mere.

Program-motoren hentes både til website, app og eksterne samarbejdspartneres platforme (fx jp.dk), og listerne med de mange events blev ikke cachet i fastly. I åbningsweekenden betød det, at der kom rigtig mange samtidige forespørgsler til API’et, som i udgangspunktet ikke var dimensioneret til at modtage så store mængder af trafik. Hele 13.200.000 requests fordelt på billeder, sider og filer havde sitet i løbet af lørdagen!

I den travleste periode lørdag aften var der 2.450 requests hvert eneste sekund, hvilket resulterede i, at serversetup’et ikke kunne følge med.

Herunder ses trafikken i åbningsweekenden fordelt på undersider. Det er tydeligt, at to ting har trukket mest interesse: Programmet og alt om åbningen:

Den overvældende trafik havde to uheldige konsekvenser: For det første gik websitet kortvarigt ned på grund af de mange forespørgsler. For det andet kunne folk, der downloadede app’en på dagen, ikke loade programmet, hvilket betød at folks første oplevelse med den nye app var dårlig.

Især app'en var presset under den meget intense interesse: Mere end 12.000 downloads i løbet af åbningsweekenden alene betød, at rigtig mange brugere skulle hente programmet samtidig, og det udfordrede opsætningen. Hvis app'en var blevet lanceret i bedre tid, kunne dette problem have været imødekommet, men det var desværre ikke muligt.

Nødvendig brandslukning

Fredag eftermiddag blev app'en lanceret samtidig med, at der kom meget trafik til jp.dk. Det betød, at vores forberedelser ikke rakte, og der var behov for yderligere caching, når det kom til app'en. Derfor tog vi en kopi af hele API'ets output til app'en, som vi udlæste til en statisk fil, som forespørgslerne kunne trække på. På den måde belastede vi ikke serveren med de mange forespørgsler fra app'en.

Det næste, vi gjorde, var at bruge en proxy server til at implementere et load balancing setup, hvor trafikken blev fordelt på flere servere i en såkaldt webfarm. Med dette kunne sitet håndtere op til 10 gange så mange samtidige besøgende, som der var forventet. Vi fangede dette screenshot i løbet af dagen, hvor tallet for samtidige besøgende peakede på mere end 4.100:

Proxy serveren betød også, at selv hvis sitet blev presset i knæ, ville nogle af brugerne stadig ramme det rigtige site, mens andre landede på en fallback-side. Selvom det selvfølgelig ikke er brugerens mål, giver det alligevel et indtryk af, at problemet er identificeret og vil blive løst. På den måde giver man brugeren noget konkret at forholde sig til, hvilket er vigtigt for den samlede oplevelse. 

5 anbefalinger til digital spidsbelastning

Vi har samlet 5 gode råd, som er relevante for dig, der ved, at din løsning vil blive udsat for stor belastning – fx omkring Black Friday, i forbindelse med stor eksponering, lancering eller noget helt fjerde. 

  1. Hav en klar strategi for din løsnings performance, og sørg for at rådføre dig med nogen, der har erfaring med spidsbelastning og betydningen af eksempelvis international bevågenhed.

  2. Lav en stresstest af din løsning, så du får en idé om, hvordan den reagerer, når presset bliver stort. Du kan fx bruge værktøjet blitz.io.

  3. Sørg for at lancere dine forskellige platforme i god tid før dit forventede peak. Hvis du fx kan sprede downloads af app og indhold ud over en længere periode, minimerer du risikoen for problemer ved overbelastning.

  4. Overvej, hvor din trafik kommer fra. Mange forskellige tredjeparts-kanaler kan sende trafik i din retning, fx omtale i tv eller på store eksterne sites. Men det kan også være et åbent API, der bliver kaldt fra samarbejdspartnere eller app.

  5. Monitorér din opsætning. Et moderne website består af mange forskellige komponenter, og når der er mange besøgende, så kan det være svært at udpege den eller de komponenter, som har sværest ved at holde til belastingen. Monitorering af de enkelte komponenter er derfor vigtigt - både hver for sig, men også korreleret, så man fx kan vurdere serverens belastning i forhold til antallet af besøgende. Detaljeret monitorering er en forudsætning for at finde flaskehalsene i applikationen.

Vi kigger fremad

Både kunde og leverandør har lært en masse af åbningsweekenden for Aarhus 2017. Nu glæder vi os til mange spændende kulturbegivenheder i løbet af året samt til nye tiltag på både app og website.