Serverlessin yleisin vastavaite — kylmakaynnistys — on suurelta osin ratkaistu: Node.js ja Python jaavat alle 200 millisekunnin. Kun tekninen este poistuu, valinta palautuu siihen mihin sen olisi pitanyt perustua alusta asti: kustannuksiin ja kayttoprofiiliin.
Kustannusrakenteiden ero
Palvelin maksaa ajasta, jonka se on olemassa. Serverless-funktio maksaa ajasta, jonka se suorittaa.
Tama tarkoittaa, etta serverless voittaa selvasti epatasaisessa kuormassa ja havaia selvasti tasaisessa. Rajakohta on siella, missa funktion suoritusaika kerrottuna kutsumaaralla lahestyy palvelimen jatkuvaa kustannusta.
Milloin serverless on selvasti oikea
Epasaannollinen kuorma. Jaksottaiset ajot, harvoin kaytetyt sisaiset tyokalut, tapahtumapohjainen kasittely.
Voimakkaasti vaihteleva kuorma. Skaalautuminen nollasta huippuun ilman kapasiteettisuunnittelua on serverlessin vahvin argumentti.
Pienet, itsenaiset toiminnot. Webhookien vastaanotto, kuvien kasittely, ilmoitusten lahetys.
Milloin se ei ole
Tasainen korkea kuorma. Jatkuvasti ajossa oleva funktio maksaa enemman kuin vastaava palvelin.
Pitkat suoritukset. Laskutus perustuu suoritusaikaan, ja pitkakestoinen tyo on kalliimpaa kuin sama tyo palvelimella.
Raskaat alustukset. Jos funktio avaa tietokantayhteyden ja lataa suuren riippuvuuspuun joka kylmakaynnistyksella, kustannus tulee sielta.
Missa kylmakaynnistys yha haittaa
Ratkaistu ei ole poistunut. Kolme tapausta on yha merkityksellinen:
Synkroniset kayttajapolut, joissa viive on kriittinen — maksu tai kirjautuminen, jossa 200 millisekuntia on suoraan konversiosta pois.
Ketjutetut funktiot — viisi perakkaista funktiota kertaa kylmakaynnistykset.
Raskaat riippuvuuspuut — alusta on nopea, sovellus ei.
Suunnittelupaatokset, jotka vaikuttavat kustannukseen
Kevyt kehys. Uusissa API-toteutuksissa kevyt natiivi kasittelija tai Honon kaltainen kehys on nopeampi ja halvempi kuin Express Lambdalla — ja koska laskutus perustuu suoritusaikaan, nopeampi tarkoittaa suoraan halvempaa.
Pieni riippuvuuspuu. Vaikuttaa seka kylmakaynnistykseen etta suoritusaikaan.
Valmiiksi lammitetty kapasiteetti harkiten. Se poistaa osan serverlessin kustannuseduista ja on perusteltu vain kriittisilla synkronisilla poluilla.
Valinta kannattaa tehda kayttoprofiilin perusteella. Se on tylsempi peruste kuin arkkitehtuurikeskustelu, ja se on ainoa joka nakyy laskussa.