Serverless computing: wanneer is het slim en wanneer niet?

Serverless computing ontpopte zich razendsnel tot een volwassen consumptiemodel in de cloud. We kloppen echter niet aan bij Amazon, Google of Microsoft, maar schuiven aan tafel bij een lokaal team van ontwikkelaars in het Gentse, om te ontdekken wat voor meerwaarde serverless echt biedt.

Serverless computing is de logische thesis van pay-per-use-consumptiemodellen, de public cloud en virtualisatie. In plaats van servercapaciteit te huren in de cloud, en die eventueel op te schalen, teken je in op een model waarbij applicaties online draaien en automatisch worden voorzien van de nodige rekenkracht. De cloudprovider neemt de allocatie van systeembronnen voor z’n rekening. Draait een app niet? Dan betaal je niets. Wanneer de vraag naar capaciteit plots stijgt, zorgt de provider voor de nodige rekenkracht, opslag en het nodige geheugen.

Flexibiliteit

Een dergelijk model biedt de ultieme flexibiliteit en daar ziet Bart Chanet, mede-oprichter van het onlinebureau Dreams & Creations wel wat in. Hij catert met een team van ontwikkelaars aan tal van organisaties en bouwt applicaties op aanvraag. Dreams & Creations staat bovendien mee in voor het management en de hosting van die apps.

De projecten waar Chanet aan werkt, hebben vaak een erg wispelturige load doorheen het jaar. Zo bouwde het bedrijf in het kader van het Sportkompas-project van de Universiteit Gent twee eenvoudige applicaties: iLike en iDo. Op de eerste applicatie zien kinderen activiteiten en moeten ze aangeven of ze die leuk vinden of niet. De andere app koppelt fysieke proeven aan de resultaten van de eerste test. Doel is om kinderen te oriënteren richting sporten die hen op het lijf geschreven staan, maar misschien niet zo voor de hand liggen.

Provisioneren voor piekmomenten

“De tests worden doorgaans in periodes afgenomen”, vertelt Chanet. “Tijdens de testperiode is het gebruik van de app erg intens, maar daarna valt het naar niets terug.”  Pas ging Chanet de applicatie nog in Singapore voorstellen, waar er in één keer 20.000 kinderen inlogden. Een week later werd de applicatie welgeteld nul keer gebruikt.

 

iLike is ontwikkeld als test die op klasbasis gezamenlijk wordt ingevuld en zo piekbelasting genereert. Tussen die invulsessies door is de app beschikbaar voor geïnteresseerden, maar is de belasting erg laag.

Het probleem van een dergelijke workload is dat je on-premises dient te provisioneren voor de piek en dus veel meer hardware moet plaatsen dan nodig voor het grootste deel van het jaar. Via een traditioneel cloudmodel kan je opteren voor een lichte server en schakelen tijdens piekmomenten, maar dat vereist doorgaans enige voorzienigheid en is bovendien nog steeds niet ideaal, aangezien zelfs de lichtste server overkill is wanneer een app niet wordt gebruikt.

Serverless biedt hier dan de perfecte oplossing. Wordt een app niet gebruikt, dan is de rekening nul. Melden plots 20.000 mensen aan, dan is de nodige rekenkracht meteen beschikbaar. Chanet beseft wel dat de keuze voor serverless weloverwogen dient te zijn.

Voor specifieke scenario’s

“Serverless computing is niet de juiste oplossing voor constante loads, of ze nu zwaar of licht zijn.” Logisch, want die kan je veel nauwkeuriger provisioneren. “De voordelen steken de kop op bij erg flexibele workloads, waarbij er een groot verschil is tussen piek- en dalbelasting.” Dreams & Creations heeft verschillende klanten waarbij dergelijke flexibele workloads vaak aan bod komen, wat de focus op serverless verklaart.

 

“De voordelen steken de kop op bij erg flexibele workloads, waarbij er een groot verschil is tussen piek- en dalbelasting.”

 

Zodra de aanpak is gedefinieerd als financieel en functioneel interessant, zijn er echter nog enkele andere bedenkingen. De belangrijkste is vendor lock-in. Chanet heeft daarbij ingetekend op Amazon Web Services, dat volgens hem de meest geavanceerde oplossing aanbiedt. “Om in te tekenen op het serverless-aanbod, moet je voor een stuk ontwikkelen voor de partij waar je mee in zee gaat. Zo ga je plots aan de slag met DynamoDB in plaats van MongoDB en worden de scripts voor AWS geschreven.”

Anders ontwikkelen

Chanet is zich bewust van het risico, maar nuanceert. “Uiteindelijk zijn de microservices die we gebruiken heel eenvoudig om te zetten naar andere cloudproviders en zelfs de structuur van DynamoDB converteert vlot naar MongoDB.” Slim ontwikkelen en ervoor zorgen dat je zelf snel kan migreren moest je dat willen, is dus belangrijk.

Serverless werken heeft nog op andere manieren een impact op de ontwikkelaars. “De motivatie om zo efficiënt mogelijk te werken, is enorm”, lacht Chanet. De ontwikkelaars zijn constant bezig met code te perfectioneren, requests te beperken en de load naar omlaag te halen. “Het is fijn om te zien hoe efficiëntere code enkele euro’s van de eindrekening haalt.”

 

“Het is fijn om te zien hoe efficiëntere code enkele euro’s van de eindrekening haalt.”

 

Chanet en Dreams & Creations zien een belangrijke toekomst voor het serverless-model. Zeker voor kleinere applicaties of toepassingen binnen de educatieve sector of vzw’s is de aanpak interessant, omdat cloudproviders daar kortingen hanteren die het draaien van de software wel erg voordelig maken.

Heel wat workloads zijn bovendien geschikt. Denk maar aan documentherkenning, waarbij scans enkele keren per kwartaal naar PDF dienen omgezet te worden, of een workload waarbij afbeeldingen geschaald dienen te worden telkens wanneer ze binnenkomen, maar dat slechts enkele keren per maand gebeurt. De combinatie van zwaar werk, maar af en toe, schreeuwt volgens Chanet voor het serverless-model.

Op zoek naar mogelijke winst

Het is dus zeker een goed idee om eens naar je eigen workloads te kijken. Zijn er apps die op een server draaien die idle is voor de helft van de tijd, om dan plots kort te pieken? Dan kan dat waarschijnlijk efficiënter, zeker als je al in de cloud zit. Als start-up geeft de aanpak je ook de nodige flexibiliteit om zonder zorgen te groeien, terwijl je weet dat je niet betaalt voor wat je niet nodig hebt.

En dan is nuchter blijven natuurlijk een goed idee. Als een workload na verloop van tijd stabiliseert, is er geen enkele reden om het model te blijven hanteren. In dat geval kan je net zo goed naar een klassieke cloudserver verhuizen met je app of zelfs terug naar on-premises migreren.

Gerelateerd: Van traditionele servers tot software composable infrastructure: wat is het verschil?