intive Argentina Blog

Cuando te adaptás a los microservicios, vienen los serverless

En otro artículo, habíamos hablado un poco de los microservicios. Ahora, trataremos sobre una tendencia que surgió muy recientemente y que, en mi opinión, -a diferencia de los microservicios que fueron impulsados por los propios desarrolladores- está siendo  promocionada por AWS, Azure y Google Cloud: Serverless.

Antes de adentrarnos en detalles, tenemos que ser prudentes y marcar una diferencia clave con los microservicios, y así hacer de la definición de Serverless un proceso menos doloroso: la arquitectura de microservicios es el resultado de aplicar el “divide y vencerás” para evitar los problemas de una arquitectura monolítica, mientras que Serverless surge con la idea de configurar y dejar de provisionar servidores desentendiendose de la administración a bajo y medio nivel de la infraestructura -y que el proveedor de servicios en la nube se encargue de ella-.

En algunas lecturas encontramos que Serverless se relaciona formalmente con el término FaaS (Function as a Service), en el cual el desarrollador genera un conjunto de líneas de código que sólo tiene una funcionalidad (obtener un registro de una base de datos o guardar un usuario, por ejemplo). Al generar el código, la expone por medio de algunos productos (por ejemplo, entre los que proporciona AWS, algunos ejemplos son Route 53, Api Gateway y S3) proporcionados por la nube y la aplicación es así consumida por los usuarios. En esta presentación de Amazon Web services podemos ver cómo funciona esta arquitectura.

Bajo el modelo de Serverless el equipo se enfoca directa y solamente en la funcionalidad; la nube luego se encargará de la manera de exponer el código, generar métricas y, además, escalar el producto según las demandas que existan, lo cual representa una economía del esfuerzo que realiza el equipo. Además, normalmente, el modelo de pago se enfoca únicamente en pagar el costo de procesamiento de los servidores de la nube y la cantidad de solicitudes recibidas.

Algunos grandes beneficios

La arquitectura basada en Serverless proporciona:

  • Reducción de costos operativos y de servicios. Se cobra solamente lo que se usa, no existiendo infraestructura ociosa
  • Usabilidad con un mínimo esfuerzo. El proveedor se encarga de provisionar todo lo necesario mientras el equipo de desarrollo sólo configura los parámetros fundamentales para que la funcionalidad sea utilizada
  • Productividad. Se pueden enfocar los esfuerzos ya que sólo se ocupa de las funcionalidades -y no del cómo y dónde va a funcionar el equipo-

Y algunos inconvenientes

Aunque es prometedora, esta arquitectura también presenta conflictos al ser implementada:

  • Las funciones infrecuentes sufren mucha latencia cuando la nube busca reducir la infraestructura ociosa
  • No es sano ni recomendable aplicarla cuando la funcionalidad exige una gran carga de procesamiento
  • Metodologías como TDD (Test Driven Development) son sumamente complicadas de implementar, un set de pruebas completo de punta a punta incluyendo infraestructura es en algunos casos imposible
  • Se necesitan conocimientos en muchos servicios involucrados en su correcto funcionamiento para proporcionar la configuración óptima para cada uno, por lo cual un rol que se encargue de infraestructura no puede ser desestimado
  • Cambiar de proveedor de servicios en nube podría ser una gran cruzada, cuyo éxito depende de que existan servicios similares

Algunas tecnologías emergentes como asistentes virtuales, bots y IoT son los principales consumidores de este tipo de arquitectura. Por lo cual, es posible que se extienda a otros tipos de áreas. En conclusión, Serverless es una arquitectura emergente que aún tiene que atravesar grandes desafíos, pero -sin dudas- con muchas oportunidades interesantes en el camino.

Rodolfo Cordero

Rodolfo Cordero es desarrollador en la compañía desde junio de 2016. Es Licenciado en Desarrollo de Software, graduado de la Universidad Latina de Costa Rica, país del cual es oriundo. Asiduo lector y melómano, hizo cursos de coctelería y barismo, habilidades con las que deleita al staff de intive en los afters organizados por la compañía.

Deja un comentario