Je ne comprends pas comment mettre en place une bascule pour mon scénario assez simple. Je construis une passerelle de services pour API. Ce que je veux, c'est avoir deux serveurs hébergés dans des centres de données différents. Et je veux simplement que l'utilisateur puisse accéder au service même si l'un des serveurs est hors service. Il n'y a pas de problème de synchronisation de la base de données, je me soucie uniquement de la disponibilité du service.
Comment faire cela tout en empêchant l'utilisateur de mettre en œuvre tout type de logique de bascule de leur côté? Je veux que l'utilisateur se voie attribuer un seul domaine ou une seule adresse IP et puisse accéder au service tout le temps en utilisant ce seul point d'entrée.
Ce que je ne comprends pas, c'est comment cela peut être réalisé. Je sais que je peux configurer un nœud réseau qui redirigera les demandes vers le premier ou le deuxième serveur, en fonction de celui qui est actuellement en ligne. Cependant, je ne vois pas comment cette configuration résout le problème de disponibilité car nous venons d'introduire un point de défaillance unique dans le système - le nœud de redirection. Donc, si ce nœud tombe en panne, le service est indisponible.
Pourriez-vous expliquer comment mettre en œuvre cela dans le monde réel? Est-il possible d'obtenir cela à un coût raisonnable (c'est-à-dire pas plus cher que le coût d'hébergement des serveurs eux-mêmes).
Édition: Il a été suggéré que l'exigence de centres de données différents est coûteuse. Alors, n'hésitez pas à fournir des suggestions pour 2 serveurs au sein d'un seul centre de données.
Édition 2: N'hésitez pas à mentionner quel est un coût raisonnable pour cette configuration.
0 votes
Dans différents centres de données? Non, cela coûtera cher.
0 votes
Je pense que oui, car s'ils sont hébergés dans 1 datacenter, il est facile d'imaginer que les deux serveurs tomberont en panne en même temps. Je ne dis pas deux sociétés différentes, mais oui, deux datacenters différents me semblent raisonnables - ou est-ce une demande anormale?
0 votes
Ce n'est pas, mais cela complique encore plus la solution, car cela nécessite des mesures sophistiquées et coûteuses. En même temps, vous n'avez actuellement aucun type de haute disponibilité. Commencez par une solution simple, pour sauvegarder vos propres échecs de service. Vous passerez à la sauvegarde des pannes du centre de données à l'étape suivante, au cas où vous en auriez toujours besoin.
0 votes
D'accord, alors je modifie simplement la question pour permettre le même centre de données.
0 votes
"Est-il possible d'atteindre cela à un coût raisonnable?" Comme je le dis constamment aux clients, vous obtenez 99% de disponibilité gratuitement (c'est-à-dire pour le coût d'un matériel et d'un hébergement décents). Chaque 9 supplémentaire augmente le coût jusqu'à un facteur de dix. Ne cherchez pas à faire de la haute disponibilité avec un budget serré. Ça ne fonctionne pas.
0 votes
Je n'ai aucune idée du coût pour cela, n'hésitez donc pas à suggérer ce qui est un coût raisonnable.
0 votes
"Chaque 9 supplémentaire augmente le coût jusqu'à un facteur de dix."
1 votes
@MadHatter Pas exactement. Si je me souviens bien, vous pouvez obtenir 99,9% À UN PRIX TOUT À FAIT abordable - c'est le coût du remplacement du matériel. Nous parlons encore de 8 heures de temps d'arrêt par an. Chaque hébergeur fournit cela - et si vous gardez des sauvegardes et que vous n'avez pas de téraoctets de données, il y a amplement de temps pour cela. APRÈS CELA - je suis tout à fait d'accord.
0 votes
DNS round robin? coûte rien à faire.
1 votes
@yagmoth555 Le round robin DNS ne fonctionne pas à cause de la mise en cache ignorante du TTL. Mais même si cela fonctionnait, RR vers quoi ? Il faudrait toujours plus de matériel, un centre de données différent, les services doivent rester synchronisés; cela coûte tout de même cher.
0 votes
@MadHatter Je suis d'accord, j'espère que l'op sait que cela implique plus de serveurs, mais je pense qu'il souhaite une réponse avec une configuration réalisable sans la fonction de regroupement en cas de défaillance, si son service peut fonctionner de cette manière en RR. (comme il a dit qu'il n'y avait aucun problème avec la synchronisation de la base de données)
0 votes
Je voudrais recevoir toute suggestion raisonnable. Je ne suis pas familier avec toutes les solutions qui fonctionnent. Disons donc que ces 2 serveurs me coûtent 500 USD par mois. Je ne trouverais pas raisonnable de payer 5000 USD pour atteindre mon objectif. Je trouverais raisonnable de payer par exemple 500 USD supplémentaires pour cela.
1 votes
Et je vous avertis qu'avec des coûts immatériels, cela coûtera plus que cela. Vous ne pouvez pas savoir combien de plus jusqu'à ce que vous l'essayiez, mais selon mon expérience, vous devez être prêt pour un ordre de grandeur. En tout cas, j'ai VTCed, car vous pourriez écrire un livre sur cela; donc, c'est une question trop générale.
0 votes
@Wapac L'idée que j'ai donnée, rr, n'est pas une véritable configuration de basculement. C'est seulement avec le DNS, il redirigera aléatoirement vos clients vers l'entrée dans votre DNS. Si un serveur échoue, le client obtiendra une nouvelle tentative, et lorsque le cache local expirera, il pourra se reconnecter. L'idée sous-entend que toutes les bases de données et les données derrière sont synchronisées. Comme d'autres l'ont dit, la vraie haute disponibilité a un coût.
0 votes
@yagmoth555: Je suis conscient de cette solution particulière, mais je pense que cette solution nécessite un support côté client, ou qu'il y aurait un assez grand écart en raison de la mise en cache. Je ne suis pas sûr que, dans mon cas, je puisse obliger le client à implémenter "réessayer avec le deuxième IP si le premier échoue" - c'est-à-dire leur donner 2 points finaux au lieu d'un seul. Mais merci pour cette suggestion de toute façon.
0 votes
@MadHatter: C'est juste que je ne suis pas familier avec ce qui est proposé ici que je ne peux pas dire ce qui est raisonnable ou non. Je pensais que mon scénario était assez courant et vraiment simple, mais il semble que non. Avoir un budget de 500 USD ou 1000 USD pour ce que j'ai demandé me semblait être suffisant. Mais alors - je n'ai vraiment aucune idée.
0 votes
@MadHatter : Je ne dis même pas que j'ai déjà ce serveur - je suppose que chaque hébergement a des fonctionnalités différentes qu'ils peuvent offrir. Donc je suis content de la réponse "si vous choisissez le service Amazon ABC, ils offrent cela pour XXX $".
0 votes
@Wapac Votre phrase n'a aucun sens. DNS rr. vous avez seulement un dns à donner... et nous ne pouvons pas donner de coût, arrêtez de demander des coûts, embauchez un consultant si vous voulez une estimation
0 votes
@MadHatter Vos chiffres ne correspondent pas. Vous dites deux 9 gratuits. Et chaque 9 supplémentaire après cela coûte jusqu'à un facteur de 10 de plus. Si je fais le calcul sur ces chiffres, j'obtiens autant de 9 que je veux gratuitement. Je suis sûr que ce n'est pas ce que vous vouliez dire.
0 votes
@kasperd bon point, sauf que vous devriez probablement lire ce que j'ai écrit initialement, ci-dessus : "vous obtenez un temps de disponibilité de 99% gratuitement (c'est-à-dire, pour le coût d'un matériel décent et de l'hébergement)". Dix fois cela n'est certainement pas zéro. J'admets que l'utilisation de gratuit pour signifier aucun coût supplémentaire par rapport au minimum est répréhensible, mais je m'efforce de bien expliquer la réalité dans la même phrase.