Jump to section

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

Copiar URL

La función como servicio (FaaS) es un tipo de servicio de cloud computing que permite que los desarrolladores diseñen, ejecuten y gestionen paquetes de aplicaciones como funciones sin tener que ocuparse del mantenimiento de su propia infraestructura.

Es un modelo de ejecución que se basa en los eventos y se ejecuta en contenedores sin estado. Las funciones son las que gestionan la lógica y el estado de los servidores mediante el uso de los servicios de un proveedor de FaaS.

Las soluciones de FaaS están disponibles en las principales nubes públicas y pueden implementarse de manera local, lo cual agrega funciones nuevas e importantes a la TI empresarial para el desarrollo de las aplicaciones. Obtenga la guía sobre la estrategia original de la nube y prepárese para implementar un enfoque sin servidor con la FaaS.

Estos son algunos ejemplos conocidos de FaaS:

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

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

Aunque por lo general se trata de una plataforma de cloud computing que usa los servicios de nube, el modelo se está expandiendo para incluir implementaciones locales e híbridas.

En la informática sin servidor, hay una plataforma (como Red Hat® OpenShift®) que se encarga de las tareas relacionadas con la infraestructura, como la gestión o la preparación de los servidores y la asignación de los recursos, para que los desarrolladores no deban ocuparse de ellas 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 en el sistema operativo. Las aplicaciones pueden estar compuestas por varias funciones.

Se puede utilizar un modelo de FaaS para diseñar aplicaciones con una arquitectura sin servidor, pero debido a que 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.

La FaaS permite que los desarrolladores ejecuten las aplicaciones web en respuesta a ciertos eventos, sin tener que gestionar los servidores. Por ejemplo, cuando se carga un archivo podría activarse un código personalizado que lo convirtiera a diferentes formatos.

En general, el proveedor del servicio proporciona la infraestructura de la FaaS según se solicite, principalmente a través de un modelo de ejecución basado en eventos. Esto significa que está a su disposición si la necesita, pero no es necesario que los procesos del servidor se ejecuten en segundo plano de forma permanente, como ocurre con la plataforma como servicio (PaaS)

Las soluciones modernas de PaaS ofrecen funciones 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, habrá aplicaciones enteras compuestas por una combinación de funciones, microservicios y servicios de larga duración.

Un proveedor pone la función a su disposición mediante una interfaz de programación de aplicaciones (API) y gestiona la asignación de los recursos. Dado que las funciones se basan en los eventos y no en los recursos, se pueden adaptar con facilidad, lo cual aumenta su eficiencia y valor.

Hay ciertas condiciones en cuanto a la arquitectura para obtener algunos de estos beneficios, como los límites de tiempo en la ejecución de una función, por lo cual se debe poder iniciar y ejecutar una función rápidamente. 

Las funciones se inician en cuestión de milisegundos y procesan solicitudes individuales. En caso de que haya varias solicitudes simultáneas para una función, el sistema creará tantas copias como sean necesarias para satisfacer la demanda.

Una de las ventajas de la FaaS es la adaptación dinámica, lo cual significa que cuando disminuye la demanda, la capacidad de la aplicación se reduce automáticamente. Además es rentable, ya que los proveedores solo cobran por los recursos que se utilizan y no por el tiempo de inactividad.

Cuando se ejecuta en las instalaciones, esta naturaleza dinámica también puede aumentar la densidad de su plataforma, lo cual le permite ejecutar más cargas de trabajo y optimizar el uso de los recursos y las funciones.

Un servicio basado en eventos que debe ampliarse a través de la incorporación de recursos puede funcionar bien como una función o como aplicaciones de RESTful

La FaaS es ideal para las operaciones de gran volumen y las cargas de trabajo esporádicas, como la elaboración de informes, el procesamiento de imágenes o cualquier tarea programada. Los casos prácticos comunes de la 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 crear una aplicación que contenga elementos sin servidor y microservicios tradicionales para aprovechar las tecnologías y los sistemas más nuevos de organización en contenedores, como Kubernetes.

  • Se mejora la productividad de los desarrolladores y se agiliza la implementación.
  • No debe ocuparse de la gestión de los servidores.
  • Es fácil de ampliar, y la plataforma gestiona la incorporación de equipos.
  • Solo se utilizan los recursos cuando es necesario y se paga únicamente por aquellos utilizados.
  • Las funciones pueden escribirse en casi todos los lenguajes de programación.

Al principio, ambos términos 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 de arquitectura 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 los requisitos de adaptación dinámica y gestión del estado. 

La expresión "sin servidor" también se utiliza para representar a los servicios gestionados, como las bases de datos y los sistemas de mensajería, donde no es necesario que el desarrollador o el administrador gestione el sistema, ya que el proveedor de nube o la empresa externa se encarga de hacerlo.  

Lo que más beneficia a los desarrolladores de la informática sin servidor es la combinación de la FaaS con los servicios comunes de backend (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.

Artículos recomendados

ARTÍCULO

Sistemas con estado y sin estado

El que un sistema tenga estado depende del tiempo durante el cual se registra interacción con él y de la forma en que se debe almacenar esa información.

ARTÍCULO

¿Qué es Quarkus?

Quarkus es una pila de Java propia de Kubernetes que se creó para las compilaciones originales y las máquinas virtuales Java (JVM), la cual permite optimizar esta plataforma especialmente para los contenedores.

ARTÍCULO

¿Qué es la informática sin servidor?

Se trata de un modelo de desarrollo directamente en la nube que posibilita el diseño y la ejecución de aplicaciones sin que sea necesario gestionar servidores.

Más información sobre las aplicaciones desarrolladas en la nube

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Contenido adicional

Capacitación

Capacitación gratuita

Developing Cloud-Native Applications with Microservices Architectures