Equilibradores de carga y proxies inversos

Tanto los equilibradores de carga como los proxies inversos son tecnologías habituales en las aplicaciones y arquitecturas modernas basadas en la web, y pueden implementarse de forma independiente o en una configuración combinada. En esta sección se ofrece una vista general de estas tecnologías, junto con comentarios sobre los casos de uso relevantes en los sistemas ArcGIS y las funcionalidades pertinentes que proporcionan estas tecnologías.

  • Un equilibrador de carga suele ser un componente de hardware o software que distribuye las solicitudes o cargas de trabajo de los clientes entre varios recursos informáticos, como servidores físicos, servidores virtuales o clústeres. El equilibrio de carga ayuda a equilibrar el aprovechamiento del sistema, reducir el riesgo, simplificar la prestación y el crecimiento del servicio y mejorar la seguridad del servidor backend.
  • Un proxy inverso es un componente de software o hardware que acepta solicitudes HTTPS, como las de un cliente externo, y enruta esas solicitudes a los recursos internos, URL o servicios correctos. Los proxies inversos se utilizan con frecuencia para enrutar las solicitudes externas que llegan de una URL a otra URL interna o a un sistema que, de otro modo, no sería accesible para ese cliente externo. Los proxies inversos también se utilizan con frecuencia para pasar tráfico de puertos de red frontend conocidos, como las solicitudes HTTPS al puerto 443, a otros puertos privados de un sistema backend. Los proxies inversos garantizan la existencia de una capa de seguridad, ofuscación y, potencialmente, lógica de filtrado de solicitudes entre el cliente que realiza la solicitud y el servidor backend que responde a la misma.

Patrones de implementación

Muchos sistemas ArcGIS implementan el equilibrio de carga en combinación con el uso de proxy inverso. Entre los patrones de implementación más comunes se incluyen:

  • Equilibrio de carga de las solicitudes de los clientes enviadas a los componentes de ArcGIS Enterprise orientados al usuario, como el portal de ArcGIS Enterprise y los sitios federados de ArcGIS Server, incluidos ArcGIS Image Server, Workflow Manager Server u otros
  • Equilibrio de carga de las solicitudes de los usuarios de contenido estático de aplicaciones, como recursos HTML, JavaScript y CSS de aplicaciones web, en varios servidores web
  • Equilibrio de carga de las solicitudes que se reciben a través de HTTPS y se envían al puerto 443 a un servicio backend que está a la escucha de solicitudes HTTPS en el puerto 6443, como ArcGIS Server.

Esri proporciona un componente de software ArcGIS instalable, el ArcGIS Web Adaptor, para proporcionar funciones de equilibrio de carga y proxy inverso en las implementaciones de ArcGIS Enterprise. El Web Adaptor no es la única opción para la arquitectura de sistemas ArcGIS Enterprise utilizando un equilibrador de carga y un proxy inverso, pero es un patrón común y proporciona una solución admitida por el Soporte técnico de Esri. También puede utilizarse un equilibrador de carga externo de hardware o software, en función de las preferencias y los requisitos técnicos. El tipo de carga de trabajo y la frecuencia de la demanda le ayudarán a saber qué tipo de equilibrador de carga puede ser apropiado para sus necesidades. Consulte Implementación en varios equipos con un equilibrador de carga de terceros para obtener orientación relacionada con su versión específica de ArcGIS y su sistema operativo.

Para lograr una configuración de alta disponibilidad, el adaptador web puede configurarse con un equipo en un sitio de alta disponibilidad y contiene lógica para detectar los demás equipos del sitio, monitorizar su estado y reenviarles las peticiones cuando estén en buen estado. Esta lógica constituye una importante ventaja de implementación al incluir el ArcGIS Web Adaptor en el diseño de un sistema, ya que puede gestionar los cambios de una implementación de ArcGIS Enterprise con mayor facilidad que una configuración manual de comprobación del estado o del equilibrador de carga.

Implementaciones externas

Aunque el Web Adaptor puede proporcionar funciones de equilibrio de carga y proxy inverso en muchos escenarios, muchos sistemas empresariales construidos con ArcGIS también implementan componentes de software o hardware adicionales y externos para alcanzar los objetivos funcionales de estas dos tecnologías. Algunos de ellos son:

  • Se puede utilizar software de servidor web como Apache Tomcat, Apache httpd o Nginx, para hacer proxy inverso de las solicitudes de los clientes a los extremos de ArcGIS.
  • Pueden utilizarse equilibradores de carga nativos de la nube como Azure Application Gateway, Amazon Elastic Load Balancer o Application Load Balancer, o Google Cloud Load Balancer.
  • Otros sistemas dedicados de equilibrio de carga y proxy, como F5 BIG-IP, Citrix NetScaler o Barracuda, que suelen ser dispositivos de hardware que proporcionan servicios de equilibrio de carga y proxy inverso para muchas aplicaciones diferentes, a la vez que ofrecen soporte para autenticación, detección de intrusiones, funciones similares a las de un cortafuegos de aplicaciones web y otros casos de uso.

A medida que las organizaciones han pasado de las arquitecturas tradicionales locales, en las que lo más frecuente era utilizar una zona desmilitarizada o DMZ para proporcionar a los clientes basados en Internet acceso a los servicios y extremos, a las arquitecturas en la nube, en las que los servicios nativos en la nube proporcionan esta funcionalidad en la mayoría de los casos, también han cambiado las consideraciones y las prácticas de arquitectura en torno a los proxies inversos y el equilibrio de carga.

Ventajas

Estas tecnologías proporcionan ventajas que incluyen habilitar la escalabilidad, la alta disponibilidad y la seguridad.

Escalabilidad

El sistema ArcGIS puede escalarse para admitir tanto implementaciones pequeñas como grandes. Para adaptarse a crecientes tamaños de implementación, ArcGIS puede aprovechar muchas técnicas y tecnologías de equilibrio de carga. Los algoritmos de equilibrio de carga, utilizados para despachar las peticiones de los clientes, pueden variar desde simples planteamientos por turnos hasta algoritmos más complejos que tienen en cuenta factores como el recuento de conexiones actuales, el aprovechamiento de los hosts o los tiempos de respuesta en el mundo real.

Un equilibrador de carga contribuye al rendimiento distribuyendo la carga entre varios equipos y recursos apropiados. En el ejemplo de alta disponibilidad, los equilibradores de carga de ArcGIS Web Adaptor distribuyen las solicitudes del servidor SIG entre dos servidores alojados en ArcGIS Enterprise. Si su sistema tiene muchos usuarios que realizan flujos de trabajo similares que requieren cantidades significativas de procesamiento, como un flujo de trabajo de edición que incluye transacciones largas e intensivas en procesamiento, un equilibrador de carga puede garantizar que estas solicitudes se equilibren en todo el hardware disponible, mientras que los flujos de trabajo que incluyen requisitos muy variables para el procesamiento pueden beneficiarse de la separación de la carga de trabajo en lugar del equilibrio de carga.

load-balancing-1.png

Alta disponibilidad

El equilibrio de carga también permite configuraciones de alta disponibilidad de ArcGIS mediante la distribución de solicitudes a través de un sitio o clúster de máquinas que comparten la misma función. Por ejemplo, cuando se configura la alta disponibilidad en una implementación de ArcGIS Enterprise con varias máquinas, el equilibrador de carga (ArcGIS Web Adaptor) alterna el envío de solicitudes a los servidores de alojamiento de ArcGIS primario y secundario, como se muestra.

En este caso, el proxy inverso proporciona un único punto de entrada: una única dirección IP que ofusca el sistema al usuario final. El proxy inverso dirige el tráfico a ArcGIS Web Adaptors siguiendo su algoritmo, que suele ser por turnos, pero podría ser más robusto. Al igual que ArcGIS Web Adaptor, muchos equilibradores de carga monitorizan el estado o disponibilidad de los servidores y eliminan de la lista de distribución los equipos que no son correctos o están disponibles, lo que proporciona resiliencia a su sistema.

El método y la eficiencia de esta funcionalidad varían en función del equilibrador de carga. Algunos equilibradores de carga por hardware tienen algoritmos ricos que les permiten ajustarse al vuelo en función de la carga o del tiempo de respuesta. Otros trabajan con una simple lista por turnos que puede actualizarse periódicamente para reflejar solo los equipos en buen estado.

load-balancing-2.png

Mayor seguridad

Por lo general, un proxy inverso expone una única dirección IP a Internet o a la intranet para un sistema concreto y distribuye las solicitudes al recurso adecuado. De esta forma se reducen enormemente los riesgos de seguridad, ya que la topología interna de la red y los sistemas queda oculta y se reduce el número de puntos de brecha en caso de ataque. Este método también simplifica la prestación y el consumo de servicios al proporcionar un único punto de acceso al sistema. La mayoría de las organizaciones eligen configurar un servidor proxy para que el sitio no esté directamente expuesto a los clientes.

Un servidor proxy inverso puede configurarse para que se comunique directamente con ArcGIS Server o a través del ArcGIS Web Adaptor agregando las URL correspondientes a las directivas proxy.

Para obtener más información, consulte Configurar un servidor proxy inverso con ArcGIS Server.

Consideraciones y recomendaciones

Las recomendaciones generales para la implementación del equilibrio de carga y los proxies inversos incluyen:

  • Implemente el equilibrio de carga para distribuir el tráfico de la carga de trabajo del cliente entre varios recursos de cómputo para habilitar la escalabilidad y la alta disponibilidad con ArcGIS.
  • En la mayoría de las implementaciones de ArcGIS Enterprise, el ArcGIS Web Adaptor es un componente de arquitectura recomendado y a menudo necesario, que proporciona funcionalidades tanto de equilibrador de carga como de proxy inverso en una única aplicación fácil de implementar. El ArcGIS Web Adaptor también proporciona un método sencillo para la implementación de la autenticación de nivel web para ArcGIS Enterprise.
  • Si tiene requisitos avanzados de equilibrio de carga, considere la posibilidad de implementar un equilibrador de carga externo que le proporcione las funcionalidades que necesita, además de ArcGIS Web Adaptor.
  • Cuando implemente un sistema de cara al público, utilice un proxy inverso capaz de proporcionar seguridad adicional a su implementación de ArcGIS.
Nota:

Para muchas otras aplicaciones o sistemas, la terminación de TLS en el equilibrador de carga es una arquitectura de aplicación común. Generalmente, no se recomienda la terminación TLS para los sistemas ArcGIS y, en el caso de Portal for ArcGIS, no se admite. Mantener conexiones TLS de extremo a extremo es una postura de seguridad más sólida y garantiza que las solicitudes y los datos de los usuarios no sean visibles para un atacante dentro de la red.

Recomendaciones de equilibrio de carga

Cuando implemente cualquier tecnología de equilibrio de carga con un sistema ArcGIS, tenga en cuenta las siguientes estrategias:

  • Los componentes del software ArcGIS incluyen diversas URL de «verificación del estado» que pueden utilizarse para las solicitudes de comprobación del estado que la mayoría de los equilibradores de carga envían para identificar si se debe mantener un servidor en el «grupo de destino» de ese equilibrador de carga. Las solicitudes de verificación del estado solo deben responder con un resultado positivo si el sistema funciona correctamente y es capaz de recibir solicitudes.
  • La mayoría de los equilibradores de carga pueden funcionar en varios modos diferentes, incluido el modo por turnos, que envía las solicitudes aleatoriamente a los servidores del grupo de backends disponibles. Otros planteamientos de equilibrio de carga más «inteligentes» pueden tener en cuenta el tipo o el tamaño de la solicitud, la carga del servidor basada en el tráfico de cómputo o de red, u otros factores.
  • Comprender cómo se traducen las peticiones de los usuarios en carga para el servidor puede ser un tema complejo y subjetivo. Considere detenidamente las ventajas de los planteamientos de equilibrio de carga más inteligentes cuando se aleje del enfoque por turnos normal.
  • La fidelidad de sesión es una configuración común del equilibrador de carga que utiliza la dirección IP de origen o una cookie de cliente para garantizar que las solicitudes del mismo usuario (según las percibe el equilibrador de carga) se envíen al mismo servidor. Esta funcionalidad puede ser conveniente en escenarios en los que varios sitios o funcionalidades de ArcGIS Server en silos se colocan detrás del mismo equilibrador de carga y garantizar que las solicitudes de los usuarios se devuelven al mismo servidor puede tener ventajas funcionales y de rendimiento.

Recomendaciones de proxy inverso

Los proxies inversos se implementan con frecuencia como parte de un equilibrador de carga, ya que muchos equilibradores de carga envían las solicitudes a un puerto o servicio backend diferente del que origina la solicitud del frontend. Cuando implemente un proxy inverso (junto con un equilibrador de carga o separado de él), tenga en cuenta algunas de las siguientes recomendaciones de diseño:

  • Utilice URL coherentes. Los sistemas ArcGIS son altamente autorreferenciales, con contenido como aplicaciones, mapas o servicios que hacen referencia a partes del sistema mediante URL a elementos, servicios u otros componentes. Estas URL se guardan en las configuraciones, por lo que el uso de URL coherentes contribuye a la estabilidad del sistema y a la portabilidad del contenido. Cambiar la URL externa de un sistema es un proceso perturbador que no se admite en el software actual.
  • Algunos proxies inversos pueden utilizar de forma predeterminada varias partes de la URL para hacer referencia al sistema ArcGIS, como por ejemplo:

    • https://centralhost.domain.com/systems/gis/rest/services

Tenga en cuenta que el uso de URL de varias partes como esta no se admite con los componentes de ArcGIS Enterprise, el «contexto web» o el nombre del adaptador web debe ser el primer componente de la URL que siga al nombre de host en la URL.

  • ArcGIS funciona mejor con configuraciones de proxy inverso transparentes, en las que las solicitudes se envían al backend sin inspección ni una capa de autenticación o validación de las solicitudes. Otros métodos de proxy inverso que interceptan, ajustan o afectan al tráfico pueden introducir problemas funcionales y de rendimiento con los sistemas ArcGIS, por lo que deben considerarse cuidadosamente antes de su implementación.
Top