CLOUD

¿Qué es serverless computing?

El serverless computing también conocido como informática sin servidor se ha convertido en una gran oportunidad de negocio y eficiencia de procesos para las empresas que se inclinan cada vez más hacia la nube. Descubre qué es exactamente la computación serverless.

Serverless Computing: cómo funciona el modelo de informática sin servidor

El Serverless Computing es una práctica que, lejos de tratarse de arquitecturas sin servidor como se piensa, permite que el proveedor de la nube ejecute el servidor y lo administre de forma dinámica asignándole recursos a la máquina.

Esto hace que la característica principal de este modelo sea dejar de lado la antigua forma de administrar los servidores por parte de una persona específica de la empresa y abocarse a la gestión automatizada ejecutada por el proveedor cloud

Es decir, los usuarios no deben accionar la administración que ejecuta las aplicaciones ni el código de producción, sino que será tarea del proveedor de la nube gestionar de forma dinámica el empleo de los recursos que la organización requiere para desarrollar una tarea específica.

Frente a este nuevo paradigma que ha nacido hace algunos años atrás, las labores de computación se facturan de acuerdo al uso real de los recursos que necesita cada aplicación o tarea, lo cual se convierte en un modelo totalmente diferente al tradicional donde primaba la compra de créditos para la utilización de la plataforma. Es decir, solo se pagará por uso en ejecución.

Además, ya no se debe hacer una reserva explícita de instancias de servidor como suele suceder con servicios Platform as a Service (PaaS) en el cual los desarrolladores deben dirigirse al servidor a través de una API y añadir recursos por cuenta propia. Será el proveedor el encargado de hacerlo de forma automatizada y transparente para sus usuarios.

Todas estas funcionalidades de serverless computing permiten que los desarrolladores centren su atención en el desarrollo del software correspondiente. Por supuesto que también deben ser creadas ciertas funciones sin estado que incluyen instructivos acerca de la reacción de un programa específico a determinados sucesos. 

En este modelo la gestión del hardware que gestionan los proveedores es esencial. El desafío de los usuarios consiste en integrar el software y funciones en el espacio de la nube alquilado. El acceso puede ser de dos formas:

  • Sincrónico a través del modelo clásico y conocido como Client-Server.
  • Asincrónico mediante eventos. Esta novedosa funcionalidad evita que se acoplen las diferentes funciones, manteniendo la demanda en un nivel bajo mientras dure la ejecución. Un ejemplo de esta forma de acceso y que suele ser muy utilizado es la carga de una imagen que también sea acompañada por un ícono en miniatura.

A diferencia de otros modelos estándares, serverless brinda los recursos que se requieren en tiempo real durante el lapso de ejecución de esa llamada de función. Lo cual significa que un evento específico será el que active la ejecución del código de la función y el proveedor será el encargado de asignar los recursos para ese código. El usuario pagará cuando finalice la ejecución del mismo.

El método serverless y sus dos modelos principales de ejecución

Debido a la eficiencia de las funciones del método serverless, hoy existen proveedores que ofrecen arquitectura serverless bajo el nombre de Function as a Services (FaaS) y Backend as a Services (FaaS), dos métodos principales de la informática sin servidor.

BaaS: se trata de un método de informática basado principalmente en servicios y aplicaciones de terceros, cuyo acceso se desarrolla a través de una API que fue configurada por el proveedor. Ejemplos son los servicios de autenticación, bases de datos, cifrado, entre otros.

FaaS: Es el modelo de funciones como servicio que facilita a los desarrolladores escribir y actualizar un código que luego se implementa en los contenedores en la nube que gestiona el proveedor. Es una forma rentable y eficaz de implementar microservicios. Las características principales son la simplificación de la integración de los datos, la capacidad de ejecución en un lapso de tiempo breve, la ejecución automática de los eventos cuando se requiera, la gestión completa por parte del proveedor pagando solo por ejecución, no por aplicaciones o servidores que estén funcionando de forma permanente.

Ventajas de contar con la arquitectura serverless

El modelo serverless computing posee múltiples ventajas al permitir la creación, ejecución y procesos sin estar en contacto con el servidor subyacente. Algunas de las más relevantes son:

  • Los desarrolladores ya no deben focalizar su tarea en acciones rutinarias y sin relevancia que llevan un tiempo significativo de ejecución, lo cual potencia su productividad.
  • Logra simplificar profundamente el proceso de implementación de código facilitando tareas como mantenimiento, planificación y aprovisionamiento.
  • Se trata de una tecnología de bajo costo ya que solo se efectúa el pago por lo que es utilizado en tiempo real. Aquello que no se ejecuta no se paga. Además, reduce drásticamente los costos operacionales y fijos como es el caso de los mantenimientos, las licencias e instalaciones. 
  • Agilidad y eficiencia en el suministro de recursos en tiempo real, incluso en momentos con picos de carga que muchas veces resultan imprevisibles.

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

En la práctica, el método serverless fue diseñado para procesar funciones por separado y no grandes secuencias de código. Esta característica posibilita que sea interesante para algunos escenarios como:

  • Procesamiento de datos estructurados y no estructurados. La infraestructura de serverless posibilita el procesamiento de información proveniente del Big Data, decodificando, manipulando, combinando aquellos datos estructurados como JSON o XML y no estructurados como son los audios o las imágenes.
  • Proxy API. Algunas aplicaciones poseen APIs lentas que, a través de serverless se puede acceder fácilmente desde otros sistemas.
  • Backend. Cada vez más empresas utilizan el serverless computing para crear y soportar el backend en la nube.
  • Ejecución basada en horarios específicos. Se emplea el método para ejecutar funciones basadas en eventos pero también según un horario definido, facilitando la organización y automatización, por ejemplo, de copias de seguridad.
  • Chat bots y asistentes virtuales. Esta tecnología también posibilita la integración de asistentes virtuales de conversación.

wso2