En el ámbito del Cloud computing, en los últimos años se han de­sa­rro­lla­do un sinfín de so­lu­cio­nes in­fo­r­má­ti­cas ve­n­ta­jo­sas para los usuarios, pri­n­ci­pa­l­me­n­te por su di­s­po­ni­bi­li­dad in­de­pe­n­die­n­te de la ubicación y uso flexible en la apli­ca­ción. El ámbito más conocido pro­ba­ble­me­n­te, Software as a Service o SaaS, reúne todo tipo de softwares que pueden uti­li­zar­se con conexión a Internet sin necesitar una versión local.

Function as a Service, o FaaS, son paquetes de apli­ca­cio­nes de­sa­rro­lla­dos, ad­mi­ni­s­tra­dos y eje­cu­ta­dos por de­sa­rro­lla­do­res. No requiere una in­frae­s­tru­c­tu­ra propia para su gestión, ya que eso lo pro­po­r­cio­na el proveedor de servicios. El de­sa­rro­llo de las funciones está aislado en los llamados co­n­te­ne­do­res. El pro­ce­sa­mie­n­to de datos o apli­ca­cio­nes móviles son algunos ejemplos comunes de funciones que en­co­n­tra­mos en una apli­ca­ción con FaaS. En este artículo, te ex­pli­ca­mos qué áreas cubre Function as a Service, cómo pueden utilizar el servicio los de­sa­rro­lla­do­res y te mostramos las ventajas y de­s­ve­n­ta­jas de esta solución de Cloud Computing.

Dominios web
Compra y registra tu dominio ideal
  • Domina el mercado con nuestra oferta 3x1 en dominios
  • Función Domain Connect para una co­n­fi­gu­ra­ción DNS si­m­pli­fi­ca­da gratis
  • Registro privado y gratis para mayor seguridad

¿Qué es Faas?

Function as a Service es un servicio de co­mpu­tación en nube con el que se pueden de­sa­rro­llar y poner en fu­n­cio­na­mie­n­to apli­ca­cio­nes. Su pa­r­ti­cu­la­ri­dad es que el servidor en el que se ejecuta la apli­ca­ción y la in­frae­s­tru­c­tu­ra del servicio se en­cue­n­tran en el proveedor, por lo que los de­sa­rro­lla­do­res pueden olvidarse de todo lo demás, como el ma­n­te­ni­mie­n­to o las ac­tua­li­za­cio­nes pe­rió­di­cas, y centrarse por completo en programar el código de los paquetes de apli­ca­cio­nes ne­ce­sa­rios. El término “función” se refiere a un co­m­po­ne­n­te de software que a menudo solo se ejecuta durante segundos. Las apli­ca­cio­nes están co­m­pue­s­tas por una función o una multitud de funciones. Con FaaS, también es posible ensamblar co­m­po­ne­n­tes de mi­cro­se­r­vi­cios que constan de un gran número de funciones.

Aunque es posible acceder a muchas de las so­lu­cio­nes FaaS basadas en la nube, algunas de las ar­qui­te­c­tu­ras FaaS también se de­s­plie­gan lo­ca­l­me­n­te y se instalan y alojan en centros de datos co­n­s­trui­dos para ello. El proveedor cobra por utilizar la solución FaaS en función de la potencia de cálculo necesaria y del al­ma­ce­na­mie­n­to de datos utilizado.

¿Cómo funciona Function as a Service?

Con Function as a Service, los de­sa­rro­lla­do­res tienen a su di­s­po­si­ción un método de im­ple­me­n­ta­ción de se­r­ve­r­le­ss computing. Para ello, se escribe una lógica de negocio dentro del co­n­te­ne­dor, y la ad­mi­ni­s­tra­ción se lleva a cabo co­m­ple­ta­me­n­te a través de una pla­ta­fo­r­ma pro­po­r­cio­na­da es­pe­cí­fi­ca­me­n­te para este fin. Este tipo de pla­ta­fo­r­mas suelen usarse en la nube, pero el modelo también se utiliza ya con de­s­plie­gues locales e híbridos.

La pa­r­ti­cu­la­ri­dad de FaaS es que sigue un sistema reactivo que se controla por eventos. Los eventos se des­en­ca­de­nan en de­te­r­mi­na­das 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 fu­n­cio­na­mie­n­to de FaaS es que la reacción a la acción se inicia y ejecuta di­re­c­ta­me­n­te. Por ejemplo, subir un archivo de imagen puede des­en­ca­de­nar una reacción que haga que el archivo se convierta au­to­má­ti­ca­me­n­te a un formato de­te­r­mi­na­do.

Para ejecutar la lógica de Function as a Service, suele di­s­po­ne­r­se siempre de una in­frae­s­tru­c­tu­ra, sin necesidad de procesos de servidor eje­cu­ta­dos pe­r­ma­ne­n­te­me­n­te en segundo plano. Esto, a su vez, tiene un efecto positivo en las opciones de escalado. El proveedor de la nube garantiza la di­s­po­ni­bi­li­dad de las funciones definidas y se encarga de asignar los recursos al segundo. Como co­n­se­cue­n­cia, si llegan pocas pe­ti­cio­nes, la apli­ca­ció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 apli­ca­cio­nes que se adaptan es­pe­cia­l­me­n­te bien a la im­ple­me­n­ta­ción de FaaS: las cargas de trabajo que se ejecutan con poca fre­cue­n­cia y las tra­n­sac­cio­nes de gran volumen.

¿Cuál es la di­fe­re­n­cia entre FaaS y SaaS?

La di­fe­re­n­cia fu­n­da­me­n­tal entre FaaS y SaaS radica en el alcance de las apli­ca­cio­nes de ambos servicios en la nube. Mientras que FaaS se mueve en el mi­cro­co­s­mos del panorama de las apli­ca­cio­nes y se limita a funciones sencillas, Software as a Service ofrece a los usuarios apli­ca­cio­nes extensas.

La ca­ra­c­te­rí­s­ti­ca 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 ad­mi­ni­s­tra­ción y ma­n­te­ni­mie­n­to, de manera que los recursos liberados pueden uti­li­zar­se para otros proyectos y de­sa­rro­llos.

Entre las so­lu­cio­nes de SaaS se en­cue­n­tran por ejemplo Google Drive o Slack, uti­li­za­das por multitud de empresas para realizar las tareas del día a día. SaaS también suele estar cla­ra­me­n­te definido por el alcance de las funciones, para que los de­sa­rro­lla­do­res no puedan influir en las funciones adi­cio­na­les. Como co­n­tra­po­si­ción, con FaaS, los de­sa­rro­lla­do­res definen las funciones deseadas in­di­vi­dua­l­me­n­te según los re­qui­si­tos exi­s­te­n­tes.

¿Qué ventajas e in­co­n­ve­nie­n­tes tiene Function as a Service?

Ventajas de FaaS

  • De­sa­rro­llo más rápido: los de­sa­rro­lla­do­res no han de dedicarle tiempo a co­n­fi­gu­rar o gestionar se­r­vi­do­res, por lo que pueden dedicarse todas las ca­pa­ci­da­des di­s­po­ni­bles a escribir las lógicas de la apli­ca­ción y de esta manera de­sa­rro­llar apli­ca­cio­nes con mayor velocidad.
  • Es­ca­la­bi­li­dad au­to­má­ti­ca: las so­lu­cio­nes FaaS son es­ca­la­bles por na­tu­ra­le­za propia, lo que significa que las co­n­si­de­ra­cio­nes previas sobre su uso en forma de ca­n­ti­da­des de datos re­cu­pe­ra­dos o ca­n­ti­da­des de uso son in­ne­ce­sa­rias. El proveedor realiza au­to­má­ti­ca­me­n­te el escalado necesario y lo calcula al segundo.
  • Es­tru­c­tu­ras de costes efi­cie­n­tes: en Function as a Service, solo se cuenta lo que realmente utilizan los usuarios. Esto significa que no se paga por los recursos eve­n­tua­l­me­n­te no ne­ce­si­ta­dos.
  • Esfuerzo de gestión mínimo: tanto el alo­ja­mie­n­to de un servidor como la gestión y el ma­n­te­ni­mie­n­to de la in­frae­s­tru­c­tu­ra del servidor no están en manos de los de­sa­rro­lla­do­res con FaaS.
  • Libertad en la pro­gra­ma­ción: en su mayoría, las so­lu­cio­nes FaaS pueden uti­li­zar­se con todos los lenguajes de pro­gra­ma­ción ha­bi­tua­les, por lo que no se necesitan co­no­ci­mie­n­tos adi­cio­na­les de pro­gra­ma­ción para su im­ple­me­n­ta­ción.

In­co­n­ve­nie­n­tes de FaaS

  • Opciones de co­n­fi­gu­ra­ción limitadas: dado que la in­frae­s­tru­c­tu­ra y su gestión recaen sobre el proveedor, los de­sa­rro­lla­do­res han de trabajar con los sistemas dados. Si eres de los que quieren de­te­r­mi­nar la in­frae­s­tru­c­tu­ra del servidor pero quieres ahorrarte los recursos del ma­n­te­ni­mie­n­to, échale un vistazo a Backend as a Service (BaaS).
  • Mayor co­m­ple­ji­dad en el testeo: de­pe­n­die­n­do del proveedor, trasladar el código FaaS a un entorno local de testeo puede no ser tarea fácil. Quizá probar la apli­ca­ción requiera más recursos.
Ir al menú principal