Desde hace algunas semanas estoy metido de lleno en la adopción de un tipo de arquitectura que se ha dado en llamar serverless. Aunque ya me he referido a ello en este mismo blog hace unos pocos meses, creo que es muy interesante profundizar en el tema (realmente da para mucho) y poner de manifiesto el cambio brutal que se nos viene encima a los desarrolladores y arquitectos de aplicaciones.

 

Del XaaS al serverless

En el principios de los tiempos de la nube, hace sólo unos pocos años, se acuñaron los términos XaaS (lo que sea como servicio) para denominar la traslación de conceptos tradicionales al nuevo entorno. Así por ejemplo, tenemos el IaaS (Infrastructure as a Service), término en el que se incluye el caso de que los servidores hasta el sistema operativo los puedo crear a través de un simple menú o desde la línea de comandos in preocuparme de los detalles de bajo nivel, de su mantenimiento y de su administración.

Por encima del IaaS, yendo a un nivel mayor de abstracción, tenemos el PaaS y el SaaS. El primero de ellos estaría dirigido precisamente a los desarrolladores, ya que te proporciona un servidor de aplicaciones para que puedas poner tu código, arrancar el servidor y listo, ya tienes tu aplicación funcionando. El segundo, el software como servicio, se entiende perfectamente si ponemos el ejemplo de Gmail, únicamente hay que entrar en la web y ya podemos usar el correo electrónico, es un concepto orientado al usuario final.

En mi opinión, estos tres conceptos han sido verdaderamente rompedores, y en muchas empresas ni siquiera se han aprovechado completamente, únicamente se están dando algunos pasos para utilizarlos y queda aún mucho recorrido.

Pero por otra parte, aún teniendo en cuenta sus indudables ventajas, creo que son conceptos que no han sido verdaderamente disruptivos. ¿Por qué digo esto? Porque creo que han sido una migración de los conceptos que teníamos en los datacenter (on premise) a la nube, el mismo concepto de infraestructura, de servidores o de software con menos o ninguna administración.

Lo verdaderamente disruptivo, a mi modo de ver, es lo siguiente que viene después de esto, lo que algunos llaman serverless o incluso, los amantes de las siglas, han empezado a llamar FaaS (Functions as a service).

Si es la primera vez que escuchas el término serverless, seguro que te llevará a engaño. No es, ni mucho menos, que una aplicación de frontend que se desarrolle no tenga servidor. Lo que viene a significar, es ni más ni menos, que el servidor como tal no nos importa, simplemente usamos servicios de terceros (normalmente por separado) para nuestra aplicación. Quizás el proveedor de servicio de identidades sea uno, el de almacenamiento sea otro, etc. etc.

Los principios el serverless

Para los que gustan de tener listas con principios ahí va una creo que está bien resumida. Un servicio serverless es aquel que…

  1. Usa un servicio de computación para ejecutar código bajo demanda (no servidores)
  2. Escribe funciones sin estado con un sólo propósito
  3. Diseña procesos organizados por eventos (push-based)
  4. Crea aplicaciones de front-end más potentes
  5. Adopta servicios de terceros

Como desarrollador, para mí esto es un sueño, simplemente pon tu código en tu sitio y se ejecutará y no sólo eso, admitirá la demanda de carga que quieras (escalabilidad “infinita”) y sólo paga por lo que uses ¿quién da más?

¿Y qué pinta tiene una aplicación serverless? Pues como es mejor una imagen que mil palabras, os recomiendo que le eches un vistazo a este artículo técnico de Idealista, la web inmobiliaria, acerca de cómo procesan las fotos de los pisos que puedes ver en su web, es increíble.

One more thing… los contenedores

Y por último, no me resisto a dejar de ser un poco polémico, ¿Cómo deja esto a los contenedores (los docker) que tan populares se han hecho últimamente?. Bueno, creo que con la imagen de la evolución que he incluido en esta entrada lo digo todo (por cierto la he sacado de aquí). Creo que el serverless es la evolución de los docker… ¿Una tema interesante verdad? creo que daría para otra entrada… 😉

 

Anuncios