Wat is serverless computing?
Serverless computing is een cloudmodel waarbij je code draait zonder zelf servers te hoeven inrichten, beheren of schalen. De cloudprovider start jouw functie automatisch op zodra er een verzoek binnenkomt, verwerkt het, en schaalt vanzelf mee met de vraag. Je betaalt alleen voor de daadwerkelijke rekentijd, niet voor server die stilstaat.
Serverless computing is een manier van applicaties draaien waarbij je geen servers hoeft te beheren; de cloudprovider start code automatisch op zodra dat nodig is en je betaalt alleen voor het daadwerkelijke gebruik.
Servers inrichten, patchen, schalen bij drukte en weer afschalen als het rustig is, kost tijd die niet direct bijdraagt aan de functionaliteit van een applicatie. Serverless computing haalt dat beheer weg bij de ontwikkelaar en legt het bij de cloudprovider.
Hoe serverless computing werkt
Bij serverless computing schrijf je code in de vorm van functies die een specifieke taak uitvoeren, bijvoorbeeld het verwerken van een API-aanroep of het reageren op een binnenkomend bestand. Die functie draait niet continu. Zodra er een verzoek binnenkomt, start de cloudprovider automatisch een instantie van je functie op, voert die uit en sluit hem daarna weer af.
Je hoeft dus niet vooraf te bepalen hoeveel servers je nodig hebt of hoe die moeten schalen bij piekbelasting. Bij honderd gelijktijdige verzoeken start de provider automatisch honderd instanties op; bij nul verzoeken draait er niets en betaal je ook niets.
Waarom “serverless” een misleidende naam is
Er draaien nog steeds servers, alleen beheer je die niet zelf. De naam verwijst naar het feit dat jij als ontwikkelaar geen server hoeft in te richten, te patchen of te schalen. Dat werk verschuift volledig naar de cloudprovider. Voor jou blijft alleen de code over: je levert een functie aan en de infrastructuur eromheen is onzichtbaar.
Dit verschilt van traditioneel hosten, waarbij je zelf een server (of virtuele machine) huurt die continu draait, ongeacht of er verkeer is of niet.
Voordelen voor bedrijven
Het grootste voordeel is het betaalmodel: je betaalt per uitvoering en rekentijd, niet voor server die stilstaat. Voor toepassingen met wisselende belasting, zoals een API die af en toe gebruikt wordt of een webhook die reageert op incidentele gebeurtenissen, is dat aanzienlijk goedkoper dan een server die 24 uur per dag draait.
Daarnaast schaalt serverless automatisch mee met vraag, zonder dat je zelf capaciteit hoeft te plannen. Dat maakt het geschikt voor pieken die je vooraf lastig kunt inschatten, zoals een marketingcampagne die tijdelijk veel extra verkeer genereert. Meer over hoe dit past binnen een bredere architectuurkeuze lees je in het artikel over monolith versus microservices.
Beperkingen om rekening mee te houden
Serverless is niet voor elke situatie de beste keuze. Functies zijn meestal stateless: ze onthouden niets tussen aanroepen, dus voor processen die veel lokaal geheugen of een langdurige verbinding nodig hebben, is een andere aanpak vaak passender. Ook kan een “cold start” optreden: als een functie een tijd niet is aangeroepen, duurt de eerste uitvoering iets langer omdat de omgeving opnieuw moet opstarten.
Verder werkt elk cloudplatform serverless net iets anders in, waardoor overstappen naar een andere provider soms aanpassingen vraagt. Dat is iets om vooraf in te calculeren bij een architectuurkeuze.
Serverless in de praktijk
Typische toepassingen zijn API-endpoints die op verzoek reageren, verwerking van webhooks, geplande taken die eens per dag draaien, en het verwerken van geüploade bestanden. Platforms zoals Cloudflare Workers, AWS Lambda en Azure Functions bieden serverless-omgevingen waarin je zulke functies snel kunt neerzetten zonder eigen serverbeheer.
Onze tip: begin bij een nieuw project met een schatting van je verwachte verkeer per dag. Bij sterk wisselende of onvoorspelbare belasting is serverless al snel de goedkopere en eenvoudigere keuze; bij constante, zware belasting loont het de moeite om de kosten te vergelijken met een vaste server.
Veelgestelde vragen
Betekent serverless dat er geen server bij komt kijken?
Nee, de naam is misleidend. Er draait nog steeds een server, alleen beheer je die niet zelf. De cloudprovider regelt het opstarten, schalen en onderhouden van de onderliggende infrastructuur volledig. Jij levert alleen de code aan, meestal in de vorm van kleine functies, en de provider zorgt dat die code draait wanneer nodig. 'Serverless' verwijst dus naar het ontbreken van serverbeheer aan jouw kant, niet naar het ontbreken van servers.
Wat zijn de nadelen van serverless computing?
Een bekend nadeel is de 'cold start': als een functie een tijd niet gebruikt is, kan het opstarten van de eerste aanroep iets langer duren. Ook zijn serverless functies meestal stateless en tijdelijk, waardoor je voor langlopende processen of grote hoeveelheden lokaal geheugen andere oplossingen nodig hebt. Daarnaast kun je vast komen te zitten aan het platform van één cloudprovider (vendor lock-in), omdat serverless-implementaties onderling verschillen.
Wanneer is serverless een goede keuze?
Serverless werkt goed voor taken met wisselende of onvoorspelbare belasting, zoals API-endpoints, verwerking van webhooks, geplande taken of achtergrondverwerking van bestanden. Je betaalt alleen voor gebruik en hoeft niet vooraf capaciteit in te schatten. Voor applicaties met constante, voorspelbare, zware belasting kan een traditionele server soms voordeliger zijn, omdat serverless per aanroep wordt afgerekend.
Wat is het verschil tussen serverless en containers?
Bij containers (bijvoorbeeld via Docker) pak je een applicatie inclusief zijn omgeving in een herbruikbaar pakket, maar jij bepaalt nog steeds waar en hoeveel containers er draaien. Bij serverless bepaalt de cloudprovider dat volledig automatisch: functies starten op bij een verzoek en verdwijnen daarna weer. Serverless vraagt minder beheer, maar geeft je ook minder controle over de precieze uitvoeringsomgeving dan containers dat doen.