Équilibrage de charge et proxys inverses

Les équilibreurs de charge et les proxys inverses sont deux technologies courantes dans les applications et les architectures Web modernes. Elles peuvent être déployées de façon indépendante ou dans le cadre d’une configuration mixte. Cette section offre une vue d’ensemble de ces technologies, ainsi que des commentaires sur les cas d’utilisation pertinents dans les systèmes ArcGIS et sur les fonctionnalités présentant un intérêt.

  • Un équilibreur de charge est généralement un composant matériel ou logiciel qui distribue les requêtes des clients ou les charges de travail sur plusieurs ressources informatiques, telles que des serveurs physiques, des serveurs virtuels ou des clusters. L’équilibrage de charge permet d’équilibrer l’utilisation du système, de réduire les risques, de simplifier la prestation et la croissance des services et d’améliorer la sécurité des serveurs back-end.
  • Un proxy inverse est un composant logiciel ou matériel chargé d’accepter les requêtes HTTPS, comme celles provenant d’un client externe, et de les transférer aux ressources, URL ou services internes appropriés. Les proxys inverses servent souvent à acheminer des requêtes externes parvenant à une URL vers une URL ou un système interne qui ne serait pas accessible à ce client externe autrement. Les proxys inverses sont également fréquemment utilisés pour transférer le trafic à partir de ports de réseau front-end connus (requêtes HTTPS arrivant au port 443, par exemple) vers d’autres ports privés d’un système back-end. Les proxys inverses garantissent une couche de sécurité, un niveau d’occultation et éventuellement une logique de filtrage des requêtes entre le client qui effectue la requête et le serveur back-end qui répond à la requête.

Modèles de mise en œuvre

De nombreux systèmes ArcGIS implémentent l’équilibrage de charge en combinaison avec un proxy inverse. Les modèles courants de mise en œuvre sont les suivants :

  • Équilibrage de charge des requêtes client envoyées aux composants orientés utilisateur d’ArcGIS Enterprise, tels que le portail ArcGIS Enterprise et les sites ArcGIS Server fédérés, y compris ArcGIS Image Server, Workflow Manager Server ou autres.
  • Équilibrage de charge des demandes des utilisateurs portant sur le contenu statique de l’application, tel que les ressources HTML, JavaScript et CSS de l’application Web, sur plusieurs serveurs Web.
  • Demandes d’équilibrage de charge reçues via HTTPS et transmises via le port 443 à un service back-end qui écoute les requêtes HTTPS transitant par le port 6443, tel qu’ArcGIS Server.

Esri offre un composant logiciel ArcGIS installable, ArcGIS Web Adaptor, destiné à fournir des fonctionnalités d’équilibrage de charge et de proxy inverse dans les déploiements d’ArcGIS Enterprise. Le composant Web Adaptor n’est pas le seul moyen de modifier l’architecture des systèmes ArcGIS Enterprise à l’aide d’un équilibreur de charge et d’un proxy inverse, mais il s’agit d’un modèle courant qui fournit une solution prise en charge par le support technique d’Esri. Un équilibreur de charge matériel ou logiciel externe peut également être utilisé, selon les préférences et les exigences techniques. Le type de charge de travail et la fréquence de la demande vous aideront à déterminer quel type d’équilibreur de charge peut être adapté à vos besoins. Pour obtenir des conseils pour votre version d’ArcGIS et votre système d’exploitation spécifiques, voir Déploiement sur plusieurs machines avec un système tiers d’équilibrage de la charge.

Pour obtenir une configuration à haute disponibilité, le composant Web Adaptor peut être configuré avec une seule machine dans un site à haute disponibilité. Il intègre une logique pour détecter les autres machines du site, surveiller leur état et leur transmettre les demandes considérées comme intègres. Cette logique est un avantage significatif du composant ArcGIS Web Adaptor dans une conception de système, car elle peut gérer les modifications apportées à un déploiement ArcGIS Enterprise plus facilement qu’un paramètre de contrôle d’intégrité ou d’équilibrage de charge configuré manuellement.

Mises en œuvre externes

Bien que le composant Web Adaptor puisse fournir des fonctionnalités d’équilibrage de charge et de proxy inverse dans de nombreux scénarios, de nombreux systèmes d’entreprise créés avec ArcGIS implémentent également des composants logiciels ou matériels externes supplémentaires pour atteindre les objectifs fonctionnels de ces deux technologies. Exemples :

  • Les logiciels de serveur Web tels qu’Apache Tomcat, Apache httpd ou Nginx peuvent être utilisés pour inverser les requêtes de proxy des clients vers les points de terminaison ArcGIS.
  • Il est possible d’utiliser des équilibreurs de charge conçus pour le Cloud tels qu’Azure Application Gateway, Amazon Elastic Load Balancer, Application Load Balancer ou Google Cloud Load Balancer.
  • Il existe d’autres systèmes d’équilibrage de charge et de proxy dédiés, tels que F5 BIG-IP, Citrix NetScaler ou Barracuda. Il s’agit souvent d’appliances physiques qui fournissent des services d’équilibrage de charge et de proxy inverse pour de nombreuses applications différentes, tout en prenant en charge l’authentification, la détection d’intrusion, les fonctionnalités de pare-feu d’applications Web et d’autres cas d’utilisation.

À mesure que les entreprises sont passées d’architectures traditionnelles sur site (où une zone démilitarisée (DMZ) était le plus souvent utilisée pour fournir aux clients basés sur Internet un accès aux services et aux points de terminaison) à des architectures Cloud (où les services natifs du Cloud offrent cette fonctionnalité dans la plupart des cas), les considérations et les pratiques d’architecture se rapportant aux proxy inverses et à l’équilibrage de charge ont également changé.

Avantages

Ces technologies présentent différents avantages notamment en termes d’évolutivité, de haute disponibilité et de renforcement de la sécurité.

Evolutivité

Le système ArcGIS peut évoluer pour prendre en charge les déploiements à petite et grande échelle. Pour s’adapter à l’augmentation de la taille des déploiements, ArcGIS peut tirer parti de nombreuses techniques et technologies d’équilibrage de charge. Les algorithmes d’équilibrage de charge, utilisés pour distribuer les requêtes des clients, peuvent aller de simples mécanismes de tourniquet (round robin) à des algorithmes plus complexes prenant en compte des facteurs tels que le nombre de connexions actuelles, l’utilisation de l’hôte ou les temps de réponse réels.

Un équilibreur de charge contribue à renforcer les performances en répartissant la charge entre plusieurs machines et les ressources appropriées. Dans l’exemple traitant de la haute disponibilité, les équilibreurs de charge ArcGIS Web Adaptor répartissent les requêtes du serveur SIG entre deux serveurs d’hébergement ArcGIS Enterprise. Si votre système comporte de nombreux utilisateurs qui exécutent des processus similaires nécessitant un traitement conséquent (tels qu’un processus de mise à jour qui implique de longues transactions gourmandes en ressources du processeur), un équilibreur de charge peut s’assurer que ces demandes sont équilibrées sur le matériel disponible. Les processus aux exigences de traitement très variables peuvent bénéficier d’une séparation des charges de travail au lieu d’un équilibrage de charge.

Haute disponibilité

L’équilibrage de charge permet également des configurations à haute disponibilité d’ArcGIS en répartissant les requêtes sur un site ou un cluster de machines qui partagent le même rôle. Par exemple, lorsque la haute disponibilité est configurée dans un déploiement ArcGIS Enterprise sur plusieurs machines, l’équilibreur de charge (ArcGIS Web Adaptor) envoie alternativement des requêtes aux serveurs d’hébergement ArcGIS principal et secondaire, comme illustré.

Dans ce cas, le proxy inverse fournit un point d’entrée unique, c’est-à-dire une adresse IP unique qui masque le système à l’utilisateur final. Le proxy inverse dirige le trafic vers les adaptateurs Web ArcGIS Adaptor en suivant son algorithme, qui est généralement un tourniquet (round robin), mais peut être plus robuste. À l’instar d’ArcGIS Web Adaptor, de nombreux équilibreurs de charge surveillent l’intégrité ou la disponibilité des serveurs et suppriment les machines non intègres ou indisponibles de la liste de distribution, ce qui assure la résilience de votre système.

La méthode et l’efficacité de cette fonctionnalité varient selon l’équilibreur de charge. Certains équilibreurs de charge matériels disposent d’algorithmes riches qui leur permettent de s’ajuster à la volée en fonction de la charge ou du temps de réponse. D’autres se basent sur une simple liste de type round-robin. Celle-ci peut être mise à jour périodiquement pour prendre en compte uniquement les machines intègres.

Renforcement de la sécurité

Un proxy inverse expose généralement une seule adresse IP à Internet ou à l’intranet d’un système particulier et distribue les requêtes à la bonne ressource. Cela réduit considérablement les risques de sécurité, car la topologie interne du réseau et des systèmes est cachée, et le nombre de points de vulnérabilité est limité en cas d’attaque. Cette méthode simplifie également la prestation et la consommation de services en fournissant un point d’accès unique au système. La plupart des organisations décident de configurer un serveur proxy afin de ne pas exposer directement le site aux clients.

Un serveur proxy inverse peut être configuré afin de communiquer directement avec ArcGIS Server ou via ArcGIS Web Adaptor, en ajoutant les URL suivantes aux directives du proxy.

Pour plus d’informations, voir Configurer un serveur proxy inverse avec ArcGIS Server.

Considérations et recommandations

Les recommandations générales pour la mise en œuvre de l’équilibrage de charge et des proxys inverses sont les suivantes :

  • Mettez en œuvre l’équilibrage de charge de façon à répartir le trafic lié à la charge de travail du client sur plusieurs ressources informatiques et permettre l’évolutivité et la haute disponibilité avec ArcGIS.
  • Dans la plupart des déploiements d’ArcGIS Enterprise, ArcGIS Web Adaptor est un composant d’architecture recommandé et souvent requis. Il offre à la fois des fonctionnalités d’équilibreur de charge et de proxy inverse dans une application unique et facile à déployer. ArcGIS Web Adaptor fournit également une méthode simple pour mettre en œuvre l’authentification au niveau Web pour ArcGIS Enterprise.
  • Si vous avez des exigences particulières en matière d’équilibrage de charge, envisagez d’implémenter un équilibreur de charge externe qui offre les fonctionnalités dont vous avez besoin, en plus d’ArcGIS Web Adaptor.
  • Lors du déploiement d’un système public, utilisez un proxy inverse performant pour renforcer la sécurité de votre déploiement ArcGIS.
Remarque:

Pour de nombreux autres systèmes ou applications, la terminaison TLS au niveau de l’équilibreur de charge est une architecture d’application courante. Pour les systèmes ArcGIS, la terminaison TLS n’est généralement pas recommandée. Elle n’est pas prise en charge dans le cas de Portal for ArcGIS. Le maintien des connexions TLS de bout en bout est une posture de sécurité renforcée. Cela garantit que les requêtes et les données des utilisateurs ne sont pas visibles par un attaquant au sein du réseau.

Recommandations relatives à l’équilibrage de charge

Lors de la mise en œuvre d’une technologie d’équilibrage de charge avec un système ArcGIS, envisagez les stratégies suivantes :

  • Les composants logiciels ArcGIS incluent diverses URL de « contrôle d’intégrité » envoyées par la plupart des équilibreurs de charge pour déterminer s’il faut conserver ou non un serveur dans leur « pool cible ». Les demandes de contrôle d’intégrité doivent donner lieu à une réponse positive seulement si le système fonctionne correctement et est capable de recevoir des demandes.
  • La plupart des équilibreurs de charge peuvent fonctionner dans plusieurs modes différents, y compris un mode round-robin (rotation) qui envoie des requêtes, de manière aléatoire, aux serveurs du pool de systèmes back-end disponibles. D’autres approches d’équilibrage de charge plus « intelligentes » peuvent prendre en compte le type ou la taille de la demande, la charge du serveur basée sur le calcul ou le trafic réseau, ou d’autres facteurs.
  • Comprendre comment les demandes des utilisateurs se traduisent par une charge sur le serveur peut être un sujet complexe et subjectif. Examinez les avantages procurés par des approches d’équilibrage de charge plus intelligentes lorsque vous vous écartez de l’approche round-robin habituelle.
  • L’adhérence de session est un paramètre courant de l’équilibreur de charge qui utilise l’adresse IP source ou un cookie client pour s’assurer que les demandes du même utilisateur (telles que perçues par l’équilibreur de charge) sont envoyées au même serveur. Cette fonctionnalité peut être pratique dans les scénarios où plusieurs sites ou fonctionnalités ArcGIS Server cloisonnés sont placés derrière le même équilibreur de charge. Le fait de s’assurer que les demandes des utilisateurs sont renvoyées au même serveur peut présenter des avantages en termes de fonctionnalités et de performances.

Recommandations relatives aux proxys inverses

Les proxys inverses sont souvent mis en œuvre dans le cadre d’un équilibrage de charge, car de nombreux équilibreurs de charge envoient les requêtes vers un port ou un service back-end différent de celui d’où provient la requête front-end. Lors de la mise en œuvre d’un proxy inverse (en parallèle avec un équilibreur de charge ou indépendamment de celui-ci), tenez compte des recommandations de conception suivantes :

  • Utilisez des URL cohérentes. Les systèmes ArcGIS sont hautement autoréférentiels. Le contenu (tel que des applications, des cartes ou des services) fait référence à des portions du système à l’aide d’URL renvoyant à des éléments, des services ou d’autres composants. Ces URL sont enregistrées dans les configurations. C’est la raison pour laquelle l’utilisation d’URL cohérentes contribue à la stabilité du système et à la portabilité du contenu. La modification de l’URL externe d’un système est un processus perturbateur qui n’est pas pris en charge par le logiciel actuel.
  • Certains proxys inverses peuvent utiliser, par défaut, plusieurs parties d’URL pour faire référence au système ArcGIS, par exemple :

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

Notez que l’utilisation d’URL en plusieurs parties comme celle-ci n’est pas prise en charge avec les composants ArcGIS Enterprise. Le « contexte Web » ou le nom du composant Web Adaptor doit être le premier composant d’URL après le nom d’hôte dans l’URL.

  • ArcGIS fonctionne mieux avec des configurations de proxy inverse transparentes : les demandes sont envoyées au système back-end sans inspection ni couche d’authentification ou de validation des demandes. D’autres méthodes de proxy inverse qui interceptent, ajustent ou affectent le trafic peuvent introduire des problèmes de fonctionnement et de performances avec les systèmes ArcGIS. Elles doivent être soigneusement prises en compte avant d’être mises en œuvre.
Top