No es mentira que la tendencia actual en el mundo digital es sin duda alguna hacer de la computación algo transparente, y es ahí donde entran las nuevas tecnologías cloud, dentro de las cuales está el Serverless Computing o funciones Lambda.
Aquí te explicaremos todo lo que tienes que saber sobre este tema:
¿Qué es Serverless Computing?
El término Serverless se usa para definirun modelo de computación en el cual un proveedor nos permite crear y ejecutar aplicaciones y procesos sin hacernos cargo de la infraestructura subyacente.
La realidad es que aunque su nombre nos indique de forma literal “sin servidores”, sigue habiendo servidores involucrados, pero en este caso, es el proveedor el que se encarga de administrarlos.
Gracias a este modelo, la computación pasa a convertirse en un servicio más, como la luz o el agua, en el que sólo pagamos en función de nuestro consumo y necesidades, significando un importante ahorro de costes para las empresas que implementan este tipo de tecnologías en el desarrollo de sus tareas de computación.
Es importante no confundir el Serverless Computing con otros servicios existentes en el cloud como:
IaaS
Infraestructura como servicio. Donde la unidad de despliegue es el servidor virtual o la máquina virtual, como Digital Ocean, OVH o AWS Ligthsail.
CaaS
Contenedores como servicio. La unidad de despliegue es el contenedor, como Google Cloud Engine o Microsoft Azure Container Service.
PaaS
Plataforma como servicio. Aquí la unidad de despliegue es la aplicación, ayudando al cliente a no gestionar ni controlar la red, los servidores, los sistemas operativos o el almacenamiento, como Google App Engine o RedHat OpenShift.
BaaS o MBaaS
Backend como servicio o Mobile Backend como servicio. Nos proporciona características como gestión de usuarios, notificaciones push, integración de servicios de redes sociales, etc, a través de distintos tipos de backends disponibles en el cloud, consumiéndoles como si se tratara de un API tradicional.
¿Cuándo usar Serverless Computing?
Proxy API
Gracias a la arquitectura serverless y la puerta de enlace API adecuada, se puede crear una capa de abstracción alternativa que nos ayudará a acceder a estas aplicaciones mediante una API REST que facilite el acceso a ellas.
Serverless Backend
Este tipo de tecnologías cada vez se usa más para construir y soportar todo el backend de una aplicación en la nube.
Procesamiento de datos
Hoy en día es imposible imaginar un entorno de negocios sin big data y es aquí donde entra el Serverless Computing, ya que nos ayuda a transcodificar, desplazar, combinar o manipular datos estructurados como JSON o XML o datos no estructurados como imágenes o audio.
Ejecución de tareas con frecuencia fija
en algunos casos existen tareas que no sólo se ejecutan con base en eventos, sino también según un horario definido, de esta forma podemos automatizar algunas funciones como reorganizar bases de datos o crear copias de seguridad.
Chat bots
esta tecnología es ideal para integrar asistentes digitales de conversación y chat bots, ya que responden a eventos que son mensajes de usuarios, lo que los hace ideales para una arquitectura Serverless.
¿Quién ofrece estos servicios?
El primer gran nombre en este terreno fue sin duda AWS Lambda, una plataforma de computación sin servidor que ofrece AWS, en la que nos permite ejecutar código sin administrar servidores en tiempo real, cada código que se ejecuta en AWS Lambda es denominado Lambda functions (funciones Lambda).
Actualmente se han sumado otros proveedores como Amazon Web Services, Microsoft Azure, Google Cloud Platform o IBM Cloud Functions, llevando a diversas empresas sus servicios de Serverless Computing, y ofreciendo plataformas que ejecutan la aplicación o el código, pero que no almacenan datos, en este campo además de Lambda deberíamos mencionar otras plataformas como Azure Functions, Google Cloud Functions o el proyecto open source OpenWhisk patrocinado por IBM, RedHat, Adobe y otras empresas.
Ventajas | Desventajas |
Costes inferiores ya que las compañías únicamente pagan por lo que utilizan en tiempo real y se reducen los costes de operación fijos. | Gran dependencias del proveedor, en caso de querer cambiar de proveedor, suele ser necesario escribir nuevamente todas las funciones basadas en eventos. |
Suministro ágil de los recursos en tiempo real, incluso en casos de picos de carga imprevisibles o un crecimiento desproporcionado. | La implementación de las estructuras Serverless requiere un gran esfuerzo. |
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 lo general, no es posible realizar análisis profundos de errores y rendimiento. |
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 periodo de duración. |