¿Qué es un microservicio sin servidor? | Explicación de los microservicios sin servidor

Los microservicios son segmentos más pequeños de una aplicación que se ejecutan independientemente unos de otros, y se pueden implementar de diversas maneras. Un microservicio sin servidor se implementa en una arquitectura sin servidor.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Definir un microservicio sin servidor
  • Entender cómo funcionan los microservicios sin servidor
  • Diferenciar entre microservicios, contenedores y funciones

Copiar enlace del artículo

¿Qué es un microservicio?

Imaginemos que cogemos una aplicación, la dividimos en partes y la ejecutamos como una colección de partes más pequeñas en lugar de un todo monolítico. Eso es básicamente una arquitectura de microservicios. Cada pieza de la aplicación se llama "microservicio", y realiza un solo servicio, se ejecuta de forma independiente de las demás partes de la aplicación, funciona en su propio entorno y almacena sus propios datos. A pesar del nombre, los microservicios no tienen por qué ser pequeños. Lo que los hace "micro" es que solo se encargan de un servicio y forman parte de una aplicación mayor.

Pensemos en una aplicación desarrollada con microservicios como si fuera un equipo de fútbol americano, en el que cada jugador desempeña un papel distinto, pero los jugadores juntos forman un equipo (la aplicación completa) que logra objetivo colectivo. O pensemos en los microservicios como los diferentes sistemas del cuerpo humano (circulatorio, respiratorio, etc.), y en la aplicación como el cuerpo entero.

Desde la perspectiva del usuario, una aplicación desarrollada con microservicios tiene una única interfaz y debería funcionar igual que una aplicación diseñada como una pila. Sin embargo, cada microservicio tiene su propia base de datos en segundo plano y se ejecuta por separado del resto de la aplicación. Además, los microservicios en la misma aplicación pueden estar escritos en diferentes lenguajes y utilizar diferentes bibliotecas.

Arquitectura monolítica vs. arquitectura de microservicios

Los microservicios se suelen comparar con la arquitectura monolítica. La arquitectura monolítica es la forma clásica de desarrollar una aplicación. Una aplicación monolítica es una sola pila, con la interfaz de usuario en la parte superior, la lógica de negocio en el centro y la base de datos en la parte inferior. Por lo general, una aplicación monolítica se aloja en un servidor o conjunto de servidores específicos. Una de las desventajas de crear una aplicación de esta manera es que cualquier pequeño cambio en la aplicación implica que se tiene que actualizar toda la pila. Otra desventaja es que si una parte de la aplicación se rompe, puede fallar toda la aplicación.

Ventajas de los microservicios

  • Resiliencia: como la aplicación está dividida, el hecho de que una parte de la aplicación deje de funcionar o falle no afecta necesariamente al resto de la aplicación.
  • Escalabilidad selectiva: en lugar de escalar toda la aplicación, solo se pueden escalar los microservicios que se usan mucho
  • Es más fácil añadir o actualizar funciones: las funciones pueden implementarse o actualizarse de una en una, en lugar de tener que actualizar toda la pila de aplicaciones
  • Flexibilidad para los desarrolladores: los microservicios se pueden escribir en diferentes lenguajes y cada uno tiene sus propias bibliotecas

¿Los microservicios pueden formar parte de una arquitectura sin servidor?

Los microservicios pueden implementarse de diversas formas; pueden formar parte de una arquitectura sin servidor, alojarse en contenedores, desarrollarse utilizando PaaS o, teóricamente, utilizarse para crear una aplicación alojada en local. Sin embargo, las ventajas de construir una aplicación a partir de microservicios quizá sean más evidentes cuando la aplicación se aloja en la nube, ya sea mediante el uso de contenedores o en una arquitectura sin servidor.

¿Qué son los microservicios sin servidor? Cómo funciona una arquitectura de microservicios sin servidor?

Los microservicios sin servidor se implementan en la infraestructura de un proveedor sin servidor y solo se ejecutan cuando la aplicación los necesita. En función del tamaño de un microservicio, también puede dividirse en funciones todavía más pequeñas. Para más información sobre cómo funciona la informática sin servidor, consulta ¿Qué es la informática sin servidor?

¿Cuál es la diferencia entre un microservicio y una función sin servidor?

Esta distinción sigue en proceso de definición por parte de la comunidad tecnológica, pero normalmente un microservicio es más grande y puede hacer más que una función. Una función es un trozo de código relativamente pequeño que realiza una sola acción en respuesta a un evento. En función de cómo los desarrolladores hayan dividido una aplicación, un microservicio puede ser equivalente a una función (lo que significa que solo realiza una acción), o puede estar formado por múltiples funciones.

Sigamos con la metáfora del fútbol americano, pensemos en todas las funciones que tiene un quarterback: pasar, entregar el balón al corredor, etc. Si el quarterback es como un microservicio dentro del contexto del equipo (proporcionando el servicio de "hacer cosas de quarterback"), entonces cada una de estas actividades más pequeñas es una función. Sin embargo, la línea entre un microservicio y una función puede llegar a ser borrosa, al igual que hay ciertos jugadores en un equipo de fútbol americano que realizan una única acción, como el kicker.

¿Los Cloudflare Workers son microservicios?

Los Cloudflare Workers son piezas de código JavaScript que se alojan en la red perimetral de Cloudflare y se ejecutan en respuesta a solicitudes HTTP. Los Workers se comportan más bien como funciones, pero ofrecen la flexibilidad de funcionar también como microservicios; Cloudflare no limita el tamaño o el tipo de Workers que los desarrolladores pueden crear e implementar.