La fin du cold start sur les lambda
La fin du cold start sur les lambda

La fin du cold start sur les lambda

La nouvelle vient de tomber au re:Invent 2022 à Las Vegas !

Fini les cold start de démarrage sur les fonctions lambdas Java grâce à quelques optimisations sur lesquels nous allons nous attarder, mais d’abord un peu de contexte.

AWS Lambda est un service très connu qui date de 2014 et qui permet d’exécuter du code en réponse à un évènement sans que l’utilisateur ait à gérer l’infrastructure sous-jacente.

Afin d’assurer une isolation parfaite entre ces clients, AWS utilise des instances EC2 dédiées à chaque client pour l’exécution de ces fonctions. Depuis quelques années déjà (2018), AWS utilise la technologie Firecracker pour optimiser les temps de démarrage des instances utilisées pour les fonctions lambdas. Firecracker permet de lancer une version allégée d’une VM, on parle alors de MicroVM. Cet aspect allégé plus quelques autres optimisations permettent de démarrer une MicroVM en une fraction de seconde contre plusieurs secondes pour une EC2 “classique”.

SnapStart

Là, on entre dans les dernières fonctionnalités annoncées. Bien qu’efficace sur le temps de démarrage des instances hôte, les MicroVMs n’ont pas résolu toutes les causes d’un cold start. En effet, outre le temps de démarrage, il faut également compter le temps d’initialisation de l’instance avec la mise en place du runtime et la récupération du code.

Afin de gagner du temps, à chaque publication d’une nouvelle version de la fonction, l’initialisation de la lambda est automatiquement lancée puis un snapshot de l’état de l’instance sera effectué. Les prochaines exécutions se baseront directement sur ce dernier. Ainsi, le temps d’initialisation est très grandement réduit.

Ces SnapStart sont conservés en cache pendant 14 jours et sont automatiquement rafraichis en cas de mise à jour du runtime.

AWS indique donc une réduction du délai de cold start de 90%, le tout sans impact sur le prix.

Annonce AWS :

https://aws.amazon.com/fr/blogs/aws/new-accelerate-your-lambda-functions-with-lambda-snapstart/

Documentation AWS :

https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html

Merci pour votre lecture. Si cet article vous a plu, merci de le partager sur vos réseaux 😉

Timothée Taron - 28 Nov, 2022

image
image