Existe-t-il une différence entre le concept d'équilibrage de charge et de commutation de contenu dans les applications Web ? Les équilibreurs de charge répartissent les requêtes sur plusieurs serveurs pour gérer plus de trafic qu'un seul serveur ne pourrait le faire seul.
Il vous permet de faire évoluer vos applications Web sans ajouter de matériel ou de logiciel supplémentaire. De plus, l'équilibrage de charge vous permet d'utiliser moins de ressources que ce qui serait autrement nécessaire si toutes les demandes entrantes étaient traitées par un seul serveur.
La commutation de contenu, quant à elle, consiste à rediriger les utilisateurs d'une page à une autre lorsque le serveur actuel ne peut pas répondre à leur demande. Dans cet article, nous aborderons la différence entre les deux concepts.
Un équilibreur de charge répartit les requêtes entrantes entre plusieurs serveurs. Il ne décide pas quel serveur doit répondre à une requête particulière. Au lieu de cela, il transmet simplement la demande à un serveur disponible. Un équilibreur de charge utilise généralement la planification circulaire, où chaque fois qu'une nouvelle demande arrive, il envoie la demande au prochain serveur disponible.
L'équilibreur de charge doit savoir à quelle adresse IP envoyer la demande pour obtenir cette fonctionnalité. Par conséquent, l'équilibreur de charge doit avoir accès aux informations de configuration.
Par exemple, un équilibreur de charge peut avoir besoin de connaître le nom de la machine hébergeant l'application Web, son adresse IP, son numéro de port, etc.
Les équilibreurs de charge fournissent également d'autres fonctionnalités telles que la terminaison SSL, la mise en cache, la surveillance, le basculement, etc. Ces fonctionnalités sont décrites en détail plus loin dans l'article.
Il existe trois types d'équilibrage de charge utilisés aujourd'hui : Round Robin (RR), Weighted Random (WR) et Least Connections (LC). Round Robin (RR) :
Ce type d'équilibrage de charge fonctionne comme un système téléphonique à cadran. Lorsqu'un appel arrive dans le commutateur, il passe par des connexions jusqu'à ce qu'il atteigne la destination. Chaque connexion est associée à un certain poids.
S'il n'y a plus de connexions libres, l'appel est interrompu. Avec RR, les poids attribués aux différentes connexions varient dans le temps. En conséquence, les appels sont répartis uniformément sur les serveurs disponibles.
Aléatoire pondéré (WR) : attribue un pourcentage fixe de la bande passante totale à chaque serveur. Ainsi, s'il y a 10 serveurs et que 5 % de la bande passante totale est allouée, chaque serveur obtient 5 % de la capacité totale. Cela signifie que le premier serveur obtiendra 50 % de la capacité, le deuxième serveur obtiendra 25 %, etc. Moins de connexions (LC) :
Avec LC, l'équilibreur de charge n'envoie des requêtes qu'au serveur le moins occupé. Si tous les serveurs sont également occupés, l'équilibreur de charge choisira toujours le serveur le moins chargé.
Le principal avantage de WR est qu'il offre de meilleures performances car il ne nécessite aucun paramètre particulier sur les serveurs. Cependant, il nécessite plus de mémoire et de cycles CPU que RR. Le principal inconvénient de WR est qu'il peut causer des problèmes si les charges de travail sur les serveurs changent de manière significative.
Lorsqu'un utilisateur demande une URL spécifique, il s'attend à voir du contenu à cet emplacement. Mais parfois, en raison de problèmes de réseau, la requête peut ne pas atteindre le serveur qui héberge la ressource demandée.
Dans ces cas, l'utilisateur reçoit un message indiquant que la page est introuvable ou que le serveur est temporairement indisponible. C'est ce qu'on appelle l'erreur "404 Not Found". Pour éviter ce problème, vous pouvez utiliser une technique appelée "changement de contenu". Avec la commutation de contenu, lorsqu'une demande pour une ressource spécifique échoue, l'équilibreur de charge redirige la demande du client vers un autre serveur qui héberge la même ressource. De cette façon, l'utilisateur ne voit jamais les erreurs 404.
Votre équilibreur de charge doit comprendre comment effectuer la redirection pour implémenter la commutation de contenu. Pour ce faire, il utilise un code de réponse HTTP appelé 302. Une réponse 302 indique au navigateur de faire une nouvelle demande à un emplacement différent.
De plus, l'équilibreur de charge doit pouvoir déterminer quelles ressources sont hébergées sur quels serveurs. Pour ce faire, il utilise une fonctionnalité appelée DNS Name Server (DNS NS). DNS NS traduit les noms d'hôtes en adresses IP. L'équilibreur de charge doit accéder aux informations sur la configuration DNS du site Web pour effectuer la commutation de contenu. Par exemple, il doit savoir où se trouve le serveur de noms DNS et son adresse IP.
Cela se fait en configurant l'équilibreur de charge en tant que redirecteur DNS. Vous configurez le redirecteur DNS pour envoyer des requêtes au serveur de noms DNS approprié.
Une fois que le redirecteur DNS sait où réside le serveur de noms DNS, il transmet la requête au serveur. Après avoir reçu la réponse du serveur de noms DNS, l'équilibreur de charge renvoie l'adresse IP du serveur hébergeant la ressource demandée.
Il est important de noter que les serveurs virtuels ne prennent pas en charge la commutation de contenu. Ils renvoient un code d'état 404.
Un serveur virtuel est une représentation logique d'un serveur physique. Chaque serveur virtuel a son adresse IP et son numéro de port. Les serveurs virtuels sont utilisés pour fournir une tolérance aux pannes. Lorsqu'un serveur virtuel tombe en panne, le trafic qui lui est destiné est redirigé vers un autre serveur physique.
Dans l'équilibrage de charge, toutes les requêtes passent par le même chemin. Il n'y aura donc toujours qu'une seule copie des données dans le cache. Si le premier serveur est surchargé, les autres serveurs obtiennent moins de travail. Dans la commutation de contenu, chaque demande est dirigée vers un chemin distinct. Il y aura donc plusieurs copies des données dans les caches. Et si le premier serveur est surchargé, les autres serveurs ont plus de travail à faire.
Dans l'équilibrage de charge, l'équilibreur de charge suit l'état de santé de chaque serveur. Si un serveur cesse de répondre, il avertit l'équilibreur de charge. L'équilibreur de charge supprime ensuite ce serveur du service. Dans la commutation de contenu, les équilibreurs de charge gardent une trace de la santé des serveurs. Mais ils n'envoient pas d'avertissements aux clients. Au lieu de cela, ils redirigent les demandes vers d'autres serveurs.
Dans l'équilibrage de charge, si un serveur tombe en panne, l'équilibreur de charge envoie un message au client indiquant que sa demande a échoué. Dans la commutation de contenu, si un serveur tombe en panne, l'équilibreur de charge ne dit rien au client.
Dans l'équilibrage de charge, lorsqu'un serveur revient, l'équilibreur de charge essaie de comprendre pourquoi il s'est écrasé. Il peut alors décider de le remettre ou non en ligne. Dans la commutation de contenu, les équilibreurs de charge supposent que tout va bien lorsqu'un serveur démarre. Il n'est pas nécessaire qu'il vérifie pourquoi il est revenu. Il commence juste à lui envoyer de nouvelles demandes.
Dans l'équilibrage de charge, vous pouvez définir combien de fois le client reçoit une erreur avant d'abandonner sa tentative d'accéder à votre site Web. Dans la commutation de contenu, vous ne pouvez pas contrôler le temps d'attente du client avant de renoncer à accéder à votre site Web.
Dans l'équilibrage de charge, une seule panne de serveur peut entraîner des problèmes avec certaines applications. Un bon exemple serait une application de panier d'achat. Si un utilisateur place un article dans le panier mais quitte ensuite sans passer à la caisse, la commande n'est pas terminée.
Dans la commutation de contenu, une seule panne de serveur n'affectera aucune application.
L'équilibrage de charge est meilleur que la commutation de contenu car il a moins de limitations et offre de meilleures performances. Les programmes globaux sont très similaires, sauf que l'équilibreur de charge gérera toutes les connexions tandis que le sélecteur de contenu ne gérera que les connexions provenant de la même adresse IP. Cependant, les deux ont des avantages et des inconvénients. Il est important de savoir ce qu'ils sont avant de les utiliser.
Géri Mileva