Function as a Service (FaaS)
En el ámbito del Cloud computing, en los últimos años se han desarrollado un sinfín de soluciones informáticas ventajosas para los usuarios, principalmente por su disponibilidad independiente de la ubicación y uso flexible en la aplicación. El ámbito más conocido probablemente, Software as a Service o SaaS, reúne todo tipo de softwares que pueden utilizarse con conexión a Internet sin necesitar una versión local.
Function as a Service, o FaaS, son paquetes de aplicaciones desarrollados, administrados y ejecutados por desarrolladores. No requiere una infraestructura propia para su gestión, ya que eso lo proporciona el proveedor de servicios. El desarrollo de las funciones está aislado en los llamados contenedores. El procesamiento de datos o aplicaciones móviles son algunos ejemplos comunes de funciones que encontramos en una aplicación con FaaS. En este artículo, te explicamos qué áreas cubre Function as a Service, cómo pueden utilizar el servicio los desarrolladores y te mostramos las ventajas y desventajas de esta solución de Cloud Computing.
- Domina el mercado con nuestra oferta 3x1 en dominios
- Tu dominio protegido con SSL Wildcard gratis
- 1 cuenta de correo electrónico por contrato
¿Qué es Faas?
Function as a Service es un servicio de computación en nube con el que se pueden desarrollar y poner en funcionamiento aplicaciones. Su particularidad es que el servidor en el que se ejecuta la aplicación y la infraestructura del servicio se encuentran en el proveedor, por lo que los desarrolladores pueden olvidarse de todo lo demás, como el mantenimiento o las actualizaciones periódicas, y centrarse por completo en programar el código de los paquetes de aplicaciones necesarios. El término “función” se refiere a un componente de software que a menudo solo se ejecuta durante segundos. Las aplicaciones están compuestas por una función o una multitud de funciones. Con FaaS, también es posible ensamblar componentes de microservicios que constan de un gran número de funciones.
Aunque es posible acceder a muchas de las soluciones FaaS basadas en la nube, algunas de las arquitecturas FaaS también se despliegan localmente y se instalan y alojan en centros de datos construidos para ello. El proveedor cobra por utilizar la solución FaaS en función de la potencia de cálculo necesaria y del almacenamiento de datos utilizado.
¿Cómo funciona Function as a Service?
Con Function as a Service, los desarrolladores tienen a su disposición un método de implementación de serverless computing. Para ello, se escribe una lógica de negocio dentro del contenedor, y la administración se lleva a cabo completamente a través de una plataforma proporcionada específicamente para este fin. Este tipo de plataformas suelen usarse en la nube, pero el modelo también se utiliza ya con despliegues locales e híbridos.
La particularidad de FaaS es que sigue un sistema reactivo que se controla por eventos. Los eventos se desencadenan en determinadas ocasiones, por ejemplo, al hacer clic en un botón, se llama a la función definida para él. Una vez llamada la función, el servicio espera hasta que se genere un nuevo evento. La base del funcionamiento de FaaS es que la reacción a la acción se inicia y ejecuta directamente. Por ejemplo, subir un archivo de imagen puede desencadenar una reacción que haga que el archivo se convierta automáticamente a un formato determinado.
Para ejecutar la lógica de Function as a Service, suele disponerse siempre de una infraestructura, sin necesidad de procesos de servidor ejecutados permanentemente en segundo plano. Esto, a su vez, tiene un efecto positivo en las opciones de escalado. El proveedor de la nube garantiza la disponibilidad de las funciones definidas y se encarga de asignar los recursos al segundo. Como consecuencia, si llegan pocas peticiones, la aplicación se reduce. Con FaaS, siempre se cargan los recursos que realmente se utilizan, por lo que no hay tiempos de espera.
En la práctica, hay dos tipos de aplicaciones que se adaptan especialmente bien a la implementación de FaaS: las cargas de trabajo que se ejecutan con poca frecuencia y las transacciones de gran volumen.
¿Cuál es la diferencia entre FaaS y SaaS?
La diferencia fundamental entre FaaS y SaaS radica en el alcance de las aplicaciones de ambos servicios en la nube. Mientras que FaaS se mueve en el microcosmos del panorama de las aplicaciones y se limita a funciones sencillas, Software as a Service ofrece a los usuarios aplicaciones extensas.
La característica común de ambos tipos de servicio es que no necesitan disponer de un servidor dedicado para utilizar los servicios. Esto saca de la ecuación todo el esfuerzo de administración y mantenimiento, de manera que los recursos liberados pueden utilizarse para otros proyectos y desarrollos.
Entre las soluciones de SaaS se encuentran por ejemplo Google Drive o Slack, utilizadas por multitud de empresas para realizar las tareas del día a día. SaaS también suele estar claramente definido por el alcance de las funciones, para que los desarrolladores no puedan influir en las funciones adicionales. Como contraposición, con FaaS, los desarrolladores definen las funciones deseadas individualmente según los requisitos existentes.
¿Qué ventajas e inconvenientes tiene Function as a Service?
Ventajas de FaaS
- Desarrollo más rápido: los desarrolladores no han de dedicarle tiempo a configurar o gestionar servidores, por lo que pueden dedicarse todas las capacidades disponibles a escribir las lógicas de la aplicación y de esta manera desarrollar aplicaciones con mayor velocidad.
- Escalabilidad automática: las soluciones FaaS son escalables por naturaleza propia, lo que significa que las consideraciones previas sobre su uso en forma de cantidades de datos recuperados o cantidades de uso son innecesarias. El proveedor realiza automáticamente el escalado necesario y lo calcula al segundo.
- Estructuras de costes eficientes: en Function as a Service, solo se cuenta lo que realmente utilizan los usuarios. Esto significa que no se paga por los recursos eventualmente no necesitados.
- Esfuerzo de gestión mínimo: tanto el alojamiento de un servidor como la gestión y el mantenimiento de la infraestructura del servidor no están en manos de los desarrolladores con FaaS.
- Libertad en la programación: en su mayoría, las soluciones FaaS pueden utilizarse con todos los lenguajes de programación habituales, por lo que no se necesitan conocimientos adicionales de programación para su implementación.
Inconvenientes de FaaS
- Opciones de configuración limitadas: dado que la infraestructura y su gestión recaen sobre el proveedor, los desarrolladores han de trabajar con los sistemas dados. Si eres de los que quieren determinar la infraestructura del servidor pero quieres ahorrarte los recursos del mantenimiento, échale un vistazo a Backend as a Service (BaaS).
- Mayor complejidad en el testeo: dependiendo del proveedor, trasladar el código FaaS a un entorno local de testeo puede no ser tarea fácil. Quizá probar la aplicación requiera más recursos.