paint-brush
Proxy inverso: la columna vertebral de la arquitectura de microserviciospor@infinity
2,705 lecturas
2,705 lecturas

Proxy inverso: la columna vertebral de la arquitectura de microservicios

por Rishabh Agarwal5m2024/01/17
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

La arquitectura de microservicio implica dividir una aplicación compleja en pequeñas aplicaciones autónomas para que cada una de ellas pueda escalarse y mantenerse de forma independiente. En el centro de la arquitectura de microservicios se encuentra el concepto de proxy inverso. Un proxy inverso desempeña un papel fundamental a la hora de dirigir el tráfico entre diferentes microservicios, así como de distribuir la carga de trabajo entre múltiples instancias de un microservicio.
featured image - Proxy inverso: la columna vertebral de la arquitectura de microservicios
Rishabh Agarwal HackerNoon profile picture
0-item

La arquitectura de microservicio implicaba dividir una aplicación compleja en pequeñas aplicaciones autónomas para que cada una de ellas pudiera escalarse y mantenerse de forma independiente . Con la gran cantidad de beneficios que conlleva la arquitectura de microservicios, no es de extrañar que todos en el sector de TI estén avanzando hacia esta nueva arquitectura.


En el centro de la arquitectura de microservicios se encuentra el concepto de proxy inverso. Un proxy inverso desempeña un papel fundamental a la hora de dirigir el tráfico entre diferentes microservicios, así como de distribuir la carga de trabajo entre múltiples instancias de un microservicio. Sin el proxy inverso, la intrincada red de interacciones y distribución de carga dentro de la arquitectura de microservicios tal como la entendemos hoy simplemente no sería factible.


¡Profundicemos en el papel de un proxy inverso en una configuración de microservicios!

¿Qué es un apoderado?

Un proxy es un servidor que se encuentra entre la computadora de un cliente e Internet. Cualquier tráfico que sale de la máquina del cliente pasa a través del servidor proxy. Para el resto de Internet, parece como si el servidor proxy estuviera iniciando las solicitudes.


Hay varias razones por las que se utilizaría un servidor proxy. Algunos de ellos son los siguientes:

  • Enmascaramiento de identidad: al utilizar proxy, la identidad real de un cliente no se revela en Internet. Se puede utilizar para acceder a contenido que de otro modo habría estado bloqueado/restringido para el cliente.
  • Configuración de restricciones: usando ciertas configuraciones, los servidores proxy se pueden usar para restringir el acceso a cierto contenido para el cliente.
  • También mejora la seguridad.

¿Qué es un proxy inverso?

Un proxy inverso es un servidor que se encuentra entre Internet y los servidores backend. Cualquier tráfico destinado a los servidores debe pasar a través del proxy inverso. Para el resto de Internet, parece que el proxy inverso está atendiendo las solicitudes.


Existen varios beneficios al utilizar proxies inversos en general. Puede encontrar algunos enumerados aquí .


El concepto de proxy inverso da vida a la arquitectura de microservicios, permitiendo al cliente navegar por el entorno dinámico de los microservicios determinando a qué servidores acceder. Sin este componente vital, el cliente se quedaría sin los medios para navegar eficazmente en el intrincado panorama de la arquitectura de microservicios.

Descubrimiento de servicios 🌍

Los servicios en una arquitectura de microservicio aumentan y disminuyen según la carga. Esto significa que las réplicas de un servicio pueden aparecer y desaparecer en cualquier momento durante la vida útil de una aplicación. El proxy inverso detecta los servidores de un servicio y dirige eficazmente el tráfico del cliente hacia ellos.

Equilibrio de carga ⚖️

Dado que un servicio puede tener varias réplicas en ejecución, resulta importante que las solicitudes del cliente se distribuyan adecuadamente entre los servidores disponibles. El equilibrio de carga es solo otra característica del proxy venerado que se utiliza aquí. El proxy inverso distribuye inteligentemente la carga entre las réplicas disponibles de un servicio.

Monitoreo 🖥️

Dado que cualquier solicitud que ingresa a nuestra aplicación pasa por el proxy inverso, es un buen lugar para monitorear las solicitudes y realizar registros. Ayuda a obtener información crucial sobre la cantidad de servicios presentes en el sistema.

Tráfico interno 🚦

En una configuración de microservicios, también se utiliza un proxy inverso para enrutar el tráfico interno del clúster. Esto es especialmente útil para el caso de comunicación de servicio a servicio.

Almacenamiento en caché 💰

El almacenamiento en caché es una ventaja general que viene con el uso de proxy inverso. El servidor proxy puede devolver resultados almacenados en caché para consultas similares, mejorando así el tiempo de respuesta del cliente.

Agregación ⛙

La solicitud de un solo cliente puede requerir la agregación de respuestas de más de un servicio en el backend. ¡Esta agregación puede realizarse mediante el proxy inverso, dejando al cliente con un punto final limpio para usar!

Proxy entre capas

Se puede utilizar un proxy inverso en diferentes configuraciones. Estas configuraciones normalmente dictan la capa OSI en la que se toma la decisión de enrutamiento. Popularmente, existen dos proxy famosos: (1) proxy en la capa 4 y (2) proxy en la capa 7. A medida que avanzamos en las capas, decodificamos más información de los paquetes de Internet que se puede utilizar para tomar decisiones de enrutamiento.


Capas en modelo OSI

Proxy de capa 4

La capa 4 en el modelo OSI es la capa de transporte. Desde la perspectiva de un desarrollador de aplicaciones, las cosas disponibles en la capa 4 para la decisión de enrutamiento son:

  • IP y puerto del cliente que envía la solicitud
  • IP y puerto del servidor que recibe la solicitud


Por lo tanto, un proxy de capa 4 sólo puede tomar decisiones de enrutamiento basadas en la IP y el puerto del servidor y del cliente. No puede examinar el contenido de las solicitudes y, por tanto, puede tomar decisiones de enrutamiento limitadas.


Hay varias razones por las que se usaría el proxy de capa 4:

  • Cuando solo se requiere equilibrio de carga a nivel de paquete.
  • No se desea que el proxy inverso descifre la solicitud por motivos de seguridad.
  • Se requiere eficiencia ya que el proxy en la capa 4 es rápido.


El proxy de capa 4 también tiene varias desventajas:

  • Como estamos en el nivel 4, el equilibrio de carga inteligente no es posible
  • No puede realizar un verdadero equilibrio de carga de microservicios.

Proxy de capa 7

La capa 7 en el modelo OSI es la capa de aplicación. Desde la perspectiva de un desarrollador de aplicaciones, las cosas disponibles en la capa 7 para la decisión de enrutamiento son:

  • Todo lo que estaba disponible en la capa 4.
  • El contenido completo de la solicitud, incluidos los encabezados.


Dado que hay mucho más contenido disponible para la toma de decisiones en la capa 7, se puede realizar un enrutamiento más inteligente.


A continuación se presentan algunas razones por las que se utilizaría un proxy de capa 7:

  • Necesita tomar decisiones de enrutamiento inteligentes en su proxy inverso
  • Quieres usar el almacenamiento en caché


Aqui hay algunas desventajas de usar un proxy de capa 7:

  • El proxy de capa 7 es generalmente más lento que el de capa 4, ya que descifra la solicitud y examina su contenido para tomar decisiones de enrutamiento.
  • Dado que el proxy inverso examina el contenido de las solicitudes, también existe un problema de seguridad al utilizar el proxy de capa 7.

El proxy inverso es, sin duda, una de las piezas importantes de una arquitectura de microservicio. Sin él, los verdaderos beneficios de la arquitectura de microservicios nunca podrán lograrse en su totalidad.


¡Con esto llegamos al final de este blog! Espero que hayas aprendido algo nuevo hoy.