319 votes

100% de temps de fonctionnement pour une application web

Nous avons reçu aujourd'hui une "exigence" intéressante de la part d'un client.

Ils veulent un temps de fonctionnement de 100% avec hors site basculement sur une application web. Du point de vue de notre application web, ce n'est pas un problème. Elle a été conçue pour être capable de s'étendre sur plusieurs serveurs de base de données, etc.

Cependant, pour des raisons de réseau, je ne parviens pas à trouver comment le faire fonctionner.

En bref, l'application sera hébergée sur des serveurs au sein du réseau du client. Elle est accessible à la fois par des personnes internes et externes. Le client souhaite que nous conservions une copie hors site du système qui, en cas de panne grave dans ses locaux, serait immédiatement prise en charge.

Nous savons maintenant qu'il n'y a absolument aucun moyen de résoudre ce problème pour les personnes internes (pigeon voyageur ?), mais ils veulent que les utilisateurs externes ne le remarquent même pas.

Très franchement, je n'ai pas la moindre idée de comment cela pourrait être possible. Il semble que s'ils perdent la connectivité Internet, nous devrions modifier les DNS pour transférer le trafic vers les machines externes... Ce qui, bien sûr, prend du temps.

Des idées ?

UPDATE

J'ai eu une discussion avec le client aujourd'hui et ils ont clarifié la question.

Ils ont maintenu le chiffre de 100 %, affirmant que l'application devrait rester active même en cas d'inondation. Cependant, cette exigence ne s'applique que si nous l'hébergeons pour eux. Ils ont dit qu'ils s'occuperaient de l'exigence de temps de fonctionnement si l'application vivait entièrement sur leurs serveurs. Vous pouvez deviner ma réponse.

50 votes

Ne sous-estimez pas l'énorme temps d'indisponibilité causé par le piratage, regardez Sony et le réseau PlayStation. Vous pouvez être sûr qu'ils avaient la même idée d'un temps de fonctionnement de 100 % et l'argent/le matériel pour le soutenir. Expliquez clairement au client qu'un temps de fonctionnement de 100 % est une attente irréalisable, même les techniciens de Google hésiteraient à marmonner "100 % de temps de fonctionnement".

185 votes

Je voudrais personnellement RUN de ce client aussi vite que possible. Je pense que ce ne sera pas la dernière idée folle qu'ils auront (d'un point de vue technologique).

140 votes

J'aimerais pouvoir rétrograder votre client.

5voto

Marcin Points 154

Vous savez que c'est impossible.

Il ne fait aucun doute que le client tient à ce que vous soyez à 100 %. Le mieux que vous puissiez faire est de promettre 100 %, sauf pour [toutes les causes raisonnables qui ne sont pas de votre faute].

0 votes

Il ne fait aucun doute que le client ne veut pas de solution. Il veut un déclin. Ainsi, il pourra dire qu'il a au moins essayé.

0 votes

Peut-être. Vous supposez un niveau élevé d'indices.

4voto

JSWork Points 151

Bien que je doute que ce soit possible à 100%, vous pouvez envisager Azure (ou quelque chose avec un SLA similaire) comme une possibilité. Ce qui se passe :

Vos serveurs sont des machines virtuelles. En cas de problème matériel sur un serveur, votre machine virtuelle est déplacée vers une nouvelle machine. L'équilibreur de charge se charge de la redirection, de sorte que le client ne devrait pas subir de temps d'arrêt (bien que je ne sache pas comment l'état de vos sessions serait affecté).

Cela dit, même avec ce basculement, la différence entre 99,999 et 100 frise la folie.

Vous devrez avoir un contrôle total sur les facteurs suivants.
- Les facteurs humains, tant internes qu'externes, tant la malice que l'impuissance. Un exemple de cela est quelqu'un qui pousse quelque chose dans le code de production qui fait tomber un serveur. Pire encore, qu'en est-il du sabotage ?
- Questions d'affaires. Que se passe-t-il si votre fournisseur fait faillite, oublie de payer ses factures d'électricité ou décide tout simplement d'arrêter de soutenir votre infrastructure sans avertissement suffisant ?
- Nature. Que se passerait-il si des tornades sans lien entre elles frappaient simultanément suffisamment de centres de données pour dépasser la capacité de sauvegarde ?
- Un environnement totalement exempt de bogues. Vous êtes sûr il n'y a pas un cas limite avec un tiers ou un contrôle du système central qui ne s'est pas manifesté mais qui pourrait le faire à l'avenir ?
- Même si vous avez un contrôle total sur les facteurs ci-dessus, êtes-vous sûr que le logiciel/la personne qui surveille tout cela ne vous présentera pas de faux négatifs en vérifiant si votre système est opérationnel ?

2 votes

Azure et EC2 ont tous deux connu récemment des défaillances presque totales. Je crois qu'Azure a récemment été mis hors service simplement à cause d'une mauvaise entrée de configuration sur un serveur DNS. Quoi qu'il en soit, merci pour l'information.

0 votes

Et si votre équilibreur de charge (qui effectue la commutation) tombe en panne sans être remarqué (son moniteur pourrait également tomber en panne sans être remarqué, à l'infini) lorsque le nœud tombe en panne, vous êtes toujours dans le pétrin.

1 votes

Je pense que vous vouliez dire "incompétence". L'impuissance ne devrait pas avoir beaucoup d'impact sur la capacité du personnel informatique à faire son travail.

4voto

Patrick Points 190

Honnêtement, un taux de 100 % est complètement insensé sans au moins un écart dans les termes d'une attaque de piratage. Votre meilleure chance est de faire comme Google et Amazon, c'est-à-dire d'avoir une solution d'hébergement géo-distribuée où votre site et votre base de données sont répliqués sur plusieurs serveurs dans plusieurs lieux géographiques. Cela vous garantira la survie de votre site, sauf en cas de catastrophe majeure telle qu'une coupure de la dorsale Internet dans une région (ce qui arrive de temps en temps) ou quelque chose de presque apocalyptique.

Je prévoirais une clause pour de tels cas (DDOS, coupure de la dorsale Internet, attaque terroriste apocalyptique ou grande guerre, etc.)

En dehors de cela, consultez les services de cloud computing d'Amazon S3 ou de Rackspace. Essentiellement, la configuration en nuage n'offrira pas seulement la redondance à chaque emplacement, mais aussi l'évolutivité et la géodistribution du trafic, ainsi que la possibilité de rediriger le trafic autour des zones géographiques défaillantes. Cependant, je crois comprendre que la géodistribution coûte plus cher.

3voto

traisjames Points 634

Alors que certaines personnes ont noté ici, que 100% est fou o impossible ils ont en quelque sorte manqué le vrai point. Selon eux, la raison en est que même les meilleures entreprises/services ne peuvent y parvenir.

Eh bien, c'est beaucoup plus simple que ça. C'est mathématiquement impossible .

Tout a une probabilité. Il pourrait y avoir un tremblement de terre simultané sur tous les sites où vous stockez vos serveurs, les détruisant tous. Il s'agit certes d'une probabilité ridiculement faible, mais elle n'est pas nulle. Tous vos fournisseurs d'accès à Internet pourraient être confrontés à une attaque terroriste ou cybernétique simultanée. Là encore, la probabilité est faible, mais elle n'est pas nulle non plus. Quel que soit le service que vous fournissez, il peut arriver qu'un scénario à probabilité non nulle fasse tomber l'ensemble du service. De ce fait, votre temps de disponibilité ne peut pas non plus être de 100 %.

0 votes

En fait, je dirais que c'est plus que de la folie ou de l'impossibilité et que c'est de la stupidité. Rien de ce que les humains savent n'est à 100 %.

3voto

Mahmoud Al-Qudsi Points 489

Je voulais juste ajouter une autre voix au "ça". peut (théoriquement) être fait".

Je n'accepterais pas un contrat comportant cette spécification, quel que soit le montant de mon salaire, mais en tant que problème de recherche, il présente des solutions plutôt intéressantes. Je ne suis pas assez familier avec les réseaux pour en décrire les étapes, mais j'imagine qu'une combinaison de configurations liées au réseau, de pannes du câblage électrique/matériel et de pannes logicielles pourrait, dans une configuration ou une autre, permettre de le réaliser.

Il y a presque toujours un point de défaillance unique quelque part dans une configuration, mais si vous travaillez assez dur, vous pouvez pousser ce point de défaillance à être quelque chose qui peut être réparé "en direct" (c'est-à-dire que le dns racine tombe en panne, mais les valeurs sont toujours mises en cache partout ailleurs et vous avez le temps de le réparer).

Encore une fois, je ne dis pas que c'est faisable Je n'ai juste pas aimé le fait qu'aucune réponse n'ait abordé le fait que ce n'est pas "irréalisable" - ce n'est simplement pas quelque chose qu'ils veulent vraiment s'ils y réfléchissent.

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