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.

2voto

James Pulley Points 456

Allez chercher un livre sur le contrôle de la qualité de la fabrication en utilisant l'échantillonnage statistique. Une discussion générale dans ce livre, dont les concepts auraient été exposés à n'importe quel manager dans un cours de statistiques générales à l'université, indique que les coûts pour passer de 1 excption sur mille, à 1 sur dix mille, à 1 sur un million et à 1 sur un milliard augmentent de façon exponentielle. Essentiellement, la capacité d'atteindre un temps de fonctionnement de 100 % coûterait un montant presque illimité de fonds, un peu comme la quantité de carburant nécessaire pour pousser un objet à la vitesse de la lumière.

Du point de vue de l'ingénierie des performances, je rejetterais cette exigence comme étant à la fois impossible à tester et déraisonnable, cette expression étant plus un désir qu'une véritable exigence. Avec les dépendances applicatives qui existent en dehors de toute application pour la mise en réseau, la résolution de noms, le routage, les défauts propagés par les composants architecturaux sous-jacents ou les outils de développement, il devient pratiquement impossible d'avoir quelqu'un qui garantisse un temps de fonctionnement de 100%.

1voto

Kevin Peterson Points 205

Je ne pense pas que le client demande réellement une disponibilité de 100%, ou même de 99,999%. Si vous regardez ce qu'ils décrivent, ils parlent de reprendre là où ils se sont arrêtés si un météore détruit leur centre de données sur site.

Si l'exigence est que les personnes externes ne remarquent même pas, jusqu'à quel point cela doit-il être radical ? Serait-il acceptable de faire en sorte qu'une requête Ajax soit réessayée et que l'utilisateur final voie une roue tournante pendant 30 secondes ?

C'est le genre de choses dont le client se soucie. Si le client pensait réellement à des accords de niveau de service précis, il en saurait suffisamment pour les exprimer sous la forme de 99,99 ou 99,999.

0 votes

Si le client pense qu'il veut "100 % de temps de fonctionnement" et que c'est ce qui figure dans le verbiage du contrat, vous risquez d'être tenu de le respecter si l'affaire se termine devant un tribunal. Le mieux est d'en parler et d'aider le client à comprendre ce qu'il veut vraiment au lieu de supposer que vous savez ce qu'il pense.

0 votes

Je suis d'accord pour dire qu'il faut éclaircir ce point avant qu'il ne fasse l'objet d'un contrat. Je dis simplement qu'il faut aborder la question comme si le client ne communiquait pas ce qu'il veut réellement, plutôt que comme si le client demandait quelque chose de ridicule.

1voto

jb. Points 4932

Mes deux cents. J'étais responsable d'un site web très populaire pour une entreprise de type fortune-5 qui sortait des publicités pour le Super Bowl. J'ai dû faire face à d'énormes pics de trafic et la solution que j'ai trouvée a été d'utiliser un service comme Akamai. Je ne travaille pas pour Akamai mais j'ai trouvé leur service extrêmement bon. Ils disposent de leur propre système DNS, plus intelligent, qui sait si un nœud ou un hôte particulier est soumis à une forte charge ou est hors service, et qui peut acheminer le trafic en conséquence.

L'avantage de leur service est que je n'ai pas eu à faire quoi que ce soit de très compliqué pour répliquer le contenu des serveurs de mon propre centre de données vers leur centre de données. De plus, je sais, pour avoir travaillé avec eux, qu'ils utilisaient beaucoup les serveurs Apache HTTP.

Bien qu'il ne s'agisse pas d'une disponibilité à 100 %, vous pouvez envisager ces options pour diffuser du contenu dans le monde entier. Si j'ai bien compris, Akamai avait également la possibilité de localiser le trafic, ce qui signifie que si je me trouvais dans le Michigan, je recevais le contenu d'un serveur du Michigan/Chicago et que si je me trouvais en Californie, je recevais le contenu d'un serveur basé en Californie.

0 votes

-1 parce qu'il s'agit d'une réponse pratique mais pas du tout utile. Toutes les questions posées sur ce site pourraient être résolues en disant "engagez quelqu'un d'autre pour le faire", mais ce n'est pas la raison pour laquelle nous sommes ici.

0 votes

Je ne suis pas d'accord. "Pas utile du tout ?" C'était très certainement utile pour moi et contrairement à votre commentaire "engagez quelqu'un d'autre pour le faire", je suppose qu'avec votre raisonnement, le gars devrait creuser sa propre fibre optique et concevoir ses propres interrupteurs plutôt que de les acheter aussi ? Êtes-vous sérieux, Yves ? Vous parlez comme quelqu'un qui n'a pas passé beaucoup de temps dans le domaine des technologies de l'information.

0voto

Christian Points 736

Au lieu d'un basculement hors site, il suffit d'exécuter l'application à partir de deux sites simultanément, interne et externe. Et synchroniser les deux bases de données... Ensuite, si l'interne tombe en panne, les internes pourront toujours travailler et les externes pourront toujours utiliser l'application. Quand l'interne revient en ligne, synchronisez les changements. Vous pouvez avoir deux entrées DNS pour un nom de domaine ou même un routeur de réseau avec round robin.

0voto

JMS10 Points 331

Pour les sites hébergés en externe, la solution la plus proche d'un temps de fonctionnement de 100 % est d'héberger votre site sur le moteur d'applications de Google et d'utiliser son système de gestion de la qualité. Datastore à haute réplication (HRD) qui réplique automatiquement et en temps réel vos données dans au moins trois centres de données. De même, les serveurs frontaux de l'App Engine sont automatiquement mis à l'échelle/répliqués pour vous.

Cependant, même avec toutes les ressources de Google et la plateforme la plus sophistiquée au monde, la App Engine SLA La garantie de temps de fonctionnement n'est que de "99,95 % du temps au cours d'un mois civil".

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