¡No te pierdas ninguna publicación! Suscríbete a The Softtek Blog
El término Serverless se podría traducir al castellano como “sin servidores”. La realidad es que simplemente es un término de marketing que busca enfatizar la principal ventaja de esta tecnología: “olvidarse de la gestión de servidores” para el despliegue de aplicaciones y servicios.
Serverless es un concepto que define el foco en el desarrollo de funciones de negocio puras y la ausencia de tareas operativas para la gestión de infraestructura como pueden ser: el aprovisonamiento, la administración y el escalado, debido a que estas tareas son gestionadas por el proveedor de la plataforma.
En el mundo del Serverless existen 2 opciones:
En este post hablaré de Serverless visto desde la perspectiva de FaaS. La principal característica es que las funciones se almacenan en el servidor pero no son ejecutadas hasta su invocación, es decir, funcionan bajo demanda y el proveedor del servicio factura solo en función del tiempo de ejecución. Esto permite optimizar los costos de operación de la infraestructura de una forma muy atractiva.
Serverless es posible gracias a la llegada del cloud, la virtualización de la infraestructura y la creación de la tecnología de contenedores. Gracias a esta última, ha sido posible demostrar que rutinas de código con dependencias aisladas pueden ser ejecutadas en tiempo real y bajo demanda, sin necesidad de mantenerlas en ejecución de forma continuada.
Esto ha permitido encontrar una alternativa para optimizar el uso de la infraestructura a fin de usar de forma más eficiente los recursos y, al mismo tiempo, reducir los costes de mantenimiento.
Serverless proporciona una serie de ventajas interesantes:
Por supuesto el modelo Serverless (FaaS) tiene también ciertas desventajas:
De la misma forma que sucede con otras arquitecturas y tecnologías, Serverless no es la solución a todos los problemas. Estos son algunos casos de usos en donde Serverless y FaaS pueden ser una buena alternativa:
Por supuesto, éstos solo son unos cuantos casos de uso en donde Serverless puede o está siendo utilizado de forma útil, sin embargo, cualquier aplicación o servicio que requiera de una ejecución corta y basada en eventos puede ser susceptible de ser realizada usando FaaS.
Actualmente, la mayoría de las grandes empresas proveedoras de soluciones cloud ofrecen una solución serverless (FaaS):
Serverless puede ser una solución interesante para la reducción y optimización de costos de infraestructura. El concepto de "pago por lo que consumo" (pay as you go) se refuerza con la aparición de soluciones basadas en FaaS.
De cara a una implementación, lo ideal es comenzar con un pequeño proyecto para validar que la tecnología se adapta a nuestras necesidades. Incluso es posible abordar parte de un proyecto existente y desarrollar una nueva funcionalidad adicional con esta tecnología a través de una arquitectura híbrida.
Gracias a la tecnología Serverless el costo total de propiedad (TCO) de una aplicación puede ser muy atractivo, pero no todas las aplicaciones son candidatas a ser migradas a Serverless, al menos de forma directa, antes se requiere el realizar una evaluación pertinente para adaptar la arquitectura de la aplicación a los requerimientos que impone la tecnología Serverless.
Otro elemento importante a considerar, es el tema de la dependencia del proveedor de FaaS (lock-in) en caso de requerir migrar a otro proveedor, caso poco frecuente pero posible. Sin embargo, es posible minimizar esta dependencia si se planifica desde el inicio para asegurar que el código pueda ser migrado a otro proveedor o incluso de forma interna con un menor esfuerzo.