Modelo Serverless: así funciona el moderno modelo en la nube

Tanto en el sector privado como, sobre todo, en el comercial, la actividad digital se inclina cada vez más hacia la nube. Son muchas e interesantes las soluciones que lanzan los proveedores al mercado, pero distinguir claramente unas ofertas de otras se convierte a menudo en un auténtico desafío. Este es el caso del denominado serverless computing, una práctica muy reciente que en el ámbito de los expertos también se denomina como Function as a service (FaaS). Al contrario de lo que parece indicar su nombre, no se trata de estructuras en la nube sin servidor. ¿Qué es exactamente la computación serverless?

¿Cómo funciona el concepto serverless?

El serverless computing o la arquitectura serverless es un modelo en la nube que permite a los usuarios crear y ejecutar aplicaciones y procesos sin entrar en contacto con el servidor subyacente. Por lo tanto, a pesar de su denominación, estos entornos en la nube también cuentan con servidores, con la diferencia de que es el proveedor el que se encarga de suministrarlo, gestionarlo y escalarlo. De esta forma, el enfoque serverless va un paso más allá del modelo Platform as a Service (PaaS), en el que los desarrolladores o clientes se ven obligados a dirigirse al servidor o los servidores mediante una API y a añadir o liberar recursos por su cuenta.

Como en los proyectos con una infraestructura de serverless computing no es necesario realizar estas tareas, este enfoque permite centrar toda la atención en el desarrollo y la ejecución del softwarecorrespondiente. No obstante, para que esto sea posible, al margen del propio código de programa, también hay que crear funciones sin estado que contienen instrucciones acerca de cómo debe reaccionar un programa a determinados eventos. Entonces, el correspondiente código de programa, junto con las funciones deseadas (que gracias a su ausencia de estado no cuentan con ningún tipo de dependencia de la infraestructura), se puede cargar en el entorno en la nube en cualquier momento para ejecutarse allí. Debido precisamente al papel esencial que juegan las funciones, hay proveedores que ofrecen sus servicios serverless bajo el nombre “Function as a Service (FaaS)”.

Nota

Los proveedores de serverless computing no solo son los responsables de que los recursos de servidor necesarios estén siempre disponibles, sino también de garantizar el mayor nivel de seguridad anticaída posible. Por norma general, estos servicios suelen facturarse según el modelo de pago por uso o Pay per Use, de manera que los clientes solo tienen que pagar por los servicios de los que de hecho han disfrutado.

¿Cómo funciona el serverless computing?

En una infraestructura serverless la gestión del hardware por parte del proveedor es esencial. El único desafío con el que tienen que lidiar los usuarios es integrar su software o su lógica, incluidas las funciones adecuadas, en el espacio alquilado en la nube. El acceso a estas funciones se puede realizar de dos maneras:

  • de forma asíncrona, a través de eventos,
  • o de forma sincronizada, según el modelo Client-Server clásico.

La primera variante ofrece la ventaja de evitar un acoplamiento demasiado rígido de las distintas funciones y de mantener la demanda de recursos en un nivel bajo durante la ejecución. Una función posible basada en eventos sería, por ejemplo, que al cargar una imagen siempre se cree también un icono en miniatura. En la variante clásica, el cliente siempre tiene que enviar una solicitud especial al servidor para poder acceder a una función correspondiente para poder crear la vista en miniatura.

A diferencia de una infraestructura de plataforma como servicio, el proveedor de serverless computing no facilita, para ello, un entorno de trabajo duradero para todo el tiempo de trabajo, sino que aporta de manera puntual y en tiempo real aquellos recursos que se requieren durante el tiempo de ejecución de una única llamada de función. Obviamente, los servicios serverless también cuentan con servidores físicos y virtuales para permitir la ejecución de las funciones, pero se encuentran en un segundo plano (por lo que los usuarios no los perciben).

Serverless architecture: vista general de las ventajas y desventajas

Las infraestructuras en la nube convencionales ya permiten al usuario eliminar el hardware necesario, pero, a menudo, requieren grandes esfuerzos a nivel de administración y microgestión. El serverless computing pretende reducir ese esfuerzo a un nivel mínimo.

La siguiente tabla resume las ventajas restantes y los puntos débiles del concepto serverless:

Ventajas Incovenientes
Escalamiento y administración de los recursos necesarios por parte del proveedor Se restringe el acceso a máquinas virtuales, sistemas operativos o entornos de período de duración
Suministro ágil de los recursos en tiempo real, incluso en caso de picos de carga imprevisibles o un crecimiento desproporcionado La implementación de las estructuras serverless requiere un gran esfuerzo
Solo se cobran gastos por recursos que realmente se han usado Gran dependencia del proveedor (“efecto Lock-in”): en caso de cambiar de operador, por ejemplo, suele ser necesario escribir nuevamente todas las funciones basadas en eventos.
Gran tolerancia a errores gracias a la infraestructura flexible de hardware en los centros de cálculo del proveedor. Procesos de monitorización y depuración de errores relativamente complejos, ya que, por norma general, no es posible realizar análisis profundos de errores y rendimiento.

Serverless computing en la práctica: ¿dónde se usa el principio serverless?

El serverless computing ha sido concebido principalmente para el intercambio efímero de datos de aplicaciones web y de negocios en la nube. Por lo tanto, en la práctica, no se trata de procesar aplicaciones enteras o amplias secuencias de códigos (por norma general, la serverless architecture ni siquiera sirve para realizar estas tareas), sino funciones por separado. Estas características hacen que la técnica sea interesante para varios escenarios, como muestra la siguiente lista:

  • Proxy API: muchas aplicaciones comerciales más antiguas cuentan con API (interfaces de software) complejas y lentas. Mediante la arquitectura serverless y la puerta de enlace de API adecuada se puede crear una capa de abstracción alternativa para poder acceder a estas aplicaciones mediante una API REST simple para facilitar el acceso a ellas por parte de otros sistemas.
  • Serverless Backend: el serverless computing también se usa cada vez más para construir y soportar todo el backend de una aplicación en la nube. En estos casos también se usa la denominación Backend as a Service (BaaS).
  • Procesamiento posterior de datos (no) estructurados: hoy en día, es imposible imaginar un entorno de negocios sin big data. En este contexto, la infraestructura serverless se muestra como un gran aliado para procesar este tipo de información, es decir, transcodificar, desplazar, combinar o manipular datos estructurados (JSON, XML, etc.) o datos no estructurados (imágenes, audio, etc.).
  • Ejecución de tareas según un horario definido: en la mayoría de los casos, las funciones no solo se pueden ejecutar basadas en eventos, sino también según un horario definido. De esta forma se pueden reorganizar bases de datos o crear copias de seguridad de manera automatizada.
  • Aplicación de asistentes de conversación y chat bots: la tecnología serverless también es ideal para integrar asistentes digitales de conversación y chat bots.

Pon a punto tu negocio y termina el año con éxito
Hemos rebajado algunos de nuestros mejores productos para
ayudarte a aumentar las ventas en estas fiestas.
Ahorra hasta un 75%