Conecta con nosotros

A Fondo

Serverless Computing: casi todo lo que tienes que saber

Publicado el

Mantenimiento de servidores

El serverless computing es una de las tendencias tecnológicas que más ha crecido en los últimos años. Si bien lleva entre nosotros desde principios de esta década, no ha sido hasta hace dos o tres años cuando ha comenzado a ser un fijo en las principales conferencias tecnológicas. Es fácil comprender los motivos. Por un lado, representa una enorme oportunidad de negocio para los principales proveedores cloud. Por otro, también puede implicar un importantísimo ahorro de costes para las empresas que recurren a la nube para desarrollar distintas tareas de computación.

¿Pero en qué consiste exactamente esta tecnología? ¿Quién la está utilizando y cuáles son sus principales ventajas? ¿Es para todo o tiene también algunos inconvenientes? De todo esto es de lo que os hablamos en este reportaje especial.

¿Qué es exactamente el serverless computing?

Lo primero que hay que aclarar es que el término serverless computing puede dar lugar a equívocos, dando la impresión de que hablamos de computación sin necesidad de disponer de servidor. Esto no es exactamente así. En el serverless computing existen por supuesto servidores, pero en vez de ser administrados por una persona, está gestionado de forma automatizada por un proveedor cloud. Es decir la parte «less» de serverless hace referencia a que los clientes no tienen que administrar el servidor que ejecuta sus aplicaciones y resto de código en producción.

Así, en su su uso más básico, el serverless computing se presenta como un servicio de cloud computing en el que el proveedor gestiona de forma dinámica, el uso de los recursos que la empresa cliente necesita para desarrollar una tarea concreta. En este paradigma, las tareas de computación son facturadas en función del uso real de recursos que precisa cada tarea o aplicación, lo que se diferencia en este sentido, de la compra tradicional de «créditos» para el uso de una plataforma.

Una de las ventajas del serverless computing es que simplifica el proceso de implementación de código en escenarios de producción y se facilitan tareas como el escalado de recursos o las operaciones de planificación y mantenimiento, además de que desaparece la necesidad de aprovisionamiento.

¿Quién está ofreciendo servicios de serverless computing?

Actualmente, proveedores como Amazon Web Services, Microsoft Azure, Google Cloud Platfom o IBM Cloud Functions llevan a las empresas de una u otra forma, sus servicios de serverless computing, siendo AWS Lambda el primer gran player en situarse en este terreno, ya en 2014.

En este tipo de tecnología, estos proveedores ofrecen lo que denominan function as a service (FaaS), plataformas que ejecutan la aplicación o el código, pero que no almacenan los datos. Aquí, además de Lambda, podríamos destacar otras plataformas como Google Cloud Functions, IBM Cloud Functions, Azure Functions, así como el proyecto open source OpenWhisk patrocinado por IBM, RedHat, Adobe y otras empresas.

Las funciones que se van a ejecutar en estas plataformas se ofrecen a modo de plantillas, pero también pueden ser «escritas» por las empresas cliente en lenguajes como Java, Go, PowerShell, Node.js JavaScript, C#, Python, o Ruby, si bien no todas tienen soporte para todos los lenguajes.

Como hemos comentado, estas plataformas no almacenan información, sino que únicamente ejecutan código. ¿Dónde se encuentra entonces la información que precisan? Normalmente en los servidores de la empresa cliente o en propio proveedor cloud, si bien en los últimos años han surgido también bases de datos serverless que agilizan la ejecución de aplicaciones, como por ejemplo Azure Data Lake o Google Cloud Datastore.

¿Cuáles son sus principales ventajas y qué empresas se están beneficiando de esta tecnología?

Como hemos indicado, una de las principales ventajas de esta tecnología es que es barata. Las compañías únicamente pagan por lo que utilizan en tiempo real. Si una tarea no se está ejecutando, no se factura.  También se reducen los costes operacionales y fijos, como licencias, gestión e instalación, dependencias, mantenimiento…etc.

Y como también hemos explicado, es el proveedor cloud el que se ocupa de tareas como el escalado de la capacidad de computación en función de la demanda. En el caso de empresas pequeñas, esto limita su dependencia de equipos de infraestructura y soporte, orientando su trabajo a escenarios DevOps.

En cuanto a su uso, según un reciente estudio desarrollado por Tech Pro Research indica que el 47% de las compañías que apuestan por el cloud, utilizan algún tipo de servicio de serverless computing, siendo los más demandados los relacionados con el desarrollo de aplicaciones web, cambios en las bases de datos, trabajos por lotes, tareas programadas, procesamiento de archivos multimedia, etc.

Entre los servicios más utilizados, AWS encabeza la lista con un 49% entre el público encuestado. Le siguen en este orden, Microsoft Azure (36%) y Google Cloud Platform (18%).

¿Y sus principales inconvenientes?

Como no podía ser de otra forma, en el serverless computing no son todo ventajas. En el mismo informe que citábamos antes, un 37% de los encuestados indican por ejemplo, que apostar por escenarios serverless les ata demasiado a un único proveedor, limitando la flexibilidad que se le presupone al mundo cloud.

No es el único problema. En términos de rendimiento por ejemplo, hay un problema de latencia cuando se comparan los tiempos de respuesta de estos escenarios, con respecto a los que ofrece un servidor dedicado. Por otro lado, serverless computing no sirve para todo: los proveedores cloud imponen sus propios límites y por ejemplo, desaconsejan abiertamente el uso de esta tecnología para tareas de high-performance computing.

Incluso si este no fuera el caso, hay otros aspectos que el cliente tiene que considerar. Al dejar todas las tareas de gestión del servidor en manos del proveedor cloud, también implica que monitorizar el uso del código, o las tareas de optimización del mismo son más complicadas. Finalmente también conviene considerar la conveniencia de esta tecnología en materia de privacidad, toda vez que van a ser personas externas a la empresa cliente las que se van a encargar de asignar recursos y gestionar las tareas delegadas.

Con todo, el serverless computing es una tecnología que va a más, porque permite equipos de desarrollo mucho más ágiles, permite liberar recursos IT en la empresa y consigue ahorrar costes especialmente en las áreas tecnológicas que no tienen una importancia crítica.

Periodista tecnológico con más de una década de experiencia en el sector. Editor de MuyComputerPro y coordinador de MuySeguridad, la publicación de seguridad informática de referencia.

Lo más leído