Buscar

Español

Iniciar sesión Cuenta

Iniciar sesión / Registrar Cuenta

Websites

Aplicaciones nativas de la nube

¿Qué es la función como servicio (FaaS)?

La función como servicio, o FaaS, es un modelo de ejecución informática que se basa en eventos y se ejecuta en contenedores sin estado. Esas funciones son las que gestionan la lógica y el estado de los servidores a través del uso de servicios. 

Gracias a la FaaS, los desarrolladores pueden diseñar, ejecutar y gestionar esos paquetes de aplicaciones como funciones, sin tener que mantener su propia infraestructura.

La FaaS es una forma de implementar la informática sin servidor, donde los desarrolladores escriben la lógica empresarial que luego se ejecuta en los contenedores de Linux totalmente gestionados por una plataforma.

Por lo general, esa plataforma se encuentra en la nube, pero el modelo se está expandiendo para incluir implementaciones on-premise e híbridas.

La informática sin servidor traslada ciertas cuestiones relacionadas con la infraestructura, como la gestión o la preparación de servidores y la asignación de recursos, a una plataforma (como Red Hat OpenShift), para que los desarrolladores no tengan que preocuparse por eso y puedan concentrarse en escribir el código y generar valor empresarial.

Una función es una parte del sistema de software que ejecuta la lógica empresarial. Las aplicaciones pueden estar compuestas por varias funciones.

El uso de un modelo FaaS es una forma de diseñar aplicaciones con una arquitectura sin servidor. Sin embargo, debido a que el paradigma de la informática sin servidor es cada vez más popular, los desarrolladores buscan soluciones que admitan el desarrollo de microservicios de este tipo y de contenedores sin estado.

Estos son algunos ejemplos de FaaS conocidos:

  • AWS Lambda
  • Google Cloud Functions
  • Microsoft Azure Functions (open source)
  • OpenFaaS (open source)

¿Cómo funciona la FaaS?

La FaaS ofrece a los desarrolladores una abstracción para que ejecuten las aplicaciones en respuesta a ciertos eventos, sin tener que gestionar servidores. Por ejemplo, al cargar un archivo podría activarse un código personalizado que transcodifique el archivo a varios formatos.

La infraestructura de FaaS se mide principalmente a través de un modelo de ejecución basado en eventos, según se solicite. Esto significa que está a su disposición si la necesita, pero ninguno de los procesos del servidor tiene que estar ejecutándose en segundo plano de forma permanente; a diferencia de la plataforma como servicio (PaaS)

Las soluciones de PaaS modernas ofrecen capacidades sin servidor como parte de los flujos de trabajo comunes que los desarrolladores pueden utilizar para implementar aplicaciones, lo cual atenúa las diferencias entre la PaaS y la FaaS. 

De hecho, las aplicaciones modernas estarán compuestas por una combinación de estas soluciones: funciones, microservicios y servicios de ejecución prolongada.

Un proveedor de nube se encarga de que su función esté disponible y de gestionar la asignación de los recursos. Dado que las funciones se basan en eventos y no en recursos, son fáciles de ampliar.

Hay limitaciones arquitectónicas que impiden obtener algunos de estos beneficios, como los límites de tiempo en la ejecución de una función, por lo cual una función debe ser un elemento que pueda iniciarse y ejecutarse rápidamente. 

Las funciones se inician en cuestión de milisegundos y procesan solicitudes individuales. En caso de haber varias solicitudes simultáneas para su función, el sistema creará tantas copias de la función como sea necesario para satisfacer la demanda.

Un beneficio de la FaaS es el escalamiento dinámico, lo cual significa que cuando la demanda disminuye, la aplicación se reduce automáticamente. Pero no solo eso, además es rentable, ya que los proveedores solo cobran por los recursos que se utilizan y no por el tiempo de inactividad.

Cuando la ejecución es on-premise, esta naturaleza dinámica también puede aumentar la densidad de su plataforma, lo cual permite ejecutar más cargas de trabajo y optimizar el uso de los recursos.

Un servicio basado en eventos que necesita escalar horizontalmente puede funcionar bien como una función, así como aplicaciones de RESTful. 

La FaaS funciona correctamente para las operaciones de gran volumen, las cargas de trabajo que solo ocurren de vez en cuando, como la elaboración de informes, el procesamiento de imágenes o cualquier tarea programada. Los casos de uso comunes de FaaS son el procesamiento de datos, los servicios de IoT y las aplicaciones móviles o web.

Puede diseñar una aplicación completamente sin servidor utilizando la FaaS, o conformar una aplicación de microservicios parcialmente sin servidor y parcialmente tradicionales.

Beneficios de la FaaS

  • La productividad de los desarrolladores aumenta y el tiempo de implementación disminuye.
  • No tiene que ocuparse de la gestión de los servidores.
  • Es fácil de ampliar, y la plataforma gestiona el escalamiento horizontal.
  • Solo se utilizan los recursos cuando es necesario y se paga solo por aquellos utilizados.
  • Las funciones pueden escribirse en casi todos los lenguajes de programación.

¿Cuál es la diferencia entre la FaaS y la informática sin servidor?

Al principio, los términos FaaS e informática sin servidor significaban más o menos lo mismo, pero la informática sin servidor se ha expandido para incluir un conjunto más amplio de prácticas y patrones arquitectónicos que hacen un mayor uso de los servicios comunes, además de la lógica empresarial personalizada codificada en la FaaS.

Tanto los microservicios como las aplicaciones tradicionales pueden utilizar la informática sin servidor, siempre y cuando puedan organizarse en contenedores y cumplir con los requisitos de escalamiento dinámico y gestión del estado. 

El término "sin servidor" también se utiliza para representar servicios gestionados, como bases de datos y sistemas de mensajería, donde un desarrollador o un administrador no necesita gestionar el sistema, ya que un proveedor de nube o una empresa externa se encarga de hacerlo.  

La combinación de la FaaS con los servicios de back-end comunes (como las bases de datos, la mensajería y la autenticación), que se conectan principalmente a través de una arquitectura basada en eventos, es lo que más beneficia a los desarrolladores de la informática sin servidor.

La base de Kubernetes para la informática sin servidor

Red Hat OpenShift Logo

Plataforma de contenedores y Kubernetes para implementar aplicaciones nativas de la nube con mayor rapidez.

Red Hat OpenShift Application Runtimes logo

Selección de marcos y tiempos de ejecución de las aplicaciones adecuados para desarrollar aplicaciones nativas de la nube.