AWS ne change pas ses bonnes habitudes et continue d’annoncer des nouveaux services pour alimenter son offre Cloud. Dernièrement, le géant américain a annoncé le lancement d’un nouveau service compatible avec AWS Lambda : « Provisionned Concurrency » (on pourrait traduire ça par « simultanéité réservée »). Comme vous le savez certainement, Lambda est un produit de référence dans l’offre AWS permettant l’exécution de fonctions sans se soucier du déploiement d’une architecture dédiée. A quoi va servir la réservation de simultanéité ? Est-ce un outil pertinent et adapté à vos besoins, ou est-ce une ligne de facturation supplémentaire que vous ne maîtriserez pas en fin de mois ? On vous explique tout.
AWS identifie un besoin de réactivité
Lambda est un produit reconnu pour la simplicité et la flexibilité qu’il apporte aux équipes de développement. Exécuter une fonction ou des lignes de codes sans se soucier de l’architecture technique qui tourne derrière est un luxe que de nombreux utilisateurs d’AWS peuvent aujourd’hui se payer.
Derrière une apparente simplicité, une fausse note peut parfois venir ternir le bilan d’AWS Lambda : la rapidité d’exécution. La réactivité des applications web est un enjeu central pour de nombreuses équipes et l’utilisation de Lambda confronte parfois ses utilisateurs à cette réalité. Concrètement : l’invocation d’une fonction sur Lambda entraîne l’activation d’un environnement d’exécution pour procéder à la requête invoquée.
C’est ici que Lambda peut montrer ses limites. Après une certaine durée d’inactivité, lorsque l’on souhaite invoquer plusieurs fonctions de manière simultanée ou lorsque l’on met à jour une fonction, un nouvel environnement est créé. La création de ce nouvel environnement peut entraîner une certaine latence, en fonction de la taille de votre déploiement ou de la qualité de votre code.
Comment fonctionne la « Provisionned Concurrency » ?
Cette latence est comparable au démarrage à froid de votre vieux diesel. Il faudra généralement quelques minutes pour que votre moteur soit prêt à encaisser les tours/minute. C’est la même chose pour l’environnement d’exécution sur AWS Lambda : la création d’un nouvel environnement induit forcément une durée de lancement qui impactera la réactivité de votre fonction.
Pour contrer ce phénomène, AWS a donc créé la « Provisionned Concurrency ». Concrètement, Amazon vous donne désormais l’opportunité de réserver des environnements d’exécution déjà prêts à être utilisé. Imaginez un restaurateur faisant face à un pic de réservation anticipable : son restaurant fait salle comble et il doit être capable d’accueillir tout le monde sans augmenter le temps d’attente de ses clients. Le meilleur moyen ? Avoir une dizaine de fours chauds prêts à l’emploi pour être le plus efficace possible.
Cette métaphore n’est pas très écologique, on vous l’accorde. Mais le principe est sensiblement le même : la simultanéité réservée s’apparente à une réserve de matériel prêt à l’emploi, sans aucune latence induite.
La « Provisionned Concurrency » : un outil FinOps friendly ?
Sans surprise : nous ne parlons évidemment pas d’un produit gratuit. Si vous êtes utilisateur d’AWS, vous le savez mieux que nous : Amazon n’a pas pour habitude d’oublier de facturer un nouveau service. La question est donc la suivante : ce service est-il intéressant dans une optique d’optimisation des coûts du Cloud ?
Comme souvent, tout est une question de contexte. En termes de facturation, comme pour tous les produits AWS, vous payez uniquement pour la quantité que vous souhaitez réserver. Le pricing est cependant assez flou : 0.015$ par GB/h pour les « Provisionned Concurrency » et 0.035$ par GB/h selon la durée. Difficile donc d’obtenir une vraie visibilité sur votre facture à venir. Éternelle rengaine.
Notre conseil avant de vous lancer dans la réservation d’environnement d’exécution prêts à l’emploi : si votre produit n’a aucune nécessité en matière de réactivité et de rapidité d’exécution, inutile d’y penser. Bien que ce service paraisse pratique et plutôt abordable, inutile de polluer une facture déjà floue avec des données inutiles.
Par contre, dans le cas d’un business fortement dépendant des temps de réaction de ses services, comme un site e-commerce par exemple, la rentabilité d’un tel service peut réellement faire la différence. Une latence, aussi faible soit-elle, peut impacter de manière considérable le taux de transformation d’un e-commerçant. AWS vous offre ici la possibilité de mieux appréhender vos pics de consommation pour optimiser votre taux de conversion.
Morale de l’histoire : ne songez à la « Provisionned Concurrency » qu’en cas d’un vrai besoin business direct.