Se dice que la principal ventaja de la arquitectura sin servidor es que dichos programas no necesitan un servidor dedicado para ejecutarse continuamente. Luego se invoca en una solicitud y se detiene al salir de la función.
Esto significa que un programa sin servidor tendrá que iniciarse rápidamente para responder. ¿Cómo maneja entonces las acciones que consumen mucho tiempo, como la conexión de la base de datos? ¿Se conecta a la base de datos cada vez o gestiona la conexión de la base de datos por separado para funcionar invocaciones como se hace en aplicaciones de servidor?
fuente
Depende.
La implementación detrás de escena del corredor lambda va a afectar esto. Podemos ver que en AWS el contenedor podría reutilizarse.
http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html
Por lo tanto, podríamos ver agrupación de conexiones / reutilización para algunas solicitudes al menos. También deberíamos considerar la base de datos en sí y cómo trata las solicitudes de conexión entrantes.
Este tipo de pregunta para mí subraya algunos de los problemas con 'sin servidor', aún es muy nuevo e inmaduro, por lo que los detalles no se han solucionado.
Siempre debemos recordar que sin servidor no significa que no hay servidores. Si la velocidad a la que llama a un lambda es lo suficientemente alta, puede tener efectivamente varios servidores o 'contenedores' ejecutándose.
En la práctica, el tiempo de inicio y los recursos como las direcciones IP de lambdas pueden ser un problema real. Quizás a medida que maduren, aparecerá un consenso sobre cómo ejecutarlos y estos problemas obtendrán respuestas sólidas.
fuente