Implementación de una arquitectura #serverless. ¿Conocés?

La arquitectura de microservicios ha llegado para quedarse. Aquí les dejo escrito varios post sobre esta arquitectura, sus ventajas y por qué las empresas están usándola en el blog de Paradigma. Ahora sí, comencemos.

Esta arquitectura destaca por “no tener servidor”. Ahora mismo habrá muchos que estará pensando que me he vuelto loco, ya que si no hay servidor es imposible ejecutar el código. Efectivamente hay servidor, sólo que nosotros no tenemos que saber que existe, ni administrarlo ni preocuparnos de si esta disponible o no.

Con este artículo queremos ir un paso más allá y ver una arquitectura que muchas empresas están empezando a usar y que en algunos casos puede ser un buen sustituto de la arquitectura de microservicios. Hablamos de la arquitectura serverless, aunque podríamos llamarla arquitectura de nanoservicios. Para ello hablaremos de AWS Lambda.

Lambda1

AWS Lambda: la apuesta de Amazon por la arquitectura serverless

Aunque en este post nos centremos en Amazon Lambda, producto del gran proveedor de servicios de Internet, Amazon, no debemos olvidar los otros dos grandes: Google Cloud y Microsoft Azure, productos similares.

Este tipo de arquitectura ejecuta el código que hayamos creado basado en distintos eventos. No es necesario tener una máquina con nuestro código y un servidor de aplicaciones que lo ejecute, simplemente cuando ocurra un evento que definamos se ejecutará el código que hayamos configurado.

Lambda2

Pero, ¿qué eventos podemos definir? La ventaja que tiene este servicio de Amazon es que se puede unir a Amazon API Gateway. Este servicio de Amazon nos permite crear unos endpoints para crear una API y basado en estos endpoints configurar qué código del que tenemos en AWS Lambda ejecutará cada uno de ellos.

De esta forma no tenemos que tener ningún servidor donde resida nuestro código, sólo lo subimos y configuramos la API para que ejecute ese código. Gracias a las políticas de autoescalado que podemos configurar en Amazon podemos hacer servicios que siempre respondan independientemente de la carga que tengan.

A día de hoy, los lenguajes que soporta AWS Lambda son Java, NodeJS y Python, pero seguro que irán llegando otros.

Pero aún hay más. AWS Lambda permite añadir otro tipo de eventos para nuestro código como eventos de buckets de S3, el servicio de almacenamiento de Amazon y, por ejemplo, usarlo como hacen en Idealista.com. En su plataforma, cuando sus usuarios suben un archivo, éste se almacena en un bucket S3. El evento es recogido por un código que crea los thumbnails y se encarga de actualizar los datos en su base de datos.

Otras empresas como Playon usa eventos para codificar en tiempo real videos a distintos formatos y servirlos a distintas plataformas en función de la velocidad de conexión.

Pero aún hay mucho más. Hay infinidad de eventos que pueden ser consumidos por código en AWS tales como Kinesis, DynamoDB, SNS, eventos programados…

Las posibilidades son infinitas y sólo tenemos que preocuparnos por nuestro código, lo demás lo dejamos en las expertas manos de Amazon.

Fuente: Paradigma Digital

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s