Wat is Serverless computing?

Een manier om applicaties uit te voeren waarbij het voorzien in servers, het beheren van hun aantal en het bijwerken van het besturingssysteem aan de cloudaanbieder worden overgelaten, zodat gebruikers er niet over hoeven na te denken. De typische vorm is FaaS (Function as a Service): een functie draait alleen als er een aanvraag of gebeurtenis binnenkomt, en de kosten hangen af van het aantal uitvoeringen, hun duur en het gebruikte geheugen. Schalen met de belasting gaat automatisch, en als er niets wordt gebruikt, wordt er bijna niets in rekening gebracht. Anderzijds zijn er beperkingen, zoals koude starts, waarbij de eerste aanroep na een periode van inactiviteit traag is, en grenzen aan de uitvoeringstijd.

Japanse benaming: サーバーレス

“Serverless computing” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van cloud en containers.

Vakgebied: Basis van cloud en containers

Er zijn toch servers

„Serverless” betekent niet dat er geen servers zijn, maar dat gebruikers ze niet hoeven te beheren. De aanbieder bereidt naar behoefte uitvoeringsomgevingen zoals containers of lichte virtuele machines voor en voert de functies daarin uit. Volledige applicaties worden vaak samengesteld door functies te combineren met beheerde databases, opslag, een wachtrij voor berichten enz.

Koude starts

Als een functie een tijd niet wordt aangeroepen, wordt haar uitvoeringsomgeving opgeruimd, en de volgende aanroep vereist het voorbereiden van een omgeving, het starten van de runtime van de taal en het initialiseren van de functie. Deze vertraging is een koude start, en afhankelijk van de taal en de hoeveelheid bibliotheken kan ze van enkele honderden milliseconden tot enkele seconden duren. Ze wordt verkleind door de initialisatie licht te houden of door instellingen te gebruiken die vooraf een aantal omgevingen gereedhouden.

Geschikte workloads

Het is geschikt voor gebeurtenisgestuurde verwerking die snel klaar is, zoals het converteren van geüploade afbeeldingen, periodieke aggregatie en het ontvangen van webhooks, en voor workloads met grote schommelingen in de belasting en lange perioden zonder gebruik. Voor workloads met een constant hoge belasting kunnen altijd draaiende servers of containers goedkoper zijn. Toestand wordt niet in functies bewaard, maar in databases of iets vergelijkbaars.

Nu oefenen: vragen over Serverless computing

Bij serverless functies (FaaS) antwoordt soms alleen de eerste aanroep van een functie die een tijd niet is aangeroepen, enkele honderden milliseconden tot enkele seconden trager. Welke verklaring van dit verschijnsel is juist?

  1. AHet resultaat van de eerste aanroep wordt in een cache bewaard; vanaf de tweede aanroep wordt de code van de functie niet uitgevoerd en wordt alleen het opgeslagen resultaat teruggegeven
  2. BHet kost tijd om een nieuwe omgeving voor de uitvoering van de functie voor te bereiden, de runtime van de taal te starten en de initialisatie uit te voeren (een koude start)
  3. CBij de eerste aanroep wordt de code van de functie naar het apparaat van de gebruiker gestuurd, daar gecompileerd en daarna uitgevoerd
Antwoord en toelichting tonen

Antwoord: B. Het kost tijd om een nieuwe omgeving voor de uitvoering van de functie voor te bereiden, de runtime van de taal te starten en de initialisatie uit te voeren (een koude start)

Bij serverless functies bereidt de aanbieder naar behoefte uitvoeringsomgevingen voor (zoals containers of lichte virtuele machines) en ruimt hij ze op als ze een tijd niet worden gebruikt. De eerste aanroep nadat een omgeving is opgeruimd, vereist het voorbereiden van de omgeving, het starten van de runtime van de taal en het uitvoeren van de initialisatie van de functie, en het antwoord is zoveel trager. Volgende aanroepen hergebruiken de voorbereide omgeving en zijn sneller (een warme start). Tegenmaatregelen zijn onder meer de initialisatie en de geladen bibliotheken licht houden en instellingen gebruiken die vooraf een bepaald aantal omgevingen gereedhouden.

Veelgestelde vragen

Zijn serverless en containers tegenpolen?

Nee. Veel serverless platforms gebruiken intern containers of lichte virtuele machines, en sommige diensten kunnen een containerimage rechtstreeks als functie uitvoeren. Het verschil zit in wie het aantal instanties en de uitvoeringsomgeving beheert.

Verlaagt overstappen op serverless altijd de kosten?

Niet per se. Omdat men betaalt wat men gebruikt, is het goedkoper voor lichte workloads met pieken, maar voor workloads met een constante belasting boven een bepaald niveau kunnen altijd draaiende servers goedkoper zijn. De vergelijking moet ook kosten zoals die voor gegevensoverdracht omvatten.

“Serverless computing” in de toelichting

Vragen met “Serverless computing” (1)

  1. Bij serverless functies (FaaS) antwoordt soms alleen de eerste aanroep van een functie die een tijd niet is aangeroepen, enkele honderden milliseconden tot enkele seconden trager. Welke verklaring van dit verschijnsel is juist?

Verwante termen

Container Autoscaling Beschikbaarheidszone (availability zone) Blue-green deployment Canary release Containerimage Docker Immutable infrastructure (onveranderlijke infrastructuur) Infrastructure as code (IaC) Kubernetes

Naar de woordenlijst