Comment verrouiller une application Web pour la maintenance sans perte de travaux non sauvés?

StackOverflow https://stackoverflow.com/questions/19854630

Question

J'ai une grande application Web dans ASP .NET (pas que la technologie compte ici) qui n'a pas actuellement de moyen d'être verrouillé pour la maintenance sans que les utilisateurs actuels ne perdent leur travail. Comme je n'ai pas implémenté quelque chose comme ça auparavant, j'aimerais entendre parler de certaines des précautions standard et des étapes que les développeurs prennent une telle opération.

Voici quelques-unes des questions auxquelles je peux penser:

  • Chaque page devrait-elle rediriger vers une page "Site Down for Maintenance" ou y a-t-il un moyen plus central d'éviter l'interaction?
  • Comment centraliser une maintenance planifiée de telle sorte que les opérations utilisateur se verrouillent avant que le site ne soit verrouillé. Empêchant ainsi la perte de travaux non sauvés.

L'application est axée sur les données et met en œuvre des lunettes de transaction sur la couche commerciale. Il n'utilise pas d'équilibrage ou de réplication de charge. Je me trompe peut-être, mais cela ne «se sent pas bien» de faire en sorte que le BLL gère cela. Toutes les suggestions ou liens vers des articles seraient appréciés.

Était-ce utile?

La solution

Une façon de créer une page de maintenance consiste à utiliser la fonction APP_OFFLINE.htm d'IIS. En utilisant cette fonctionnalité, vous pourrez afficher la même page HTML à tous vos utilisateurs les informer de la maintenance.

Il y a un joli post ici dans Stackoverflow à ce sujet. Asp.net 2.0 - comment utiliser app_offline.htm.

Une autre chose que vous pourriez faire est d'informer vos utilisateurs qu'il existe une maintenance planifiée afin qu'ils soient également conscients et cesser d'utiliser l'application.

Tout dépend du temps dont vous avez besoin pour mettre à niveau votre application. Si la mise à niveau est pour télécharger les nouveaux fichiers et ne pas prendre plus une minute ou deux, il est plus probable que vos utilisateurs ne le verront même pas.

Autres conseils

Une réponse sans réponse qui peut être utile: concevez l'application afin qu'elle puisse être mise à niveau de manière transparente à ses utilisateurs. Ensuite, vous n'avez jamais de fenêtre de maintenance dont les utilisateurs doivent vraiment s'inquiéter. Il n'est pas nécessaire de verrouiller l'application car tout continue de fonctionner. Si les transactions sont supprimées, c'est un bogue dans l'application car il existe une exigence explicite que l'application peut être mise à niveau avec les transactions en cours, il a donc été codé pour prendre en charge cela et il existe des tests qui vérifient cette fonctionnalité.

Considérez comme exemple Netflix: a-t-il une fenêtre de maintenance verrouillée? Non pas que le grand public le sache jamais. :-)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top