Resumen
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 para el desarrollo de aplicaciones empresariales. Obtén la guía sobre la estrategia original de la nube y prepárate 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)
FaaS y la informática sin servidor
La FaaS es una manera de implementar la informática sin servidor, gracias a la cual los desarrolladores escriben 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, los desarrolladores no se ocupan de las tareas de la infraestructura, como la gestión o la implementación de los servidores y la asignación de los recursos. Estas se delegan a una plataforma (como Red HatⓇ OpenShiftⓇ) para que los desarrolladores puedan centrarse en escribir 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.
Recursos de Red Hat
Funcionamiento de la FaaS
La FaaS permite que los desarrolladores ejecuten las aplicaciones web en respuesta a ciertos eventos, sin tener que gestionar los servidores. Por ejemplo, la carga de un archivo podría activar un código personalizado que lo convirtiera a diferentes formatos.
El proveedor de servicios suele medir 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 tu disposición cuando la necesitas, pero no requiere que se ejecuten procesos de servidor en segundo plano constantemente, como lo haría una plataforma como servicio (PaaS).
Las soluciones modernas de PaaS ofrecen funciones sin servidor integradas a 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 completas están compuestas por una combinación de funciones, microservicios y servicios de larga duración.
Adaptación dinámica con la FaaS
Un proveedor hace que la función esté disponible 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.
Para obtener algunos de estos beneficios, existen ciertas condiciones en cuanto a la arquitectura, como los límites de tiempo para ejecutar una función. Por lo tanto, estas deben iniciarse y ejecutarse 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 usan y no por el tiempo de inactividad.
Cuando se ejecuta en las instalaciones, esta naturaleza dinámica también puede aumentar la densidad de tu plataforma, lo cual te 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 desempeñar bien el papel de una función, al igual que las aplicaciones 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.
Puedes 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.
Ventajas de la FaaS
- Ayuda a mejorar la productividad de los desarrolladores y agiliza la implementación.
- No debes ocuparte 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.
Diferencias entre la FaaS y la informática sin servidor
Al principio, ambos términos significaban más o menos lo mismo. Sin embargo, con el tiempo, la informática sin servidor se expandió e incluye 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 ajuste dinámico 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 un proveedor de nube o una 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.
El blog oficial de Red Hat
Obtenga la información más reciente sobre nuestro ecosistema de clientes, socios y comunidades.