¿Cómo gestionan las arquitecturas sin servidor las conexiones de la base de datos?

10

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?

usuario registrado
fuente

Respuestas:

9

Dado que una aplicación sin servidor no mantiene ningún estado entre las ejecuciones, no puede mantener un grupo de conexiones de base de datos. Las aplicaciones sin servidor realmente enfrentan las mismas restricciones que los scripts CGI de los 90. En general, un proceso de servidor permanente podrá superar a una arquitectura de proceso por solicitud o contenedor por solicitud porque el servidor se inicializa una vez, no una vez por solicitud.

Los programas sin servidor no son ideales para tareas sensibles a la latencia como servir un sitio web. Son más adecuados para tareas esporádicas en segundo plano que no desea ejecutar en su servidor principal, sin tener que administrar manualmente y equilibrar la carga de servidores de aplicaciones adicionales. También pueden ser decentes si la productividad del desarrollador es mucho más importante que las respuestas de baja latencia.

amon
fuente
Excelentes puntos. También sugeriría que una de las principales ventajas que lleva a la gente a sin servidor es el costo. Si le está pagando a un proveedor (por ejemplo, Amazon) basándose solo en el número de solicitudes y no está pagando para mantener un servidor inactivo en funcionamiento, ahorrará dinero, especialmente durante la fase de inicio.
Paul
2
@Paul La principal ventaja de serverless es la conveniencia (PaaS vs. IaaS). La administración segura de un servidor es un conjunto de habilidades que la mayoría de los desarrolladores (yo incluido) no tienen. Estoy seguro de que hay algunos escenarios donde sin servidor es notablemente más barato. Pero los servidores privados virtuales comienzan en $ 5 / mes, lo cual es muy competitivo, por decirlo a la ligera. Especialmente teniendo en cuenta que un VPS tiene muchas menos restricciones, lo que le permite ejecutar software arbitrario y servicios permanentes. Esta es una comparación entre una manzana y una naranja. En un modelo está pagando por un servidor inactivo, en otro está pagando por el tiempo de inicio repetido.
amon
4

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.

Ewan
fuente