16

Cómo usar microservicios sin un servidor

149795Puntos

hace 4 años

Un microservicio es una pieza de software que se encarga de hacer una tarea específica dentro del sistema. Un ejemplo de ello es Auth0, el cual nos provee una API para manejar la autenticación de usuarios; otro muy conocido es Algolia, el cual puede indexar el contenido que deseamos y nos entregue un API para realizar búsquedas. Por otro lado, tenemos el término serverless. Si realizamos una traducción literal, seria sin servidor, pero esto no es del todo cierto. Con el auge de los microservicios, lo que busca es delegar ciertas tareas de nuestra aplicación a servicios de terceros, con lo cual sólo necesitamos ejecutar un script que realice dichas peticiones a terceros. Teniendo estos conceptos un poco más claros, vamos a ver que son los Serverless microservices, y cuál es su utilidad.

¿Qué es un microservicio sin servidor?

Esta arquitectura de software permite al desarrollador abstraerse de servidores, infraestructura y configuraciones complicadas, dejando las tareas complejas en manos de terceros. Como te conté antes, existen servicios de este tipo para casi cualquier cosaalgunos gratis, y en su mayoría de pago pero con una capa de uso gratuita, que permite probar algunas de sus capacidades. Un ejemplo de ello es el free tier de Amazon S3, donde podemos almacenar información en sus servidores sin pagar un peso, siempre y cuando sea dentro de ciertos límites. ¿Cuál entonces, es la diferencia entre una arquitectura con servidor y una sin servidor, o serverless?

Arquitectura tradicional

Es la usada en la mayoría de apps y servicios existentes. En ella, el cliente — a través de un navegador - realiza una petición al servidor que almacena nuestra aplicación o sitio web; éste, a su vez, realiza una petición a la base de datos, que puede o no estar en otro servidor. Arquitectura Tradicional Luego, la información regresa desde la base de datos al servidor, éste procesa la información, y retorna la información ya procesada al cliente.

Arquitectura serverless, o sin servidor

Es una nueva arquitectura que está tomando fuerza en los últimos meses. En esta, la petición del cliente es interceptada por una puerta de enlace, o API Gateway, que se encarga de redirigir el tráfico al microservicio correspondiente. En el ejemplo de la imagen, es hacia un servicio de autenticación (como Auth0); luego, lo enruta hacia un servicio que le da acceso a nuestro usuario a un subconjunto de nuestra base de datos. La función de búsqueda y compras son manejadas por FaaS — Funciones como un Servicio, que explicaremos un poco más adelante. Por último, tenemos la base de datos de compras, la que reside en nuestro servidor. Serverless Microservices Como mencionaba, las FaaS (por sus siglas en inglés) o Funciones como Servicios son pequeños scripts que realizan tareas específicas y muy acotadas. Algunas de sus ventajas son:
  • Corren sin necesidad de configuraciones complejas en el servidor.
  • No se deben escribir pensando en el uso de alguna librería o framework específico.
  • El despliegue de la aplicación es diferente: solo es necesario subir el código, y el proveedor del servicio se encarga del resto.
  • El escalamiento horizontal es automático y manejado por el proveedor.
Existen algunos proveedores para ejecutar FaaS. Uno de ellos es AWS Lambda, el cual viene acompañado de una completa documentación para que lo implementes.

Beneficios

  • Reducción en el tiempo de configuración.
  • Abstracción de la infraestructura, configuración, mantenimiento de servidores.
  • Reducción de costos en infraestructura y servicios de DevOps.
La arquitectura de software sin servidor nos permite, de una manera más económica, iniciar un producto o servicio y no perder tiempo en desarrollar todo desde cero, y adicionalmente, de evitarnos todo lo relacionado a configuración y administración de servidores. Fuentes:
Diego Alexander
Diego Alexander
@gollum23

149795Puntos

hace 4 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
1
5893Puntos

Excelente! Graças Diego, muy buena explicación!