¿Qué es FaaS y por qué está revolucionando la forma en la que alojamos las funciones?

Julián David Pardo Díaz
Poetri
Published in
3 min readJan 17, 2019

Para entender esto, volvamos unos 10 años atrás. Hacia aquel momento para poder ofrecer una funcionalidad web era necesario poseer un servidor que corriera los servicios necesarios, la idea se veía razonable en principio, sin embargo, tiene varias limitaciones que hacen desestimar esta idea en muchos casos.

Usar el arma más poderosa para derrotar al enemigo más débil.

Es necesario montar una gran infraestructura para poder ofrecer el servicio, lo cual se convierte en una tarea bastante tediosa si lo que se pretende es ejecutar pequeños fragmentos de código. Tener que montar y configurar una máquina para hacer esto es como comprar una gran espada para poner mermelada a una tostada.

Los recursos quedan completamente subutilizados.

Imagina que tu función actualiza una base de datos a partir de un evento dado. Computacionalmente realizar esta tarea no necesita de un esfuerzo extraordinario, sin embargo, para que tu función pueda estar lista para ser llamada, tu servidor debe estar encendido todo el tiempo, en donde la mayoría del tiempo va a estar esperando a que se genere la acción. Solo imagina las posibilidades de lo que se podría hacer si el servidor aprovechará este tiempo “muerto”.

Escalar las funciones, una pesadilla completa.

Si la función es mucho más compleja, como hacer el render de algo muy grande, una máquina se podría quedar corta, y sería necesario adquirir más recursos para poder solucionar los requerimientos, además se volvería necesario elaborar una arquitectura que permita la distribución de la carga en las máquinas. Como encargado de gestionar la IT de una empresa, hacer esto varias veces al año debe ser una idea que te puede provocar náuseas.

Para solucionar estos problemas hay varios modelos interesantes, pero sin duda el que es más llama la atención por la forma en que soluciona el problema es el modelo Function as a Service (FaaS). Este modelo consiste en delegar a un tercero la responsabilidad de hacer que el código que tu desarrolles se ejecute cuando sea necesario, y se cobre solo el tiempo que la función estuvo encendida. Evitando tener que adquirir, configurar y mantener una infraestructura para poder ejecutar el código. El único requisito para poder poder usar una función es escribirla y subirla. Actualmente, hay varios proveedores que ofrecen este servicio, pero nos enfocaremos en 2: Amazon Lambda y Poetri, a continuación te dejamos algunas características de estas 2 plataformas.

AWS Lambda

Lambda es el servicio ofrecido por Amazon para poder alojar y correr funciones en el modelo FaaS, algunas de las cosas que ofrece son.

  • Soporta varios lenguajes de programación. Lambda actualmente soporta Java, Node.js, C# y Python.
  • El cobro por tiempo de ejecución se da en intervalos de 100ms.
  • Posee un sistema de recuperación de errores.
  • Se integra con demás servicios web de Amazon.

Poetri

Poetri es una empresa colombiana surgida en el 2018 con el objetivo de crear una comunidad para el ambiente de desarrollo, al mismo tiempo que se ofrece FaaS, algunas de las características que ofrece son.

  • Soporta la mayoría de lenguajes de programación usados hoy en día. Poetri permite correr funciones escritas en Java, Node.js, C#, Python, Ruby y Go. Permite correr funciones que están escritas en varias versiones de los lenguajes.
  • Es gratis. El objetivo de Poetri es atraer nuevos desarrolladores para que ayuden a construir la comunidad, por lo tanto, por ahora alojar y usar funciones no tiene ningún costo.
  • Posee ingenieros altamente calificados para resolver las dudas o los inconvenientes que aparezcan en el camino.
  • Permite usar una gran variedad de funciones que se encuentran disponibles en el Marketplace de Poetri, un espacio que permite que cada desarrollador suba su función y la ponga a disposición para que otros usuarios la puedan usar a cambio de una retribución económica que depende del número de ejecuciones de la función.

--

--