Frage

Gibt es eine bevorzugte Methode der graziös eine Website aktualisieren? Ich habe eine völlig neue Code-Basis bereit, auf einer Website zu gehen, aber es dauert mehrere Stunden zu aktualisieren. Ich will nicht die Website die ganze Zeit mit einem sein down „Upgrade, bald wieder!“ Nachricht, aber noch kann ich die aktuelle Seite verlassen, während die neuen in Kraft gesetzt wird.

Der einzige Weg, ich daran denken kann, könnte für eine anmutige Upgrade ermöglicht, ist die Verwendung von zwei Servern, aber dies wäre noch teurer.

War es hilfreich?

Lösung

Planung auf „anmutig Ihre Website aktualisieren“ startet nicht, wenn Sie bereit sind, zu implementieren. Es beginnt bei der Gestaltung Ihrer Anwendung sehr früh. Das heißt, müssen Sie eine Anwendung erstellen, dass kann anmutig aufgerüstet werden, und auch die Infrastruktur im Ort zu haben, das Upgrade zu unterstützen.

Sie haben einige Details zur Verfügung gestellt und sind im Internet eine vage, aber wichtige Frage von zufälligen Menschen zu fragen. Dies führt mich, dass „Modernisierung graziös“ zu glauben, eine Last-Minute-Sorge (wie 23 Minuten vor) war.

Ihre Frage: „Gibt es eine bevorzugte Methode der graziös eine Website aktualisieren?“ kann nur als, beantwortet werden: „Ja, aber ich tue es Art und Weise anders als Sie.“

Andere Tipps

Es gibt eine Reihe von Taktiken, die Sie verwenden können - in Abhängigkeit von der Zeit / Ressourcen, die Sie bereit sind, für das Upgrade zu begehen.

Es könnte möglich sein, je nachdem, wie Sie Ihre Migration Leistung erbringt, dies mit absolut null Ausfallzeit zu tun.

Je komplexer Ihre Anwendung / Website, desto komplexer wird die Migrationsstrategie sein kann, wenn Sie keine Ausfallzeiten wollen.

Wir haben erreicht Null Ausfallzeit-Migrationen von:

  1. neuen Server (n) mit der neuen Version der Website und Datenbank einrichten.
    • Ändern der Lastenausgleich zu Split-Verkehr in zwei Pools neu-App und alt-App.
    • Configure Loadbalancer beginnt Verkehr auf den neuen App-Server (n) zu senden, aber halte vorhandene Sitzungen auf dem alten-App-Server (n)
    • Neue Sitzungen über neue App überprüfen, ob die Kundendaten migriert wurden, und wenn nicht - schnell, dass der Fall ist.
    • Progressiv heruntergefahren "old-app" Server als Last fällt, ein Upgrade auf die neue App, und zur Ergänzung des neuen App Load-Balancer-Pool.
    • Als Sitzungen zu beenden, die Kundendaten in die neue Datenbank migriert wird.
    • Als Last zulässt, Migrate inaktive Kundendaten in die neue Datenbank.

Natürlich ist dies komplexer - wie wir brauchten in zwei Umgebungen Zugriff auf Kundendaten zu erhalten und schrittweise zu migrieren.

Es uns nicht erlauben, wenn auf Rollback Änderungen sollten einige Probleme bemerkt werden - zum Beispiel übermäßigen CPU oder Speichernutzung auf eines der neuen App-Servern.

Für eine kleinere Website, wo Sie das Budget nicht für zusätzliche Server haben, können Sie in der Lage sein, dies zu erreichen, indem einfach mehr IP-Adressen, oder irgendeine Form von interner Load-Balancing-Software, um Anfragen an den alten, oder neue Seite. Dies kann Dinge komplizierter.

Wenn Sie nicht in der Lage sind, die alte App und neue App aus dem gleichen Datenspeicher (Back-End-Web Service, Datenbank, etc.) laufen zu lassen - dann Ihre Anwendungen müssten sich bewusst sein, dass sie für die Synchronisierung von Daten zwischen alt / benötigen würde neu - zB beim speichern / aktualisieren von Kundendaten, müßte der Schreib an beiden Orten auftreten.

Einige Stunden ist viel, wenn es eine Menge der Umwandlung in der Datenbank Sie zunächst eine Kopie der Datenbank nehmen, Finish Umwandlung der neuen Website (aber mit einem etwas alten db) eingerichtet, Blick auf das, was sich geändert haben da Sie die Kopie nahm, konvertieren, die zu (schneller als die großen Dump sein sollten, wenn Sie nicht über eine Menge Veränderungen haben) in die neue Datenbank und eingefügt werden.

Vergessen Sie aber nicht sichern!

Ich denke, dass, je nachdem welche Art und Weisen Sie mit diesem zu gehen, ist es unbedingt notwendig, die volle Zusammenarbeit Ihrer Web zu haben, Hosting und Domain-Namen-Anbieter.

Ein grobes Verfahren wäre:

  1. Mieten Sie einen neuen Server mit einer anderen IP-Adresse, die sein wird, in dem Sie den neuen Standort bereitstellen werden. Oder, wenn möglich, eine Testdomäne innerhalb Ihrer Website zu erstellen, die für die Öffentlichkeit nicht zugänglich ist.
  2. Stellen Sie Ihre Website in der neuen Server / Sub-Domain. Führen Sie alle notwendigen Tests mit Ihrer neuen Website über die IP-oder Sub-Domain zuerst.
  3. Wenn Sie sicher sind, dass alles in Ordnung ist, die Ausgabe Umleitungen zuerst auf den neuen Server / Sub-Domain.
  4. Redirect Ihre DNS auf die neue IP-Adresse oder repariert es so, dass Sie Ihre Haupt-Domain jetzt verweisen auf die ursprüngliche Position der Sub-Domain machen.

Im Idealfall würde niemand auch feststellen, dass Ihre Seite war, oder ob es nach unten Zeit hat, wird es nur ein paar Minuten dauern.

Sounds wie Sie Ihren Kuchen haben wollen und es zu essen.

Wenn das Upgrade ist eine manuelle Arbeit, die mehrere Stunden in Anspruch nimmt, warum Sie es nicht beschleunigen, indem Sie den Job Scripting.

Dies ist wahrscheinlich etwas, das Sie bereits „entworfen“ haben musste auf die aktuelle Version.

Kann es segmentiert so sein, dass einige Teile (zB. Katalog) stehen zur Verfügung, aber andere (z. B. Einkauf) aufgerüstet werden?

Kann eine schreibgeschützte Version mit einem Cache erstellt werden?

Oder doch gibt es Zeiten des Tages, wenn ein Dienstausfall akzeptabel ist? Trainiere Sonntagabend? Sogar ziemlich große Websites haben einige Wartungsfenster, in denen Stücke von Funktionalität nicht zugänglich sind.

Wenn es nur die Datenbank, die Sie Upgrade sind, stellen nur einen neuen und zurückschalten, sobald es fertig ist. Wenn Sie über das Hochladen der Code sprechen, laden Sie es in ein anderes Verzeichnis und mv es, wenn es fertig ist. Es ist sollte kein Problem sein, wenn Sie ein ähnliches Setup auf Ihrer Entwicklungsumgebung haben.

Sie können auch einen sehr günstigen Server wie die Miete bei 20 Euro / Monat (Isgenug oder etwas) und tun Sie Ihr Upgrade.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top