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 in­te­re­sa­n­tes las so­lu­cio­nes que lanzan los pro­vee­do­res al mercado, pero di­s­ti­n­guir cla­ra­me­n­te unas ofertas de otras se convierte a menudo en un auténtico desafío. Este es el caso del de­no­mi­na­do se­r­ve­r­le­ss 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 es­tru­c­tu­ras en la nube sin servidor. ¿Qué es exac­ta­me­n­te la co­mpu­tación se­r­ve­r­le­ss?

Private Cloud powered by VMware
Pago por uso y el más alto nivel de seguridad de los datos.

Bajo la división Arsys Cloud Solutions, diseñamos So­lu­cio­nes a tu medida.

¿Cómo funciona el concepto se­r­ve­r­le­ss?

El se­r­ve­r­le­ss computing o la ar­qui­te­c­tu­ra se­r­ve­r­le­ss es un modelo en la nube que permite a los usuarios crear y ejecutar apli­ca­cio­nes y procesos sin entrar en contacto con el servidor su­b­ya­ce­n­te. Por lo tanto, a pesar de su de­no­mi­na­ción, estos entornos en la nube también cuentan con se­r­vi­do­res, con la di­fe­re­n­cia de que es el proveedor el que se encarga de su­mi­ni­s­trar­lo, ge­s­tio­nar­lo y escalarlo. De esta forma, el enfoque se­r­ve­r­le­ss va un paso más allá del modelo Platform as a Service (PaaS), en el que los de­sa­rro­lla­do­res o clientes se ven obligados a dirigirse al servidor o los se­r­vi­do­res mediante una API y a añadir o liberar recursos por su cuenta.

Como en los proyectos con una in­frae­s­tru­c­tu­ra de se­r­ve­r­le­ss computing no es necesario realizar estas tareas, este enfoque permite centrar toda la atención en el de­sa­rro­llo y la ejecución del software co­rre­s­po­n­die­n­te. 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 in­s­tru­c­cio­nes acerca de cómo debe reac­cio­nar un programa a de­te­r­mi­na­dos eventos. Entonces, el co­rre­s­po­n­die­n­te código de programa, junto con las funciones deseadas (que gracias a su ausencia de estado no cuentan con ningún tipo de de­pe­n­de­n­cia de la in­frae­s­tru­c­tu­ra), se puede cargar en el entorno en la nube en cualquier momento para eje­cu­tar­se allí. Debido pre­ci­sa­me­n­te al papel esencial que juegan las funciones, hay pro­vee­do­res que ofrecen sus servicios se­r­ve­r­le­ss bajo el nombre “Function as a Service (FaaS)”.

Nota

Los pro­vee­do­res de se­r­ve­r­le­ss computing no solo son los re­s­po­n­sa­bles de que los recursos de servidor ne­ce­sa­rios estén siempre di­s­po­ni­bles, sino también de ga­ra­n­ti­zar el mayor nivel de seguridad anticaída posible. Por norma general, estos servicios suelen fa­c­tu­rar­se 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 di­s­fru­ta­do.

¿Cómo funciona el se­r­ve­r­le­ss computing?

En una in­frae­s­tru­c­tu­ra se­r­ve­r­le­ss 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 si­n­cro­ni­za­da, según el modelo Client-Server clásico.

La primera variante ofrece la ventaja de evitar un aco­pla­mie­n­to 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 co­rre­s­po­n­die­n­te para poder crear la vista en miniatura.

A di­fe­re­n­cia de una in­frae­s­tru­c­tu­ra de pla­ta­fo­r­ma como servicio, el proveedor de se­r­ve­r­le­ss 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. Ob­via­me­n­te, los servicios se­r­ve­r­le­ss también cuentan con se­r­vi­do­res físicos y virtuales para permitir la ejecución de las funciones, pero se en­cue­n­tran en un segundo plano (por lo que los usuarios no los perciben).

Se­r­ve­r­le­ss ar­chi­te­c­tu­re: vista general de las ventajas y de­s­ve­n­ta­jas

Las in­frae­s­tru­c­tu­ras en la nube co­n­ve­n­cio­na­les ya permiten al usuario eliminar el hardware necesario, pero, a menudo, requieren grandes esfuerzos a nivel de ad­mi­ni­s­tra­ción y mi­cro­ge­s­tión. El se­r­ve­r­le­ss computing pretende reducir ese esfuerzo a un nivel mínimo.

La siguiente tabla resume las ventajas restantes y los puntos débiles del concepto se­r­ve­r­le­ss:

Ventajas In­co­ve­nie­n­tes
Es­ca­la­mie­n­to y ad­mi­ni­s­tra­ción de los recursos ne­ce­sa­rios por parte del proveedor Se restringe el acceso a máquinas virtuales, sistemas ope­ra­ti­vos o entornos de período de duración
Su­mi­ni­s­tro ágil de los recursos en tiempo real, incluso en caso de picos de carga im­pre­vi­si­bles o un cre­ci­mie­n­to de­s­pro­po­r­cio­na­do La im­ple­me­n­ta­ción de las es­tru­c­tu­ras se­r­ve­r­le­ss requiere un gran esfuerzo
Solo se cobran gastos por recursos que realmente se han usado Gran de­pe­n­de­n­cia del proveedor (“efecto Lock-in”): en caso de cambiar de operador, por ejemplo, suele ser necesario escribir nue­va­me­n­te todas las funciones basadas en eventos.
Gran to­le­ra­n­cia a errores gracias a la in­frae­s­tru­c­tu­ra flexible de hardware en los centros de cálculo del proveedor. Procesos de mo­ni­to­ri­za­ción y de­pu­ra­ción de errores re­la­ti­va­me­n­te complejos, ya que, por norma general, no es posible realizar análisis profundos de errores y re­n­di­mie­n­to.

Se­r­ve­r­le­ss computing en la práctica: ¿dónde se usa el principio se­r­ve­r­le­ss?

El se­r­ve­r­le­ss computing ha sido concebido pri­n­ci­pa­l­me­n­te para el in­te­r­ca­m­bio efímero de datos de apli­ca­cio­nes web y de negocios en la nube. Por lo tanto, en la práctica, no se trata de procesar apli­ca­cio­nes enteras o amplias se­cue­n­cias de códigos (por norma general, la se­r­ve­r­le­ss ar­chi­te­c­tu­re ni siquiera sirve para realizar estas tareas), sino funciones por separado. Estas ca­ra­c­te­rí­s­ti­cas hacen que la técnica sea in­te­re­sa­n­te para varios es­ce­na­rios, como muestra la siguiente lista:

  • Proxy API: muchas apli­ca­cio­nes co­me­r­cia­les más antiguas cuentan con API (in­te­r­fa­ces de software) complejas y lentas. Mediante la ar­qui­te­c­tu­ra se­r­ve­r­le­ss y la puerta de enlace de API adecuada se puede crear una capa de ab­s­tra­c­ción al­te­r­na­ti­va para poder acceder a estas apli­ca­cio­nes mediante una API REST simple para facilitar el acceso a ellas por parte de otros sistemas.
  • Se­r­ve­r­le­ss Backend: el se­r­ve­r­le­ss computing también se usa cada vez más para construir y soportar todo el backend de una apli­ca­ción en la nube. En estos casos también se usa la de­no­mi­na­ción Backend as a Service (BaaS).
  • Pro­ce­sa­mie­n­to posterior de datos (no) es­tru­c­tu­ra­dos: hoy en día, es imposible imaginar un entorno de negocios sin big data. En este contexto, la in­frae­s­tru­c­tu­ra se­r­ve­r­le­ss se muestra como un gran aliado para procesar este tipo de in­fo­r­ma­ción, es decir, tra­n­s­co­di­fi­car, desplazar, combinar o manipular datos es­tru­c­tu­ra­dos (JSON, XML, etc.) o datos no es­tru­c­tu­ra­dos (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 re­or­ga­ni­zar bases de datos o crear copias de seguridad de manera au­to­ma­ti­za­da.
  • Apli­ca­ción de asi­s­te­n­tes de co­n­ve­r­sa­ción y chat bots: la te­c­no­lo­gía se­r­ve­r­le­ss también es ideal para integrar asi­s­te­n­tes digitales de co­n­ve­r­sa­ción y chat bots.
Ir al menú principal