Basis van cloud en containers
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?
- 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
- 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)
- 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.