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!
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:
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.
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.
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.
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.
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.
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.
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!
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.
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:
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:
El proxy de capa 4 también tiene varias desventajas:
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:
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:
Aqui hay algunas desventajas de usar un 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.