Palasin mielessäni aikaan, jolloin serverless ei auennut millään, ja kysyin ääneen kaikki ne kysymykset, joita silloin pyörittelin.

Katosivatko palvelimet? Velhon paljastus

🧙‍♂️ (professori) “🐣, tänään perehdymme serverlessiin. Nimi kuulostaa taialta, joka haihduttaa palvelimet savuna ilmaan, mutta todellisuus on maanläheisempi ja silti syvä.”

🐣 (opiskelija) “Ei palvelimia lainkaan? Huusitko vain kuin Harry Potter: ‘Palvelimet, poistukaa!’ ja ne katosivat?”

🧙‍♂️ (professori) “Haha, juuri sen 90 % ihmisistä kuvittelee aluksi! Oikeasti palvelimet ahkeroivat pilven uumenissa. Sinun ei vain tarvitse ajatella niitä.”

🐣 (opiskelija) “Eli huijausta. Kuin vihannekset, joissa lukee ‘ilman torjunta-aineita’, vaikka pellon laidalla roiskitaan kaikkea mahdollista.”

🧙‍♂️ (professori) “Vertaus on yllättävä, mutta osuva. Serverlessin ’less’ tarkoittaa ‘vähemmän hallintaa’. Ennen palvelin oli kuin lemmikki: asensit käyttöjärjestelmän, hoidit viat ja ruokit sitä yötä päivää. Serverlessissä pilvipalvelu hoitaa kaiken tuon puolestasi.”

🐣 (opiskelija) “Hamsterin kuollessa itkettää, mutta palvelimen kaatuessa asiakkaat huutavat. Vielä pahempaa.”

🧙‍♂️ (professori) “Ja toisin kuin hamsteri, palvelin soittaa sinulle kolmelta aamulla: ‘Tietokanta ei vastaa.’”


📌 Huomio: serverlessin perusidea Serverless ei tarkoita, että palvelimia ei olisi, vaan että pilvipalvelun tarjoaja hallinnoi niitä puolestasi.

  • Perinteinen malli: ostat, ylläpidät ja valvot palvelimet itse.
  • Serverless: tarjoaja hoitaa infrastruktuurin ja sinä keskityt koodiin.

Miten serverless toimii: ninjat, jotka ilmestyvät kutsusta

🐣 (opiskelija) “Vaikuttaa hankalalta käyttää. Miten se eroaa tavallisesta palvelimesta?”

🧙‍♂️ (professori) “Serverless käynnistyy, kun sitä kutsutaan, tekee työn ja katoaa. Sovelluksen pitää olla pikamatkan juoksija, ei maratoonari.”

🐣 (opiskelija) “Eli kun huudamme ‘Laske tämä heti!’, se ilmestyy, ja kun sanomme ‘Valmis’, se häviää?”

🧙‍♂️ (professori) “Aivan — kuin ninja, joka tulee vain kutsusta. Kun ninja on piilossa, et maksa tyhjäkäynnistä vuokraa.”

🐣 (opiskelija) “Mutta ninjat ilmestyvät eri paikoista. Entä IP-osoite?”

🧙‍♂️ (professori) “Hyvä kysymys. Vakiopaikkaa ei ole. Jokaisella kutsulla palvelin voi vaihtua, joten pilven API gateway toimii kuin kylän portinvartija ja ohjaa pyynnöt sille ninjalle, joka on hereillä.”

🐣 (opiskelija) “Jos ninja vaihtuu, se ei muista edellistä tehtävää.”

🧙‍♂️ (professori) “Juuri näin. Siksi serverless on stateless. Et voi jatkaa lausetta ‘jatketaan eilisestä’ — jokainen kohtaaminen alkaa ‘hauska tavata’ -tasolta kuin kultakalalla.”

🐣 (opiskelija) “Tuo on epäkäytännöllistä. Miten kirjautumiset tai sessiot hoidetaan?”

🧙‍♂️ (professori) “Tallennetaan tila ulkoiseen tietokantaan tai Redisiin. Ninja ei kanna muistia mukanaan, vaan tallettaa tärkeät rullat arkistoon.”


📌 Huomio: tilattoman suunnittelun merkitys Serverless-funktio käynnistyy joka kerta uudessa kontissa, joten paikallinen tila (muuttujat, tiedostot, sessiot) katoaa.

  • Tilan hallinta: käytä ulkoista tietokantaa, Redis-palvelua tai objektivarastoa.
  • Sessio: säilö JWT-tunnisteena tai ulkoiseen tallennukseen.
  • Tiedostot: muu kuin väliaikainen käsittely vaatii ulkoisen tallennuksen.

Ero perinteiseen: lemmikki vastaan ninja

🐣 (opiskelija) “Anna konkreettinen vertailu.”

🧙‍♂️ (professori) “Kuvitellaan kuvien lataus, joka tekee esikatselukuvat. Perinteisessä mallissa pidät palvelimen käynnissä 24/7 kuiskimassa ’tuliko jo kuvia?’. Se kuluttaa sähköä ja voi kaatua.”

🐣 (opiskelija) “Kuin vartija, joka seisoo ovella ikuisesti.”

🧙‍♂️ (professori) “Juuri niin, ja vartija voi vilustua. Serverlessissä kello kilahtaa, ninja ilmestyy, tekee esikatselun ja katoaa.”

🐣 (opiskelija) “Eikö ninja joskus viivy liian pitkään ennen kuin saapuu?”

🧙‍♂️ (professori) “Siitä puhutaan kylmäkäynnistyksenä. Jos kieli on raskas, kuten Java, ninja kömpii hereille hitaasti.”

🐣 (opiskelija) “Kuulostaa turhauttavalta. Ei siis sovi reaaliaikaan?”

🧙‍♂️ (professori) “Lämmittelyä voi tehdä, mutta serverless loistaa erissä ja asynkronisissa töissä. ‘Vastaa heti!’ ei ole sen vahvuus.”


Esimerkin kautta: valokuvien jakopalvelu

🐣 (opiskelija) “Selitä esimerkillä. Entä jos teen kuvien jakopalvelun?”

🧙‍♂️ (professori) “Hyvä valinta. Perinteinen malli näyttää tältä:”

Perinteinen palvelin:

24/7 pyörivä web-palvelin (5000 ¥ / kk)
↓
"Kuva ladattu"
↓
Esikatselukuvan luonti palvelimessa
↓
Tallennus tietokantaan

🧙‍♂️ (professori) “Tällä tavalla maksat 5000 jeniä silloinkin, kun kukaan ei lataa mitään. Kuin vuokralainen, jolla ei ole asiakkaita.”

🐣 (opiskelija) “Tuntuu tuhlaukselta.”

🧙‍♂️ (professori) “Serverless-versio toimii näin:”

Serverless-malli:

Kuva tallennetaan S3:een
↓
S3 laukaisee Lambda-funktion
↓
Lambda käynnistyy (0,1 s)
↓
Esikatselu luodaan ja tallennetaan toiseen S3-säiliöön
↓
Lambda katoaa
↓
Laskutus: vain ajasta (noin 0,001 ¥ / kerta)

🐣 (opiskelija) “Eli jos kukaan ei käytä, ei makseta?”

🧙‍♂️ (professori) “Juuri niin! Käyttö maksaa. Mutta jos video räjähtää viraaliksi, myös lasku räjähtää. Sata tuhatta kertaa tarkoittaa…”

🐣 (opiskelija) “Tuhannen jenin laskua!”

🧙‍♂️ (professori) “Laskit oikein, mutta siihen tulee lisäksi siirtomaksut, API Gateway ja tietokanta. Yhtäkkiä puhutaan kymmenistä tuhansista jeneistä. ‘Viraali ja vararikko’ on moderni tragedia.”


📌 Huomio: käyttöperusteisen hinnoittelun plussat ja riskit

Hyödyt

  • Lähes nollan alkuinvestointi.
  • Automaattinen skaalaus käytön mukaan.
  • Ei infrastruktuurin ylläpitoa.

Riskit

  • Odottamattoman suuret laskut (erityisesti viraaleissa piikeissä).
  • Hinnoittelun monimutkaisuus.
  • Useiden palvelujen yhdistelmä hämärtää kokonaiskustannusta.

Torjunta

  • Aseta laskutus- ja käyttövaroitukset.
  • Toteuta rajoittimet ja kvotat.
  • Tee kuormitustestit ja kustannusarviot etukäteen.

Serverlessin lajityypit: erikoistuneet ninjat

🐣 (opiskelija) “Olen kuullut, että serverlessissä on eri tyyppejä?”

🧙‍♂️ (professori) “Kolme päälinjaa: FaaS (Function as a Service), BaaS (Backend as a Service) ja serverless-kontit.”

🐣 (opiskelija) “FaaS on…?”

🧙‍♂️ (professori) “‘Me ajamme funktiosi’ -palvelu: AWS Lambda, Google Cloud Functions, Azure Functions. Toimitat funktion, he ajavat sen pyynnöstä ja laskuttavat suoritusajasta kuin sushibaari lautasista.”

🐣 (opiskelija) “Entä BaaS?”

🧙‍♂️ (professori) “‘Me hoidamme backendisi’ -malli: Firebase, Supabase, AWS Amplify. Kuin asuisit vanhemmilla — he laittavat ruoan, siivoavat ja muistuttavat kotiintuloajasta.”

🐣 (opiskelija) “Kotona on helppoa, mutta talon säännöt sitovat.”

🧙‍♂️ (professori) “Aivan. Vendor lock-in voi iskeä: huomaat yhtäkkiä, ettet pärjää ilman palvelua.”


Vahvuudet ja heikkoudet

🐣 (opiskelija) “Miksi serverlessiin vaivautuisi?”

🧙‍♂️ (professori) “Nopeuden vuoksi. Voit julkaista idean yön yli ja maksaa murusia, kun liikenne on pientä.”

🐣 (opiskelija) “Mutta kaikki työkuormat eivät sovi siihen.”

🧙‍♂️ (professori) “Oikein. Serverlessillä on selkeät plussat ja miinukset.”

Vahvuudet:

  • Kuvankäsittely (lataus → esikatselu).
  • Datan muunnos (CSV → JSON).
  • Ilmoitukset (sähköposti, push).
  • Ajastetut erät (päivittäiset raportit).
  • Kevyet API:t (käyttäjähaku, datan nouto).

Heikkoudet:

  • Reaaliaikainen viestintä (chatit, pelit).
  • Pitkät ajot (videon enkoodaus, raskas ML).
  • Sovellukset, jotka vaativat monimutkaista tilaa.
  • Tiukasti kytketyt legacy-integraatiot.

🐣 (opiskelija) “Eli nopeaa suorituskykyä, ei kestävyyttä.”

🧙‍♂️ (professori) “Täsmälleen — sadan metrin spurtteihin erinomainen, maratoneihin kehno.”


Laskutusansat: tuntipalkkaiset ninjat

🐣 (opiskelija) “Eli fiksut insinöörit voittavat ja raakavoima jää jalkoihin? Lasku voi tappaa?”

🧙‍♂️ (professori) “Hyvin tiivistetty. Serverless palkitsee huolellisen suunnittelun ja rankaisee huolimattomuutta.”

🐣 (opiskelija) “Millaista huolimattomuutta?”

🧙‍♂️ (professori) “Ajattele ääretöntä silmukkaa. Perinteisessä palvelimessa suoritus hidastuu. Serverlessissä syntyy loputon ninja-armeija.”

🐣 (opiskelija) “Ninjat, jotka lähettävät laskun tunnin välein? Painajainen.”

🧙‍♂️ (professori) “Huomaat sen vasta kuukauden lopussa: ‘Miksi tämä on miljoona jeniä?’ AWS:llä on oikeita tapauksia, joissa lasku nousi satoihin tuhansiin.”

🐣 (opiskelija) “Voiko suojautua?”

🧙‍♂️ (professori) “Totta kai. Aseta laskuhälytykset, rajoita suorituksia ja katto yhtäaikaisille ajokerroille. Se on kuin kirjoittaisi ninjoille työsopimuksen.”


Todellisia epäonnistumisia: kun viraali kääntyy kohtaloksi

🐣 (opiskelija) “Oletko nähnyt oikeita kauhutarinoita?”

🧙‍♂️ (professori) “Monia. Yksi klassikko: kuvia parantava sovellus odotti kustannukseksi 0,1 jeniä per kuva.”

🐣 (opiskelija) “Arvaan — siitä tuli viraalihitti?”

🧙‍♂️ (professori) “Juuri niin. Miljoona kuvaa päivässä, jokainen odotettua hitaampi, joten todellinen hinta oli 3 jeniä per kuva.”

🐣 (opiskelija) “Miljoona kertaa kolme on kolme miljoonaa jeniä.”

🧙‍♂️ (professori) “Ja sitä jatkui 30 päivää. Heistä tuli kuuluisia ja vararikkoisia yhtä aikaa.”

🐣 (opiskelija) “Eikö mitään rajoja?”

🧙‍♂️ (professori) “Ei kustannuskattoa. He eivät koskaan kuvitelleet niin suurta menestystä. Nykyisin kustannusten yläraja on vakioharjoitus.”

🐣 (opiskelija) “Menestys katolla — ironista.”

🧙‍♂️ (professori) “‘Hyvä ongelma’ on silti ongelma.”


Kehittäjäkokemus: hurmaava taika, kivuliaat rajat

🐣 (opiskelija) “Miltä serverless-kehitys tuntuu?”

🧙‍♂️ (professori) “Aluksi taianomaiselta. Kirjoitat funktion, painat deployta, ja se on käytössä ympäri maailmaa.”

🐣 (opiskelija) “Kuulostaa koukuttavalta.”

🧙‍♂️ (professori) “Sitten todellisuus lyö. Paikallinen testaus on hankalaa, debuggaus sekavaa. Kun jokin kaatuu, ninja on jo kadonnut ja jäljet ovat hajallaan CloudWatchissa, X-Rayssa ja CloudTrailissa.”

🐣 (opiskelija) “Kuin saapuisi rikospaikalle, kun tekijä on jo mennyt.”

🧙‍♂️ (professori) “Juuri niin, ja vihjeet ovat ripoteltu eri palveluihin.”

🐣 (opiskelija) “Siinä vaiheessa miksei aja tavallista palvelinta?”

🧙‍♂️ (professori) “Siinä on ansa. Serverless alkaa lumouksena ja muuttuu kiroukseksi, mutta kun olet maistanut ’ei palvelinylläpitoa’, paluu tuntuu tuskalta.”

🐣 (opiskelija) “Eli siihen jää koukkuun.”

🧙‍♂️ (professori) “Kyllä. Vaihdat palvelinhuolen laskutuskipuun ja suunnittelurajoihin.”


Serverless vs. perinteinen: kustannustodellisuus

🐣 (opiskelija) “Kumpi on halvempi?”

🧙‍♂️ (professori) “Riippuu käytöstä ja ennustettavuudesta. Kuvittele kaksi käyrää.”

Perinteinen palvelin

  • Kiinteä kulu: noin 50 000 jeniä kuussa.
  • Muuttuva kulu: vähäinen.
  • Ravintolavertaus: kiinteähintainen menu.

Serverless

  • Kiinteä kulu: lähes nolla.
  • Muuttuva kulu: kasvaa käytön myötä.
  • Ravintolavertaus: sushibaari, jossa maksetaan lautasista.

🐣 (opiskelija) “Riippuu siis ruokahalusta.”

🧙‍♂️ (professori) “Täsmälleen. Nyrkkisääntö:”

Alle miljoona pyyntöä kuussa: serverless on selvästi halvempi.

Yli kymmenen miljoonaa kuussa: perinteinen palvelin voittaa.

Siltä väliltä: tapauskohtaista — huomioi myös ylläpitotyö.

🐣 (opiskelija) “Entä jos ennuste menee pieleen?”

🧙‍♂️ (professori) “Silloin tilaat väärin: varaat juhla-aterian ja ruokahalu katoaa, tai odotat pientä iltapalaa ja ovesta vyöryy nälkäinen väki.”


Voittaako serverless?

🐣 (opiskelija) “Onko serverless tuomittu voittamaan vai häviämään?”

🧙‍♂️ (professori) “Ei kumpaakaan. Perinteiset palvelimet, kontit ja serverless elävät rinnakkain, kukin omassa roolissaan. Tarvitsemme ritareita, ninjoja ja velhoja yhtä aikaa.”

🐣 (opiskelija) “Yksi teknologia ei ratkaise kaikkea.”

🧙‍♂️ (professori) “Juuri niin. Hopealuotia ei ole, mutta serverless on voimakas oikeassa käytössä.”

🐣 (opiskelija) “Kenelle se sopii?”

🧙‍♂️ (professori) “Mieti näitä persoonia:”

Serverless sopii niille, jotka:

  • Haluavat julkaista prototyyppejä nopeasti.
  • Ymmärtävät laskentakaavat ja hinnoittelun.
  • Arvostavat mukavuutta tarkkaa hallintaa enemmän.
  • Nauttivat uuden teknologian kokeilusta.

Serverless ei sovi niille, jotka:

  • Haluavat hallita kaikkea käsin.
  • Kamppailevat budjetin kanssa.
  • Asettavat tinkimättömän vakauden ykköseksi.
  • Ovat kiinni tiukasti kytketyissä legacy-järjestelmissä.

🐣 (opiskelija) “Eli sopii säästäväisille uudistajille.”

🧙‍♂️ (professori) “Hyvin kiteytetty. Tarvitaan sekä kekseliäisyyttä että säästäväisyyttä.”


Loppusanat: elä serverless-tapaa

🐣 (opiskelija) “Suositteletko serverlessiä?”

🧙‍♂️ (professori) “En sano ‘kaikkien on käytettävä sitä’. Sanon ‘opettele ja ota harkiten käyttöön’. Serverless tasapainottelee houkutuksen ja riskin veitsenterällä.”

🐣 (opiskelija) “Loitsut osuvat omaan nilkkaan, jos ne lausuu väärin.”

🧙‍♂️ (professori) “Täsmälleen. Se palkitsee ajattelevan insinöörin ja rankaisee turtuneisuutta. Raalla voimalla tätä ei murreta — käytä päätäsi, niin se on ase.”

🐣 (opiskelija) “Siis:”

  • “Palvelinten ylläpito on raakavoiman harjoitusleiri.”
  • “Serverless on selviytymispeli, jossa äly pitää laskun kurissa.”

🧙‍♂️ (professori) “Täydellistä. Sinun pitää päättää, oletko ritari, ninja vai velho. Sivussa istuminen ei enää onnistu.”

🐣 (opiskelija) “Ymmärretty. Ensin perusteet, sitten ninjataidot.”

🧙‍♂️ (professori) “Tuolla asenteella sinusta tulee kelpo ninjavalmentaja. Muista vain tarkkailla laskuja.”

🐣 (opiskelija) “Teen niin. Laskutusvaroitukset korkeimmalle prioriteetille!”


📌 Lopullinen muistilista: näin arvioit serverlessiä

Kun mietit, sopiiko serverless, punnitse seuraavat tekijät:

Tekniset näkökulmat

  • Työkuorman tyyppi (erä vs. reaaliaika).
  • Kutsutiheys (matala vs. korkea).
  • Tarve pysyvälle tilalle.
  • Yhteensopivuus legacy-järjestelmien kanssa.

Liiketoimintanäkökulmat

  • Saatavilla oleva etupään budjetti.
  • Operointitiimin osaaminen.
  • Luottamus kasvuennusteisiin.
  • Sietokyky toimittajalukolle.

Yhteenveto: serverless ei ole universaali lääke. Se on erikoistunut tekniikka, joka loistaa oikeissa olosuhteissa. Oikealla ymmärryksellä ja valmistelulla siitä tulee voimakas ase; sokkona käytettynä se avaa oven tuhoisiin laskuihin.

Modernin insinöörin työkalupakissa serverlessillä on paikkansa — ei joka tilanteen ratkaisuna, vaan teknologiana, joka otetaan käyttöön viisaasti.