faas (1).png
Ciencia y Tecnología

FaaS: ¿la conoces?

FaaS significa Función como Servicio, es un tipo de servicio nativo en la nube popular, que permite a los desarrolladores una manera de construir e implementar servicios web escalables. Si ya aprovechas las ventajas del SaaS, IaaS o PaaS, puede que te interese descubrir qué puede ofrecerte FaaS.

Las dos grandes fortalezas de FaaS

Entre las ventajas de FaaS se encuentran las de poder hacer frente a dos de los desafíos a los que se enfrentan los desarrolladores y administradores de sistemas que desean construir y mantener servicios web escalables. Son los siguientes:

  • Controla automáticamente la ejecución de los cálculos en respuesta a los cambios en la carga de solicitud del servicio web (por ejemplo, escalado automático). Los programadores escriben cómputos sin estado de ejecución, que son invocados por otras funciones o activadas automáticamente por "eventos" que la nube presenta al servicio web. Por ejemplo, es posible registrar una función que se activará cada vez que llegue una nueva solicitud de servicio web, cada vez que se acceda a un registro en una base de datos escalable, cada vez que se agregue una entrada de cola a un servicio de cola escalable, etc. Esto sucede ya que FaaS utiliza un estilo de programación basado en eventos. Se accede a todos los servicios que los servicios web deben usar desde la nube de alojamiento a través de eventos activados, al igual que todos los cálculos que el servicio debe realizar. Por esta razón, la funcionalidad de FaaS, a menudo, se denomina computación "sin servidor", ya que la implementación (que requiere el aprovisionamiento y mantenimiento de "servidores") es gestionada automáticamente por este servicio. Así, los programadores de FaaS solo necesitan cargar y registrar sus funciones. A su vez, estas solo podrán computarse localmente (y por períodos cortos que están limitados por el proveedor de la nube) y acceder a los servicios en la nube a través de API e interfaces específicas del lenguaje.
  • Reduce el coste operativo asociado con el alojamiento de un servicio web escalable. El enfoque típico requiere que el administrador del sistema aprovisione, primero, un conjunto de recursos virtuales en una nube y, luego, implemente el software del servicio web en esos recursos. Cada recurso (generalmente se alquila por separado) incurre en un cargo por ocupación o uso, cuya suma total constituye el coste total recurrente de mantener el servicio web. Para la implementación de FaaS de un servicio web, se incurre en un coste que, a menudo, es solo una fracción del precio que suponen otras alternativas. Como las funciones solo se ejecutan en respuesta a eventos, el operador del servicio paga únicamente por lo que consume. De esta forma, se evitan los cargos típicos asociados con el alquiler de los servidores virtuales necesarios para albergar cálculos, equilibradores de carga de red, bases de datos, etc.

Originalmente desarrollado para servicios web escalables, FaaS recientemente ha despertado el interés de aquellos que están desarrollando aplicaciones para "Internet de las cosas" (IoT). En el corto plazo, sus objetivos menos ambiciosos son integrar las capacidades de detección y actuación de manera ubicua en varios entornos (como las Smart Cities o la domótica). Debido a que muchas aplicaciones de IoT incorporan dispositivos de detección simples, se pueden programar como sistemas controlados por eventos.