Serverless AWS Lambda : Tout savoir sur le Cold Start

À la différence d’une application Non-Serverless où le code est présent en mémoire sur le serveur et attend des requêtes, dans le monde Serverless, le code est dormant et n’est pas provisionné tout le temps. Ce comportement s’appelle le Cold Start et constitue la principale critique des fonctions Serverless.
DEFINITION
Le Cold Start se produit au moment de l’exécution d’une fonction inactive pour la première fois. Dans ce cas, le fournisseur de Cloud doit télécharger le package sur les serveurs, charger le code en mémoire et enfin l’exécuter. Ceci augmente bien évidemment le temps de réponse.
Une fois la fonction instanciée, elle peut recevoir plusieurs requêtes sans passer par toutes les étapes précédentes. Toutefois, après une certaine période d’inactivité, le provider de Cloud peut supprimer le conteneur associé à la fonction, qui devient par la même occasion inactive.
COMMENT MESURER LE COLD START ?
Le service AWS X-Ray, est un outil qui permet aux développeurs d’analyser et de déboguer la production et les applications distribuées.
Lambda est intégré avec X-Ray et envoie automatiquement ses traces d’exécution une fois la case « Enable active tracing » cochée.
LE COLD START EST-IL FACTURÉ ?
L’initialisation de la fonction Lambda ne compte donc pas dans le temps de facturation.
Toutefois, si l’initialisation de la fonction Lambda dure plus de 10 secondes, AWS stoppe le traitement et le relance. La deuxième fois, le temps d’initialisation est décompté dans le temps d’exécution et de facturation.
Cela est géré de cette façon afin d’empêcher les développeurs d’exécuter du code lourd hors du handler dans la partie qui gère l’instanciation de la fonction.
En conclusion, il est nécessaire de comprendre les subtilités de fonctionnement des fonctions Serverless (Faas) afin de construire des architecture AWS efficaces.