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.

370voto

GregD Points 8703

Voici Wikipedia Le tableau pratique de la poursuite des neuf de la part de l'auteur :

enter image description here

Il est intéressant de noter que seuls 3 des 20 premiers sites web ont été en mesure d'atteindre les mythiques 5 neuf ou 99,999 % de temps de disponibilité en 2007. Il s'agissait de Yahoo, AOL et Comcast. Au cours des 4 premiers mois de l'année 2008, certains des plus grands réseaux sociaux populaires ne s'est même pas approché de ça.

D'après le graphique, il devrait être évident que la poursuite d'un temps de fonctionnement de 100% est ridicule...

65 votes

Pingdom ne vérifie pas non plus toutes les secondes. En outre, les sites qui ont obtenu cinq neuf ont probablement connu des perturbations localisées que Pingdom n'a peut-être pas détectées, ou des problèmes qui ont rendu certains services indisponibles tout en continuant à répondre aux pings.

8 votes

Ce qui, en soi, rend les cinq neuf douteux...

5 votes

Précisément. Et ils ont des milliards de dollars pour travailler !

192voto

Preet Sangha Points 2727

Demandez-leur de définir ce qu'est un taux de 100 % et comment il sera mesuré, sur quelle période. Ils veulent probablement dire aussi près de 100% qu'ils peuvent se le permettre. Donnez-leur les coûts.

Pour développer. Au fil des ans, j'ai eu des discussions avec des clients dont les exigences étaient soi-disant ridicules. Dans tous les cas, il s'agissait en fait de l'utilisation d'un langage peu précis.

Très souvent, ils formulent les choses d'une manière qui semble absolue - comme 100 % - mais en réalité, après une enquête plus approfondie, ils sont assez raisonnables pour effectuer les analyses coûts/avantages qui sont nécessaires lorsqu'on leur présente des données sur l'atténuation des risques. Leur demander comment ils vont mesurer la disponibilité est une question cruciale. S'ils ne le savent pas, vous êtes dans une position où vous devez leur suggérer que cela doit être défini en premier lieu.

Je demanderais au client de définir ce qui se passerait en termes d'impact commercial/coûts si le site tombait en panne dans les circonstances suivantes :

  • A leurs heures les plus chargées pendant x heures
  • Aux heures les moins occupées pendant x heures

Et aussi comment ils vont mesurer cela.

De cette manière, vous pouvez travailler avec eux pour déterminer le bon niveau de "100%". Je pense qu'en posant ce genre de questions, ils seront en mesure de mieux déterminer les priorités de leurs autres exigences. Par exemple, ils peuvent vouloir payer certains niveaux de SLA et compromettre d'autres fonctionnalités afin d'y parvenir.

21 votes

Agréé. Il se peut qu'ils veuillent simplement parler d'un temps de fonctionnement "très élevé" (plus de 90 % ?) avec une stratégie de basculement assez solide. Si ce n'est pas le cas, une explication de l'échelle des coûts impliqués pourrait les persuader...

33 votes

+1 pour ne pas tirer de conclusions hâtives et demander au client d'expliquer ce qu'il a en tête.

4 votes

Je me fais l'écho de l'affirmation selon laquelle il ne faut pas tirer de conclusions hâtives... si le client veut un temps de fonctionnement de 100 % (moins la maintenance programmée), alors il... peut serait une exigence plus raisonnable.

137voto

Samat Jain Points 165

Vos clients sont fous. Un temps de fonctionnement de 100% est impossible peu importe l'argent que vous y consacrez. C'est tout simplement impossible. Regardez Google, Amazon, etc. Ils ont des sommes presque infinies à consacrer à leur infrastructure et pourtant ils arrivent toujours à avoir des temps d'arrêt. Vous devez leur faire passer ce message et, s'ils continuent d'insister, leur proposer des exigences raisonnables. S'ils ne reconnaissent pas que un peu de de temps d'arrêt est inévitable, alors abandonnez-les.

Cela dit, vous semblez avoir les mécanismes de mise à l'échelle/distribution de l'application elle-même. La partie réseau devra impliquer des liaisons montantes redondantes vers différents FAI, l'obtention d'un ASN et d'une allocation d'adresses IP, et la mise en place de BGP et d'un véritable équipement de routage afin que l'espace d'adressage IP puisse se déplacer entre les FAI si nécessaire.

Il s'agit, de toute évidence, d'une réponse très laconique. Vous n'avez pas d'expérience dans les applications nécessitant un tel degré de disponibilité. Vous devez donc faire appel à un professionnel si vous voulez vous approcher du mythique 100% de disponibilité.

7 votes

Agréé. Tout à fait. C'est fou.

0 votes

On disait qu'il était impossible d'aller plus vite que la lumière parce qu'il faudrait une énergie infinie... :)

2 votes

Ils avaient l'habitude de ?

54voto

jdw Points 3715

Eh bien, c'est certainement une question intéressante. Je ne suis pas sûr de vouloir m'engager contractuellement à assurer un temps de fonctionnement de 100 %, mais si je devais le faire, je pense que cela ressemblerait à ceci :

Commencez par l'IP publique d'un équilibreur de charge complètement hors du réseau et construisez-en au moins deux pour que l'un puisse basculer sur l'autre. Un programme comme Heatbeart peut vous aider à assurer le basculement automatique de ces appareils.

Varnish est principalement connu comme une solution de mise en cache, mais il permet également d'équilibrer les charges. Ce serait peut-être un bon choix pour gérer l'équilibrage de charge. Il peut être configuré pour avoir de 1 à n backends, éventuellement groupés en directeurs, qui équilibreront la charge de manière aléatoire ou en round-robin. Varnish peut être rendu assez intelligent pour vérifier la santé de chaque backend et sortir les backends malsains de la boucle jusqu'à ce qu'ils soient de nouveau en ligne. Les backends n'ont pas besoin d'être sur le même réseau.

Je suis un peu amoureux des IP élastiques d'Amazon EC2 ces jours-ci, donc je construirais probablement mes équilibreurs de charge dans EC2 dans différentes régions ou au moins dans différentes zones de disponibilité dans la même région. Cela vous donnerait la possibilité de faire tourner manuellement (Dieu vous en préserve) un nouvel équilibreur de charge si nécessaire et de déplacer l'enregistrement A IP existant vers la nouvelle boîte.

Varnish ne peut pas terminer SSL, cependant, donc si c'est un problème, vous pouvez regarder quelque chose comme Nginx à la place.

Vous pourriez avoir la plupart de vos backends dans le réseau de vos clients et un ou plusieurs en dehors de leur réseau. Je crois, mais je ne suis pas sûr à 100%, que vous pouvez donner la priorité aux backends de sorte que les machines de vos clients reçoivent la priorité jusqu'à ce qu'elles deviennent toutes malsaines.

C'est par là que je commencerais si j'avais cette tâche et je l'affinerais sans doute au fur et à mesure.

Cependant, comme le dit @ErikA, il s'agit d'Internet et il y aura toujours des parties du réseau qui échapperont à votre contrôle. Vous devez donc vous assurer que vos obligations légales ne vous lient qu'à des éléments que vous contrôlez.

2 votes

Pendant un certain temps, j'ai pensé à Amazon et à MS pour un déploiement dans le nuage, mais ces deux entreprises ont connu des pannes majeures au cours des deux derniers mois. SSL est essentiel.

3 votes

Si vous deviez utiliser Amazon, vous voudriez certainement répartir vos machines dans les 5 zones de disponibilité. Il est peu probable que toutes ces zones soient indisponibles en même temps.

11 votes

+1 pour avoir répondu à la question principale de l'OP.

29voto

garg Points 511

Pas de problème - la formulation du contrat a été légèrement modifiée :

... garantir un temps de fonctionnement de 100% (arrondi à zéro décimale).

2 votes

+1 pour avoir noté que 100% n'est pas 100,0% ou 100,000% etc. Les chiffres décimaux sont importants, ils indiquent la précision ;)

4 votes

Selon certaines conventions, "100%" n'a qu'un chiffre significatif, de sorte que tous les nombres compris entre la moitié et un s'arrondissent à "100%" ; 50% s'arrondit à 100%.

1 votes

En fonction de la norme de comptage, certains diront que 50 % a deux nombres significatifs alors que 100 % a trois nombres significatifs. Les chiffres 50, 5 et 100 sont tout aussi précis. D'autres compteront les chiffres après la virgule. Dans ce cas, 50,5 et 100,4 seront tout aussi précis. Si rien d'autre n'est précisé, je suppose que 100% correspond à 99,5% et plus. 100,0% correspond à 99,95% et plus, etc.

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