Vaihtoehdot Serverless Framework v4:lle
Serverless Framework on suosittu avoimen lähdekoodin työkalu, joka helpottaa serverless-sovellusten kehittämistä ja hallintaa pilviympäristöissä, kuten AWS:ssä. Vuoden 2024 lopussa Serverless Frameworkin v3 saavutti elinkaarensa päätepisteen, eikä siihen enää julkaista virallisia päivityksiä tai tietoturvakorjauksia. Uudemmassa v4 versiossa työkalu muuttui maksulliseksi organisaatioille, joiden liikevaihto on yli 2 miljoonaa dollaria vuodessa. Tämä muutos on saanut monet yritykset pohtimaan, miten jatkaa eteenpäin olemassa olevien serverless-sovellustensa kanssa.
Tässä kirjoituksessa tarkastelemme kolmea vaihtoehtoa Serverless Framework v4:lle: AWS Cloud Development Kit (CDK), AWS Serverless Application Model (SAM) ja OSS-Serverless. Käymme läpi niiden ominaisuuksia, vahvuuksia ja heikkouksia sekä pohdimme, mitä yritysten tulisi ottaa huomioon tehdessään päätöstä tähän liittyen. On myös syytä huomata, että näiden vaihtoehtojen lisäksi on olemassa muita työkaluja, jotka voivat soveltua yritysten tarpeisiin.
AWS Cloud Development Kit (CDK)
AWS CDK on AWS:n tarjoama IaC-työkalu, joka mahdollistaa resurssien hallinnan ohjelmointikielillä, kuten TypeScript, Python, Java, C# ja Go. Toisin kuin deklaratiivinen lähestymistapa, CDK tarjoaa dynaamisen ja joustavan tavan määritellä infrastruktuuri koodina.
Hyödyt:
- Ohjelmointikielipohjainen lähestymistapa, joka helpottaa kehittäjien työtä, sillä infrastruktuuria voidaan hallita tutuilla ohjelmointikielillä.
- Laajennettavuus – yritykset voivat rakentaa ja jakaa omia konstruktioita, mikä helpottaa standardien luomista ja hyväksi todettujen ratkaisujen uudelleen käyttöä.
- AWS:n virallinen tuki, mikä takaa pitkäaikaisen tuen ja kehityksen sekä saumattomat integraatiot AWS-ekosysteemiin.
Huomioitavaa:
- Oppimiskynnys voi olla korkea, erityisesti tiimeille, jotka ovat tottuneet deklaratiiviseen infrastruktuurin määrittelyyn.
- Monimutkaisuus kasvaa suurissa projekteissa, mikä vaatii tarkempaa suunnittelua ja ylläpitoa.
AWS Serverless Application Model (SAM)
AWS SAM on AWS:n tarjoama työkalu, joka laajentaa CloudFormationia ja mahdollistaa serverless-sovellusten määrittelyn YAML- tai JSON-muotoisilla templateilla. Se on suunniteltu yksinkertaistamaan AWS Lambda -pohjaisten sovellusten hallintaa.
Hyödyt:
- Helppokäyttöinen, erityisesti kehittäjille, jotka ovat jo tottuneet CloudFormationiin.
- Integroitu AWS-ekosysteemi, mikä takaa yhteensopivuuden ja jatkuvan tuen uusille ominaisuuksille
- Lokaali testausmahdollisuus, jonka avulla kehittäjät voivat testata Lambda-funktioita omalla koneellaan ennen AWS-pilveen vientiä.
Huomioitavaa:
- Rajoitettu laajennettavuus verrattuna CDK:hon, mikä rajoittaa monimutkaisempien sovellusten toteutusta.
- Vähemmän joustava, sillä deklaratiivinen konfigurointi on rajoitetumpaa kuin ohjelmointikielipohjainen lähestymistapa.
OSS-Serverless
OSS-Serverless (https://github.com/oss-serverless/serverless) on avoimen lähdekoodin projekti. Yhteisön ylläpitämä fork Serverless Frameworkin versiosta 3, joka pyrkii tarjoamaan saman käyttökokemuksen ja toiminnallisuuden ilman kaupallisia lisenssirajoituksia.
Hyödyt:
- Ilmainen ja avointa lähdekoodia, mikä tekee siitä kustannustehokkaan vaihtoehdon erityisesti pienille yrityksille.
- Tutut työkalut ja toimintamallit, mikä helpottaa siirtymää Serverless Framework v3:sta.
Huomioitavaa:
- Epävarmuus kehityksen jatkuvuudesta, sillä yhteisöpohjaisilla projekteilla ei ole AWS:n tai muiden kaupallisten toimijoiden tarjoamaa pitkäaikaista virallista tukea.
- Rajoitettu tuki, koska asiakastukea ei ole saatavilla.
Yhteenveto
Serverless Framework v3:n tuen päättyminen pakottaa yritykset arvioimaan uusia ratkaisuja serverless-sovellustensa hallintaan. Valinta riippuu pitkälti organisaation tarpeista ja resursseista. AWS CDK tarjoaa laajennettavan ja ohjelmointikielipohjaisen lähestymistavan, mutta sen käyttöönotto voi vaatia lisäresursseja ja oppimista. AWS SAM on selkeä ja helppokäyttöinen vaihtoehto, joka integroituu syvälle AWS-ekosysteemiin, mutta sen laajennettavuus on rajallisempi. OSS-Serverless puolestaan tarjoaa tutun käyttöympäristön ilman lisenssikustannuksia, mutta sen ylläpidon jatkuvuus on epävarmaa, koska se perustuu vapaaehtoiseen yhteisöön.
Lopullinen päätös tulisi tehdä yrityksen nykyisten työkalujen, osaamisen ja tulevaisuuden tarpeiden perusteella. Perusteellinen arviointi ja pitkän aikavälin strateginen suunnittelu auttavat valitsemaan ratkaisun, joka tukee organisaation kasvua ja kehitystä parhaalla mahdollisella tavalla.

Heikki Ma
Cloud Consultant, CloudOps Lead