Serverless computing se traduce muchas veces como «computación sin servidor», aunque no es la mejor manera de hacerlo. Se trata de un modelo de ejecución de computación en la nube en el que el proveedor de la nube ejecuta el servidor y administra dinámicamente la asignación de recursos de la máquina.
Esto, simplificando, significa que se trata de un servicio totalmente gestionado. Es decir, nos permite olvidarnos de los servidores y su gestión, del sistema operativo… Desde el punto de vista del desarrollo de aplicaciones, es como si no hubiese «nada por debajo».
Por tanto, no es necesario reservar explícitamente instancias de servidor como sí pasa con servicios PaaS o, por supuesto, en el caso de IaaS. Es la plataforma, el proveedor, quien hace esto de forma automática y transparente para los usuarios.
Es un tipo de servicio que encaja muy bien para cargas de trabajo que responden a eventos entrantes. Por ejemplo, por medio de temporizadores que permiten ejecutar una función cada día a cierta hora, colas de procesamiento de pedidos, etc. Esta característica permite que la facturación, normalmente, sea también en función de cuándo se ejecuta el código. Es decir, solo se paga por uso, pero por uso en ejecución.
El Serverless computing va un paso más allá de lo que se conoce como arquitectura de microservicios, que no es más que «una aproximación para el desarrollo de software que consiste en construir una aplicación como un conjunto de pequeños servicios, los cuales se ejecutan en su propio proceso y se comunican con mecanismos ligeros». La pega de esta arquitectura de microservicios es que incrementa el trabajo de gestión y mantenimiento de la infraestructura, algo que se soluciona gracias a la computación «sin servidor».
El serverless computing, un nuevo modelo de ejecución de #CloudComputing, va un paso más allá de lo que conocemos como arquitectura de microservicios Share on XDe esta manera, desde el punto de vista del desarrollador lo único que verdaderamente importa es definir cada funcionalidad y cada lógica de negocio. El resto es cosa del proveedor de servicios en la nube. Por tanto, este tipo de funciones permiten centrarse en las aplicaciones, y no en la gestión o configuración de los servidores. Por tanto, la actividad será más productiva y, como «bola extra», el coste se puede reducir sensiblemente.
Una de las implementaciones más conocidas de este tipo de arquitectura es FaaS —Functions as a Service—. Muchas veces se identifica FaaS como arquitectura serverless y, por tanto, sus características se describen de la misma manera. FaaS se puede ver, además, como «ejecución de código como servicio».
Como todo, el serverless computing tiene sus ventajas —ya comentadas—, y estas son algunas de sus desventajas o limitaciones:
- Vendor lock-in, es complicado migrar de un proveedor a otro.
- Existe una limitación del tiempo máximo de ejecución de una función, y también una limitación del tamaño máximo de la función.
- Es posible que la ejecución sufra latencias si es su primera ejecución o si lleva tiempo sin ejecutarse.
- Se trata de un entorno cerrado y gestionado por terceros, así que no es posible realizar personalizaciones ni optimizaciones.
Deja tu comentario sobre "¿Qué es serverless computing?"