Función como servicio ( FaaS ) es una categoría de servicios de computación en la nube que proporciona una plataforma que permite a los clientes desarrollar, ejecutar y administrar funcionalidades de aplicaciones sin la complejidad de construir y mantener la infraestructura típicamente asociada con el desarrollo y lanzamiento de una aplicación. [1] Construir una aplicación siguiendo este modelo es una forma de lograr una arquitectura " sin servidor " y generalmente se utiliza al construir aplicaciones de microservicios .
FaaS fue ofrecido inicialmente por varias empresas emergentes alrededor de 2010, como PiCloud. [2]
AWS Lambda [3] fue la primera oferta de FaaS de un gran proveedor de nube pública, seguida de Google Cloud Functions , Microsoft Azure Functions , OpenWhisk de IBM / Apache ( código abierto ) en 2016 y Oracle Cloud Fn (código abierto) en 2017.
Los casos de uso de FaaS están asociados con la funcionalidad "a pedido" que permite que la infraestructura de soporte se apague y no incurra en cargos cuando no se utiliza. Los ejemplos incluyen el procesamiento de datos (por ejemplo, procesamiento por lotes , procesamiento de flujo , extracción-transformación-carga (ETL)), servicios de Internet de las cosas (IoT) para dispositivos conectados a Internet , aplicaciones móviles y aplicaciones web . [4] Otro caso de uso del mundo real puede ser la creación de API para aplicaciones ya creadas sin interrumpir ni modificar la funcionalidad actual o existente de la aplicación.
Los servicios de alojamiento de aplicaciones de plataforma como servicio (PaaS) son similares a los FaaS en el sentido de que también ocultan los "servidores" a los desarrolladores. Sin embargo, estos servicios de alojamiento suelen tener siempre al menos un proceso de servidor en ejecución que recibe solicitudes externas. La escalabilidad se logra iniciando más procesos de servidor, por lo que normalmente se cobra directamente al desarrollador. En consecuencia, la escalabilidad sigue siendo visible para el desarrollador. [5]
Por el contrario, FaaS no requiere que ningún proceso de servidor se ejecute constantemente. Si bien una solicitud inicial puede tardar más en procesarse que una plataforma de alojamiento de aplicaciones (hasta varios segundos [6] ), el almacenamiento en caché puede permitir que las solicitudes posteriores se procesen en cuestión de milisegundos. Como los desarrolladores solo pagan por el tiempo de ejecución de la función (y no por el tiempo de inactividad del proceso), se pueden lograr costos más bajos con una mayor escalabilidad (a costa de la latencia).