On dit que le principal avantage de l'architecture sans serveur est que ces programmes n'ont pas besoin d'un serveur dédié pour fonctionner en continu. Ils sont ensuite invoqués sur une demande et s'arrêtent en quittant la fonction.
Cela signifie qu'un programme sans serveur devra être rapide à démarrer, pour être réactif. Comment gère-t-il alors les actions chronophages telles que la connexion à la base de données? Se connecte-t-il à la base de données à chaque fois ou gère-t-il la connexion à la base de données séparément pour effectuer des invocations comme cela se fait dans les applications serveur?
la source
Ça dépend.
L'implémentation en coulisses du lambda runner va affecter cela. Nous pouvons voir que dans AWS, le conteneur peut être réutilisé.
http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html
Nous avons donc pu voir au moins la mise en commun / réutilisation des connexions pour certaines demandes. Nous devons également considérer la base de données elle-même et comment elle traite les demandes de connexion entrantes.
Ce genre de question pour moi souligne certains des problèmes avec «sans serveur», c'est encore très nouveau et immature, donc les détails n'ont pas été élaborés.
Nous devons toujours nous rappeler que sans serveur ne signifie pas sans serveurs. Si le taux auquel vous appelez un lambda est suffisamment élevé, vous pouvez effectivement avoir plusieurs serveurs ou «conteneurs» en cours d'exécution.
Dans la pratique, le temps de démarrage et les ressources telles que les adresses IP des lambdas peuvent être un vrai problème. Peut-être qu'au fur et à mesure qu'ils mûriront, un consensus sur la façon de les exécuter apparaîtra et ces problèmes obtiendront des réponses solides.
la source