4 votes

Haute disponibilité du site Web sans équilibreur de charge ?

J'étudie les possibilités de modifier un site Web de "haute disponibilité" qui fournit un service via une interface API https.

La configuration actuelle est la suivante :

  • Deux machines virtuelles autonomes, provenant de fournisseurs de nuages différents (AWS et RackSpace).
  • Un équilibreur de charge DNS : c'est là que le HA intervient également, le service surveille les deux VM et si l'une d'elles semble indisponible, il dirige toutes les requêtes DNS vers l'autre.

Si l'équilibrage de charge n'était pas une exigence, pourrions-nous nous passer de l'équilibreur de charge en colocalisant simplement les serveurs DNS sur les deux machines, chacune répondant uniquement avec sa propre adresse lorsqu'elle est interrogée par le DNS. Dans ce scénario, si une machine virtuelle est en panne, cela supprimera à la fois le service et le serveur DNS qui pointe vers le service, de sorte qu'aucun client ne sera dirigé vers le serveur en panne, est-ce exact ?


modifier pour plus de clarté :

nous sommes satisfaits de la "HA" imparfaite que nous avons actuellement, cette question vise spécifiquement à savoir si les changements auxquels je pense vont empirer les choses ou non.

8voto

RPDP Points 1408

La réponse directe à votre question est Oui, cela va empirer la situation.

En effet, le fait que l'un de vos serveurs de noms ne réponde pas entraînera des retards de résolution en permanence pour les clients qui tentent de résoudre un problème via le serveur de noms défaillant, alors que la technique actuelle ne fera échouer que +- la moitié des clients jusqu'à ce que vous détectiez que la VM est hors service + TTL secondes.

En général, les serveurs de noms sont mis en cache pendant 48 heures. Ainsi, pendant la période la plus courte entre votre temps d'arrêt et les mises à jour du serveur de noms + 48 heures, vos utilisateurs seront confrontés à une lenteur aléatoire.

Votre mise en œuvre actuelle est meilleure sauf si la détection de l'arrêt de votre VM est lente. Pour la période entre l'arrêt de la VM et sa détection + TTL, la solution proposée sera en fait meilleure. Mais je suppose que cette période est si courte qu'elle ne peut être ignorée.

4voto

MadHatter Points 77602

Si je vous comprends bien, vous proposez que les deux serveurs distribués soient les serveurs de noms listés pour le domaine en question, chacun avec un zonefile faisant autorité qui contient un seul enregistrement A pointant vers le serveur local pour le nom d'hôte sur lequel votre service HTTPS fonctionne.

Si c'est exact, alors oui, je m'attendrais à ce que cela fonctionne sur la base de la nature stochastique des requêtes aux serveurs de noms. Si un serveur tombe en panne, il ne sera pas en mesure de répondre aux requêtes avec sa propre adresse, les clients devraient donc basculer assez rapidement vers l'autre serveur. pour la recherche DNS .

Vous dites que vous comprenez et acceptez que la mise en cache des DNS signifie qu'un serveur hors service peut interrompre les clients qui ont mis en cache la recherche qui pointe vers ce serveur, éventuellement pendant de longues périodes de temps à cause des FAI qui n'honorent pas les TTL courts. Si c'est le cas, je ne vois pas de faille évidente dans votre proposition.

Je ne le ferais pas moi-même en un mois de dimanche.

2voto

Nathan C Points 14821

L'équilibrage de charge DNS était autrefois la "chose" à utiliser, mais avec la mise en cache utilisée couramment aujourd'hui, ce n'est plus aussi pratique.

Sous Windows, vous disposez d'un "équilibreur de charge réseau" qui peut vous aider à réaliser ce que vous souhaitez faire en utilisant la multidiffusion sur un réseau privé. Vous pouvez toujours le faire à travers les fournisseurs avec un VPN entre les deux.

Sous Linux, vous devrez utiliser quelque chose comme haproxy ou un autre paquet pour accomplir l'équilibrage de la charge. Mais cela pose des problèmes en soi.

Examinez vos options et décidez de la solution la plus rentable pour vos besoins. Je ne peux pas spéculer au-delà des options très populaires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X