Insights
Voor dummies #4: Serverless computing
- 0 minuten leestijd

Insights
- 0 minuten leestijd
In de afgelopen jaren heeft serverless computing voor een paradigm shift gezorgd in de manier waarop we applicaties ontwikkelen en implementeren. Serverless architectuur biedt schaalbaarheid, flexibiliteit en kosteneffectiviteit en is de go-to-oplossing geworden voor bedrijven die hun activiteiten willen optimaliseren. Dit artikel gaat in op de essentie van serverless computergebruik, de voordelen, use cases en de potentiële impact op de toekomst van technologie.
In tegenstelling tot de naam betekent serverless computing niet het volledig elimineren van servers. Uw applicatie serverless laten draaien wil zeggen dat je gebruik gaat maken van een service die alle server gerelateerde taken voor zich neemt. Het maakt het infrastructuurbeheer gemakkelijker, waardoor ontwikkelaars zich uitsluitend kunnen concentreren op het schrijven en implementeren van code voor hun applicatie. Voorbeelden van deze services zijn: AWS Lambda, Google cloud, Azure, Vercel en Netlify.
We zouden de analogie kunnen leggen naar bijvoorbeeld elektriciteit. I.p.v. zelf een windturbine te gaan zetten en zelf te zorgen voor opslag en transport. Gaan we eigenlijk al deze taken overlaten aan een energiemaatschappij. Wij sluiten met hen een contract en we betalen enkel wat we gaan verbruiken. Dit zelfde principe wordt toegepast bij serverless computing. Hier hoeven ontwikkelaars zich niet langer bezig te houden met server-inrichting, schaalvergroting of onderhoud. In plaats daarvan kunnen ze zich richten op het bouwen en leveren van applicaties, terwijl ze de operationele overhead kunnen overlaten aan een saas- of een cloudprovider.

De 3 grote voordelen van serverless computing zijn de schaalbaarheid, de kosteffectiviteit en het feit dat men zelf geen infrastructuur moet gaan opzetten voor het in productie plaatsen van uw applicatie.
Hoewel het gebruik van een serverless computerarchitectuur verschillende voordelen heeft, moet u ook rekening houden met de uitdagingen die gepaard gaan met deze technologie. Dan hebben we het vooral over het gebrek aan controle en performance.
Door dat je gebruik maakt van een externe service krijg je wel een gebrek aan controle. Je bent geen eigenaar van en hebt geen controle over de server-infrastructuur. Dit betekent dat hardware-fouten, softwarefouten of andere problemen die op de server gebeuren, uw activiteiten drastisch kunnen beïnvloeden. Je hebt meestal ook geen toegang tot alle infrastructuur en data waardoor ook het debuggen van deze problemen in uw applicatie complexer kan zijn dan bij een traditionele opzet. Ook voor monitoring en security van uw applicatie ben je volledig afhankelijk van uw cloudprovider. Het feit dat je enkel betaald voor de capaciteit van de server die je gebruikt, betaal je steeds een correcte prijs. Maar wat die prijs juist is, is ook vaak onvoorspelbaar. Terwijl bij een meer traditionele server dit niet het geval is.
Een begrip dat ook vaak terugkomt bij serverless computing is severless functions. Heel simpel uitgelegd is dit een bepaalde feature binnenin uw applicatie die gebruik maakt van uw serverless infrastructuur. Serverless functions worden on-demand geïnstantieerd, wat betekent dat ze naar behoefte worden gemaakt en vernietigd. Hoewel deze manier van werken schaalbaarheid biedt, kan dit vertraging introduceren in de vorm van cold starts. Dit fenomeen gebeurt wanneer, een functionaliteit opnieuw moet worden geïnitialiseerd vanwege inactiviteit, of tijdens de eerste implementatie. Dit is niet altijd het geval maar het kan langere response-tijden als gevolg hebben. Deze hebben een negatieve invloed heeft op de gebruikerservaring, vooral voor tijd-gevoelige of real-time toepassingen.
Nog iets anders wat we best nog aanraken is het feit dat de verschillende cloudproviders verschillende soorten serverless services aanbieden. Deze zijn ten eerste vaak niet compatible met elkaar. En ten tweede zijn deze vaak anders opgebouwd waardoor het veranderen van provider niet altijd evident is. Dit heeft als gevolg dat het risico bestaat dat je locked-in bent bij een bepaalde cloud-provider. Waardoor, als je niet goed oplet, je afhankelijk kan worden van een van deze services. Databases kan hier een voorbeeld van zijn. Vaak hebben deze verschillende features of manieren om data te gaan opvragen. Mocht je willen veranderen van provider, dan mag je vaak heel de code en/of heel de structuur van uw applicatie omgooien.
Is uw applicatie een giga succes of groeit het aantal gebruikers langzaam maar gestaag? Zolang je er niet mee inzit dat uw data op een externe server staat lijkt serverless computing vrijwel altijd de juiste keuze. Zowel voor grote als kleine bedrijven, start-ups of gevestigde waarden in de it-wereld. De nadelen van serverless computing lijken niet te kunnen opwegen t.o.v. alle voordelen. Onder het motto: ‘focus on code, not infrastructure’ lijkt serverless computing het over te nemen in de it-wereld. En daar zullen weinig developers rouwig om zijn. Zij kunnen met een gerust hart werken aan hun applicatie, terwijl de cloudproviders zorgen voor de juiste ondersteuning bij het in productie plaatsen van hun producten. En dit aan (meestal) een correcte prijs.
Wij zorgen voor gepast advies op het vlak van frontend development.