Vad är serverless?

Av Weapp · Uppdaterad

Serverless är en driftmodell där molnleverantören sköter servrarna åt dig och du betalar per körning i stället för per uppetid. Servrarna finns, men är inte ditt ansvar. Noll trafik kostar nära noll och toppar skalas automatiskt. Det passar händelsestyrda jobb och API:er med ojämn last, med kallstarter som en baksida.

Serverless dyker upp överallt i samtal om modern drift, men ordet är förvirrande – det låter som att servrar skulle ha försvunnit. Det har de inte. Här är vad serverless faktiskt betyder, hur ekonomin fungerar och när det är rätt val.

Servrar finns – men inte som ditt problem

Serverless är en driftmodell där molnleverantören tar hand om servrarna åt dig. Din kod körs fortfarande på riktiga servrar någonstans, men du behöver aldrig se dem, installera dem, uppdatera dem eller bekymra dig om att de ska orka med trafiken.

Namnet ska alltså läsas som “serverlöst för dig”, inte “utan servrar”. Skillnaden mot traditionell drift är vem som bär ansvaret. Har du en egen server måste du (eller din leverantör) hålla den vid liv, säker och lagom stor. Med serverless lämnar du bort allt det och tänker bara på din kod – leverantören ser till att den körs när den anropas och skalar automatiskt.

Det befriar teamet från en hel klass av arbete. Men den verkliga skillnaden märks i ekonomin.

Ekonomin: noll trafik kostar nära noll

Den kanske mest tilltalande egenskapen hos serverless är hur du betalar. I stället för att betala för kapacitet dygnet runt betalar du per körning – för det som faktiskt händer.

Konsekvensen är slående. En tjänst som ingen använder just nu kostar i praktiken nästan ingenting; det finns ingen server som tickar pengar i tomgång. Och när trafiken plötsligt kommer, kanske i en kraftig topp, skalar plattformen upp av sig själv och tar hand om belastningen. Du betalar för den toppen, men slipper både hålla dyr kapacitet i beredskap och riskera att tjänsten faller när det väl blir tryck.

SituationVad det kostar
Ingen trafikNära noll – inget står och kostar i tomgång
Plötslig toppSkalas upp automatiskt, du betalar för användningen
Jämn, mycket hög lastKan bli dyrare än en server igång dygnet runt

Baksidan finns i den nedersta raden: vid mycket hög och jämn trafik kan summan av alla små avgifter bli större än vad kapacitet du håller igång hade kostat. Serverless är billigt för det ojämna, inte automatiskt för allt.

Typiska användningsfall

Serverless lyser starkast där arbetslasten är händelsestyrd eller ojämn – där kapacitet annars mest hade stått och väntat.

  • Händelsestyrda jobb. Kod som ska köras när något inträffar: en fil laddas upp och ska bearbetas, en betalning kommer in och ska registreras, en rad läggs till och ska skickas vidare.
  • Schemalagda uppgifter. Ett nattligt jobb som sammanställer rapporter eller städar data. Det körs en gång per dygn – att hålla en server igång dygnet runt för det vore slöseri.
  • API:er med ojämn last. Ett gränssnitt vars trafik varierar kraftigt över dygnet eller veckan, där du vill slippa gissa kapacitet i förväg.

I alla dessa fall är matchningen naturlig: du betalar för arbete som faktiskt utförs, och slipper både överdimensionera och underdimensionera.

En not om kallstarter

En ärlig genomgång måste nämna kallstarter. När en serverless-funktion stått oanvänd en stund “somnar” den, och nästa anrop får väcka den – vilket ger en liten extra fördröjning innan koden svarar. Efter det är den snabb igen tills den åter får vila.

För ett bakgrundsjobb spelar det ingen roll om starten tar en stund extra. Men för en tjänst där en människa väntar på svar i realtid kan den där fördröjningen på det första anropet märkas, och det är värt att väga in. Det är sällan ett hinder, men det är en egenskap att känna till.

Sammantaget är serverless ett kraftfullt verktyg för rätt arbetslast, med en ekonomi som belönar det ojämna. Det ersätter inte traditionella servrar för allt – det är ett komplement som gör vissa saker billigare och enklare, och andra dyrare. Vill ni veta om det passar just era tjänster, tittar vi på Weapp gärna på driftmodellen tillsammans innan ni väljer väg.

Vanliga frågor

Betyder serverless att det inte finns några servrar?

Nej, och namnet är lite missvisande. Servrarna finns kvar och kör din kod, men de är molnleverantörens ansvar, inte ditt. Du behöver aldrig installera, uppdatera eller skala dem. Poängen är inte att servrarna försvinner, utan att de blir någon annans problem – du fokuserar bara på din kod.

Hur fungerar ekonomin i serverless?

Du betalar per körning i stället för för kapacitet dygnet runt. Står tjänsten stilla kostar den nära noll, och när trafiken kommer skalas den upp automatiskt och du betalar för just den användningen. Det gör serverless billigt för sådant som körs sällan eller ojämnt, och möjligheten till dyra överraskningar vid mycket hög, jämn last.

Vad passar serverless bäst för?

Händelsestyrda jobb och arbetslaster med ojämn belastning. Ett bakgrundsjobb som körs när en fil laddas upp, ett schemalagt nattjobb eller ett API vars trafik varierar kraftigt är typiska fall. Där kapaciteten annars mest hade stått och väntat lyser serverless, eftersom du bara betalar när något faktiskt händer.

Vad är en kallstart?

En kallstart är den fördröjning som uppstår när en serverless-funktion väcks efter att ha stått oanvänd. Första anropet får vänta lite extra medan koden startas upp. För bakgrundsjobb märks det inte, men för en tjänst där användaren väntar på svar i realtid kan den där extra fördröjningen vara märkbar.

Är serverless alltid billigare än vanliga servrar?

Nej. Det är billigt vid låg eller ojämn last, men vid hög och jämn trafik kan summan av alla per-körning-avgifter bli dyrare än en server som är igång konstant. Vilket som lönar sig avgörs av lastens form, så det är värt att räkna på det faktiska mönstret innan man väljer.