Skalering af e-commerce websites: Tilpas jeres serverkapacitet til trafikken

Mange e-commerce websites oplever varierende trafik set over et helt år. Der kan være store peaks omkring større kendte begivenheder som Black Friday, Mors dag eller jul. Det kan også opstå helt uventet, som nu hvor mange online supermarkeder, webapoteker mm. oplever øget trafik i kølvandet af coronakrisen. Omvendt kan der i andre perioder være markant mindre trafik. Så hvordan får du dig et setup, hvor du sikrer en god brugeroplevelse i peakperioder, uden at spilde penge på uudnyttet serverkapacitet resten af året? Det giver vi dig svaret på i dette blogindlæg.

  

Tænk skalering ind i infrastrukturen 

Et websites skalerbarhed afhænger i høj grad af dets infrastruktur – alle de underliggende systemer, der til sammen udgør websitet. Det kan være fx webservere, SQL-servere, ERP-system, søgemaskine, caching-servere, PIM-system og så videre.  

For mange e-handelsløsninger gælder det, at infrastrukturen slet ikke er bygget til skalering.  

For den gruppe gælder det, at de højst sandsynligt passer ind i en af følgende kategorier: 

  1. Setuppet er tilpasset til peakperioderne 
    Det har den fordel, at I kan følge med på Black Friday. Det er dejligt, at jeres site ikke bliver lagt ned, når tusindvis af købevillige besøgende ivrigt klikker varer i kurven. Til gengæld vil I opleve store perioder, hvor I har et alt for stort setup i forhold til den trafik, der reelt er på sitet. Det kan godt føles som lidt ærgerlige penge for en flok servere, der står slukket det meste af året. 
     
  1. Setuppet er tilpasset gennemsnitstrafikken 
    Her rækker kapaciteten til den trafik, der måles over de lange normalperioder. Det kan umiddelbart lyde som den økonomiske løsning, men det betyder også, at man i korte perioder vil have for få ressourcer. Her vil øget trafik give et langsommeligt website eller i værste fald få websitet til at gå ned. For at løse dét problem, vil der typisk være behov for opsætning af nyt hardware til nye servere, hvilket betyder en stor udskrivning og mange timers arbejde. 

Det skinner nok tydeligt igennem, at ingen af de to ovenstående løsninger er optimale.  

Men der er heldigvis et alternativ. 
 
Der er nemlig mulighed for at basere infrastrukturen på Cloud-løsninger fra fx Amazon, Google eller Microsoft Azure. I de tilfælde vil I være helt anderledes stillet, end med et statisk setup. I cloudløsninger har I nemlig muligheden for at skalere op og ned efter behov – uden tunge investeringer eller manuelt arbejde. 

Herunder vil give jeg et par eksempler på, hvor simpelt det er at tilføre yderligere ressourcer i Azure, hvis man pludselig oplever en markant øget trafik, og dermed får behovet for at skalere. 

Eksempel: Skalering af website med Microsoft Azure 

Alt dette foregår under Azure-portalen på https://portal.azure.com. Her har du et overblik over alle de servere, du har oprettet i Azure, og mulighed for at konfigurere og opsætte den enkelte webserver. 

Her bliver man mødt af to muligheder: Manual scale og custom autoscale.  

Manuel skalering: Ved at trække i en slider kan man tilføje flere webserver-instanser ved et simpelt tryk på “Save” i toppen af siden. På få minutter slår det igennem, og det er herefter muligt at kunne håndtere mange flere requests end hidtil. For at bruge den manuelle skalering, kræver det, at du selv har overblikket over dit behov. Det kan du fx se i længden på dine svartider, memoryforbruget og CPU-forbruget.  

Autoskalering: Med autoskalering er det muligt at lade Azure styre skaleringen, så der automatisk skaleres op eller ned efter behov. Det kan for eksempel gøres ved at opsætte specifikke regler, så der fx altid bliver skaleret ned til 1 webserverinstans om natten, hvor trafikken ofte er minimal. Et kig ind i trafikken er her en brugbar hjælp til at definere, hvornår der er peak- og offpeak-perioder over et døgn. 

 
I forhold til prisen for at opskalere i Azure, er der mange ting, der spiller ind. Du kan lege med Azures prisberegner her. Derudover er det vigtigt at nævne, at serverkapacitet afregnes per tidsforbrug. Det vil altså sige, at hvis du kun har kørt dobbelt kraft en enkelt dag, så er det altså kun den ene dag, du betaler dobbelt for. 

Eksempel: Skalering af database i Microsoft Azure 

Præcis som med webserver-instanser, er det også muligt at trække i en slider for at tilføje yderligere kraft til databaseserveren. Det foregår under selve konfigurationen af SQL server-databasen i Azure-portalen.  For Azure SQL Server er det også muligt at køre med automatisk skalering. 

 I Azure regnes kraften på SQL-serveren i DTU (data transaction units)

Skalering af andre systemer 

Når trafikken peaker på et website, vil der ofte være en lang række af systemer, der bliver berørte.  

Systemer som søgemaskine, cachinginstanser, ERP-systemer og lignende, vil altså ofte også have brug for at få tilført yderligere ressourcer.  

Heldigvis vil disse typisk være cloudbaserede og dermed have tilsvarende muligheder for skalering.  

Burde vi få en cloudbaseret løsning?

Hvis I i dag har en meget statisk infrastruktur, kan det være at du lige nu stiller dig selv ovenstående spørgsmål. Det simple svar er, at hvis I enten oplever peakperioder af og til, eller hvis I oplever støt voksende efterspørgsel, så er det en god idé at overveje en cloudbaseret løsning – som fx Azure.
 
Hvis du står tilbage med spørgsmål, så er du meget velkommen til at skrive dem i kommentarfeltet nedenfor. Her kan du også dele, hvis du har et andet tip til skalering af e-commerce websites.  

Categories: Backend

Skriv et svar