SERVERLESS: ¿Qué es y cómo funciona?

El término Serverless y su traducción al español pueden causar confusión. Como explica ReadWrite, Serverless no significa que no existan servidores que alojen la información de código programático, si no que “los desarrolladores ya no tienen que pensar mucho en ellos. Los recursos informáticos se utilizan como servicios sin tener que gestionar capacidades o límites físicos.”.

Es decir, el tiempo y recursos que un trabajador le tiene que dedicar a la implementación de un Server se ven reducidos y pueden ser destinados a otras tareas. Sin embargo, todavía nos queda por profundizar de qué trata un servicio de Serverless. Te invitamos a seguir leyendo esta nota para conocer más sobre el tema.

 

Serverless: Servers en la Nube

Nuestro partner RedHat señala que el concepto Serverless es “un modelo de desarrollo nativo de la nube que permite que los desarrolladores diseñen y ejecuten aplicaciones sin tener que gestionar servidores”.

Además, el mismo sitio explica que el proveedor del servicio es quien se “encarga de las tareas rutinarias de preparación, mantenimiento y adaptación de la infraestructura de los servidores”.

Para poder usar un sistema de Serverless, el equipo de desarrollo del software debe empaquetar el código en contenedores sin estado, vale decir, en contenedores que no almacena información sobre las operaciones anteriores ni se hace referencia a ellas. Además del código propio del software, también deben existir funciones sin estado que respondan a determinados eventos.

Serverless Stack indica que estos eventos pueden ser “solicitudes HTTP, eventos de base de datos, servicios de colas, alertas de monitoreo, carga de archivos, eventos programados, etc”.

 

Usos óptimos del Serverless

Iones precisa que el Serverless “ha sido concebido principalmente para el intercambio efímero de datos de aplicaciones web y de negocios en la nube”. Este tipo de servicios apunta a alojar funciones por separado, en desmedro de aplicaciones completas o secuencias de códigos muy extensas. El mismo sitio ha creado una lista de distintos escenarios donde el uso de Serverless es compatible.

Proxy API: Existen aplicaciones comerciales antiguas que cuentan con API (interfaces de software) complejas y lentas. Mediante la arquitectura Serverless y una 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 que facilita el acceso a ellas por parte de otros sistemas.

Serverless Backend: el Serverless Computing puede ser usado para construir y soportar todo el Backend de una aplicación en la nube.

Procesamiento posterior de datos (no) estructurados: La infraestructura Serverless puede cumplir tareas de transcodificación, desplazamiento, combinación o manipulación de datos estructurados (JSON, XML, etc.) o datos no estructurados (imágenes, audio, etc.).

Ejecución de tareas según un horario definido: Generalmente, las funciones pueden ejecutarse automáticamente en horarios definidos. Esto sirve para automatizar procesos de reorganización de base de datos y copias de seguridad.

Aplicación de asistentes de conversación: La tecnología Serverless es ideal para integrar asistentes digitales de conversación y chat bots.

 

Ventajas y desventajas

El sistema Serverless entrega muchos beneficios al usuario. Sin embargo, también existen softwares que no son totalmente compatibles con esta tecnología, además de algunos reparos técnicos a tomar en cuenta. IBM comparte algunas ventajas y desventajas a considerar del Serverless.

Ventajas:

  • Permite a los desarrolladores centrarse en el código, no en la infraestructura. Además, da la libertad de codificar en cualquier lenguaje programático (Java, Python, node.js)
  • El cliente paga sólo por los recursos usados durante cada ejecución del software.
  • Para cargas de trabajo que requieren procesamiento paralelo, puede ser más rápida y rentable que otras formas de computación.
  • Las plataformas de desarrollo de aplicaciones Serverless brindan una visibilidad casi total del sistema y los tiempos de los usuarios y pueden agregar esa información de manera sistemática

Desventajas:

  • El Serverless no ofrece grandes ahorros para cargas de trabajo caracterizadas por procesos predecibles, estables o de larga ejecución.
  • A veces, hay casos en que los softwares necesitan comenzar su ejecución desde cero para atender una nueva solicitud.
  • El cambio a arquitecturas de Microservicios y Serverless (y la combinación de las dos) profundizan la complejidad asociada con la administración de tareas de monitoreo y depuración.
  • Las arquitecturas de Serverless están diseñadas para aprovechar un ecosistema de servicios en la nube administrados y, en términos de modelos arquitectónicos, van más allá para desacoplar una carga de trabajo de algo más portátil, como una máquina virtual (VM) o un contenedor Docker. Para algunas empresas, estos patrones representan riesgos de bloqueo materiales que deben mitigarse.