La función como servicio (FaaS) representa 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. Este patrón arquitectónico se asocia comúnmente con la informática sin servidor, donde los desarrolladores pueden concentrarse en escribir el código de su aplicación y el proveedor de la nube administra el entorno de ejecución.
Seguimiento de la historia y los orígenes de la función como servicio (FaaS)
El inicio de la Función como Servicio (FaaS) está fuertemente vinculado a la evolución de la computación en la nube. El nacimiento de la computación en la nube a principios de la década de 2000 puso en el centro de atención la infraestructura como servicio (IaaS) y la plataforma como servicio (PaaS). Sin embargo, los desarrolladores todavía necesitaban gestionar servidores en ambos modelos, aunque menos con PaaS.
El gran avance se produjo en 2014, cuando Amazon Web Services (AWS) presentó AWS Lambda como la primera plataforma FaaS. Eliminó por completo la necesidad de que los desarrolladores se preocuparan por los servidores. Lambda permitió a los desarrolladores ejecutar su código en respuesta a eventos como cambios en los datos en un depósito de Amazon S3 o actualizaciones en una tabla de Amazon DynamoDB. Esto marcó un cambio revolucionario en la forma en que se podían crear y entregar aplicaciones.
Profundizando en la función como servicio (FaaS)
FaaS es un método sin servidor para ejecutar piezas modulares de código en el borde. En lugar de implementar una aplicación o un servicio completo, los desarrolladores pueden ejecutar pequeñas partes de funciones que realizan una tarea única y definida. Estas funciones son "sin estado" porque están diseñadas para ser de corta duración y ejecutarse dentro de un entorno sin estado. El proveedor de la nube administra automáticamente los recursos que necesita para ejecutarse y escalar.
Las funciones se activan mediante eventos como solicitudes HTTP, operaciones de bases de datos, colas, almacenamiento, etc. El proveedor ejecuta la función y devuelve el resultado una vez completada con éxito. Una característica clave de FaaS es que solo paga por el tiempo de procesamiento real de la función y no por la infraestructura subyacente.
Desentrañando la estructura interna y el mecanismo de trabajo de FaaS
En un modelo FaaS, la lógica de la aplicación se divide en funciones separadas. Estos son administrados por una plataforma subyacente y normalmente no tienen estado. Al recibir un evento, la plataforma rápidamente genera recursos para ejecutar la función, procesa el evento y luego apaga los recursos cuando finaliza el procesamiento.
- Activador de evento: un evento como una solicitud HTTP, una carga de archivo o una operación de base de datos activa la función.
- Inicialización de funciones: El proveedor de la nube prepara la función para su ejecución. Esto puede implicar iniciar un contenedor y cargar el código de función en él.
- Ejecución: La función se ejecuta con los datos del evento proporcionados.
- Respuesta: La función procesa los datos del evento y devuelve un resultado. También podrá interactuar con otros servicios o bases de datos como parte de este procesamiento.
- Cerrar: Una vez que la función haya terminado de ejecutarse, el proveedor de la nube cerrará los recursos utilizados para ejecutar la función.
Características clave de la función como servicio (FaaS)
- Evento conducido: Las funciones se ejecutan en respuesta a eventos o desencadenantes.
- Apátrida: Las funciones no retienen información entre ejecuciones.
- Escalable: El proveedor de la nube gestiona automáticamente la escala de la función.
- Efímero: Se espera que las funciones se inicien rápidamente, se ejecuten durante un breve periodo de tiempo y luego se detengan.
- Pagar para usar: El precio se basa en el tiempo de cálculo real utilizado por la función.
Diferentes tipos de función como servicio (FaaS)
Si bien el concepto básico de FaaS sigue siendo el mismo, diferentes proveedores de nube ofrecen productos FaaS ligeramente diferentes. Algunos de los más populares incluyen:
Proveedor | Producto FaaS |
---|---|
AWS | lambda |
Nube de Google | Funciones de la nube |
MicrosoftAzure | Funciones de Azure |
IBM | Funciones de la nube |
Oráculo | Proyecto Fn |
Formas de utilizar la función como servicio (FaaS), problemas y soluciones
FaaS es particularmente útil para aplicaciones que necesitan responder a información en tiempo real o solicitudes esporádicas. Por ejemplo, se puede utilizar para el procesamiento de archivos en tiempo real, la transformación de datos o el procesamiento de flujo de eventos. Sin embargo, existen desafíos potenciales relacionados con los límites de tiempo de ejecución, la gestión del estado, las pruebas y la depuración. Las soluciones incluyen un diseño cuidadoso del código de función para cumplir con los límites de tiempo de ejecución y el uso de servicios en la nube adicionales para administrar el estado.
Comparación con conceptos similares
Concepto | Descripción |
---|---|
FaaS | Los desarrolladores proporcionan código de función. La plataforma maneja automáticamente toda la infraestructura. |
IaaS | Los desarrolladores administran las aplicaciones, los datos, el tiempo de ejecución y el middleware. El proveedor se encarga de la virtualización, los servidores, el almacenamiento y las redes. |
PaaS | Los desarrolladores gestionan las aplicaciones y los datos. El proveedor maneja el tiempo de ejecución, el middleware, el sistema operativo, la virtualización, los servidores, el almacenamiento y las redes. |
Perspectivas y tecnologías del futuro relacionadas con FaaS
Es probable que FaaS continúe evolucionando con el ecosistema sin servidor más amplio. Los avances en la informática de punta podrían hacer que FaaS se volviera más frecuente en el borde de la red, más cerca de las fuentes de datos. Además, es posible que veamos más entornos híbridos sin servidor en los que FaaS se utiliza junto con otros modelos informáticos para diferentes partes de una aplicación.
El papel de los servidores proxy en función como servicio (FaaS)
Los servidores proxy pueden desempeñar un papel en FaaS al actuar como intermediarios para las solicitudes de clientes que buscan recursos de otros servidores. Pueden mejorar el rendimiento, proporcionar seguridad y mantener el anonimato. En el contexto de FaaS, se puede utilizar un servidor proxy para manejar solicitudes que activan funciones, ofreciendo capacidades adicionales de control, registro y modificación.