Bereitstellen einer neuen Version einer Anwendung für die IIS-Anwendung ohne Ausfallzeiten

Bereitstellen einer neuen Version einer Anwendung für die IIS-Anwendung ohne Ausfallzeiten

Ich habe eine kleine AngularJS-Webanwendung, die in Kiosken in einem Intranet-Netzwerk ausgeführt wird. Ich wurde beauftragt, Bereitstellungen ohne Ausfallzeiten und auf automatisierte Weise durchzuführen, die über eine Weboberfläche ferngesteuert werden können. Da es sich um eine kleine Anwendung handelt, haben wir keine Lastverteiler oder ähnliche Setups. Ich habe mir zwei Optionen angesehen:

Option 1: Laden Sie Versionen der Anwendung in einen Ordner herunter und ändern Sie den physischen Pfad des virtuellen Verzeichnisses in den Ordnerpfad einer neuen Version. Dies ist mithilfe der Bibliothek Microsoft.Web.Administration mit dem folgenden Code möglich:

            ServerManager sm = new ServerManager();
            Site site = sm.Sites["Default Web Site"];            
            site.Applications[virtualDirectory].VirtualDirectories["/"].PhysicalPath = newPath;
            sm.CommitChanges();

Bei diesem Ansatz,

  1. Wie schnell wird sich die Umstellung auswirken?
  2. Wie hoch ist die Wahrscheinlichkeit, dass einige Kioske noch mit der älteren Version der Anwendung funktionieren?
  3. Besteht die Möglichkeit einer Ausfallzeit während der kurzen Zeitspanne, in der die Umstellung erfolgt?
  4. Geben in diesem Zeitraum an IIS gestellte Anfragen Fehler zurück?

Option 2:Ich verwende die URL-Umschreibfunktion von IIS. Im Grunde füge ich programmgesteuert neue Umschreibregeln zur web.config der Anwendung hinzu, um zu einem anderen Unterordner umzuleiten, der die neuere Version der Anwendung enthält.

Bei diesem Ansatz,

  1. Wie schnell wird die URL-Umschreibregel wirksam und mit der Umschreibung begonnen?
  2. Wie hoch ist die Wahrscheinlichkeit, dass einige der Kioske noch mit der älteren Version der Anwendung funktionieren?
  3. Besteht die Möglichkeit einer Ausfallzeit während des Zeitraums, in dem die Umschreibregel zur Datei web.config hinzugefügt wird?
  4. Geben in diesem Zeitraum an IIS gestellte Anfragen Fehler zurück?
  5. Entstehen durch die URL-Umschreibung Leistungseinbußen?

Helfen Sie mir bitte weiter. Sind beide Ansätze für meine Aufgabe nicht geeignet? Gibt es andere Alternativen zu dieser Anforderung?

Antwort1

MSDeploy sollte in der Lage sein, den automatisierten und Remote-Bereitstellungsteil zu handhaben. Wenn Sie keinen anderen Server oder keine andere Möglichkeit haben, den Anwendungsverkehr automatisch an ein anderes virtuelles Verzeichnis zu senden, ist keine Ausfallzeit eine praktische Anforderung. Das ist, als würde man sagen, ich habe ein Auto, aber ich möchte damit weiterfahren können, während es in der Werkstatt ist. Wenn Sie ein Auto fahren möchten, während Ihr Auto in der Werkstatt ist, benötigen Sie ein anderes Auto, vorübergehend oder anderweitig.

verwandte Informationen