Primeras Impresiones De Serverless

Serverless es un framework creado por la gente de AWS, para facilitar el uso de lambda. OK si esto sonó un poco complejo no te preocupes aquí te contaré un poco más sobre todos estos temas.

AWS

AWS es una serie de herramientas que nos entrega amazon para trabajar con servidores en la nube. Esto nos trae muchas cosas interesantes, como la creación de servidores, bases de datos y servicios de envío de correo masivo configurando todo usando un interfaz web.

Entre sus servicios podemos encontrar:

  • EC2: Instancias de servidores que pueden ser configurados a gusto con distintos sistemas operativos

  • S3: Lugar donde almacenar contenido estático como imágenes, videos, css o cualquier cosa.

  • RDS: Lugar donde hacer deploy de máquinas dedicadas únicamente a bases de datos.

  • lambda: Configuración de funciones.

  • Gateway API: Definición de rutas para api rest.

  • … etc

Suena a una maravilla?? es por que lo es los únicos problemas que podrías encontrar son:

  • Cobros: cada una de estas unidades tiene un cobro distinto, con distintas unidades y variables que aunque se ajustan a cuanto las uses, son algo complejas aun cuando su calculadora de costos.

  • Deployment: Si no usas alguna herramienta automatizada para hacer deploy, es bastante complejo configurar todo lo necesario para dejar todo funcionando.

Para aplicaciones comunes (RoR, Django, php, etc) hace algún tiempo ya se cuenta con EBS, el cual es una herramienta de AWS que nos permite configurar de manera sencilla el stack completo para hacer deploy, pero la parte de lambda y api gateway eran herramientas que habían sido un poco dejado de lado por las diferencias que tienen con los otros tipo de servicios.

Serverless

Aqui es donde Serverless sale a relucir, serverles nos permite crear endpoints para api rest de manera rápida y sencilla, asociando una función nuestra a un evento (request a una url)

El framework se basa los siguientes elementos:

  • Events:

    Eventos son situaciones que generan la ejecución de una de las funciones.

  • Functions:

    La función que deseamos que se ejecute, se gatilla con algún evento, por lo general debe entregar alguna respuesta.

  • Resources:

    Elementos que puede user nuestra función, puede ser buckets de s3, base de datos, mensajes ha emails, entre otros

  • Services:

    El servicio es la combinación de lo anterior para generar lo que deseamos.

Ejemplo

En el proximo post, hare un ejemplo de implementacion de autentificacion con JWT. Nos vemos la próxima semana.