Haben Sie effektive Strategien zum Starten einer Version 2 einer WP-Site?

12

Mein Team und ich arbeiten mit einem Kunden zusammen, der eine bestehende WordPress-Site mit einigem Inhalt und einem von ihm erstellten benutzerdefinierten Thema hat. Es ist ein Gruppenblog, dh es gibt mehrere Blogger auf der ganzen Welt, die ständig Inhalte hinzufügen und bearbeiten.

Unsere Aufgabe ist es, ein völlig neues Thema mit einigen neuen Funktionen zu erstellen. Einige dieser Funktionen erfordern neue benutzerdefinierte Widgets, Plugins und Datenbankfelder.

Derzeit arbeiten wir an unseren eigenen Entwicklungsmaschinen und integrieren sie in einen einzelnen Entwicklungsserver. Der gesamte Code ist in SVN versioniert. Unser ernannter Datenbankadministrator führt derzeit alle Datenbankänderungen manuell in der Entwicklungsdatenbank zusammen, obwohl er dies hoffentlich bald automatisieren kann.

Wir haben gerade angefangen, über unseren Produktionsfreigabeprozess zu sprechen. Das heißt: Wie können wir, sobald wir fertig sind, all unseren benutzerdefinierten Code reibungslos und mit so wenig Unterbrechungen wie möglich auf den Produktionsserver (den Live-Server) übertragen?

Wir haben einige Pläne, aber ich würde gerne hören, wie andere dieses Problem ebenfalls angegangen sind. Gibt es Best Practices zu befolgen oder bekannte Fallstricke zu vermeiden?

Mike Lee
quelle

Antworten:

4

Wenn Sie den Anweisungen von SethMerrick folgen, können Sie die Umschaltzeit erheblich verkürzen, indem Sie die TTL für die entsprechenden DNS-Einträge auf ungefähr 5 Minuten (je nach der aktuellen TTL) senken, bevor Sie die IP-Adresse ändern.

Auf diese Weise weisen Sie Remote-DNS-Servern an, die Adresse nur für 5 Minuten zwischenzuspeichern. Sobald Sie die IP-Adresse geändert haben, können Sie die TTL auf den vorherigen Wert erhöhen. Führen Sie die Umschaltung während einer verkehrsarmen Zeit durch, um den Effekt weiter zu minimieren.

Aaron Terry
quelle
Das haben wir nur zufällig gemacht. Es hilft definitiv. Eine lange Einsatzdauer können wir uns nicht leisten. Danke, dass du diesen Tipp hinzugefügt hast!
Mike Lee
Beachten Sie, dass Sie die TTL so lange ändern sollten , bevor Sie die IP tatsächlich ändern . Mit anderen Worten, wenn TTL eine Woche beträgt, sollten Sie die TTL eine Woche vor dem Ändern der IP auf 5 Minuten ändern, damit alle Benutzer die neue TTL nutzen können.
Daniel C. Sobral
2

Ich bin mir nicht sicher, ob dies zutrifft, aber ich habe gerade einen ähnlichen Prozess durchlaufen, bei dem eine Website mit hohem Datenverkehr gleichzeitig migriert und aktualisiert wurde.

Die grundlegende Strategie bestand darin, auf einem Staging-Server zu arbeiten, dann, wenn alles fertig war, einen MySQL-Speicherauszug auf dem Live-Server zu erstellen, ihn auf den Staging-Server zu importieren, alle erforderlichen Bereinigungen durchzuführen und dann die DNS-Einträge auf den Staging-Server zu verweisen, wodurch der Fehler verursacht wurde Staging-Server, um der neue Live-Server zu werden.

Das knifflige Bit besteht darin, alle Daten, die sich während der DNS-Weitergabe ansammeln, auf dem Staging-Server (der jetzt der Live-Server ist) zusammenzuführen. Mit anderen Worten, wenn 30 Stunden zwischen dem Ausführen Ihres Mysql-Dump / Update-DNS und dem Abschluss der DNS-Weitergabe vergehen, müssen Sie selektiv 30 Stunden an Datensätzen von der alten Site zur neuen zusammenführen.

Es ist kein nahtloser Prozess, aber als wir eine Woche später waren, hatten sich alle Knicke ausgeglichen.

SethMerrick
quelle
Würden Sie in diesem Szenario die alte Site während des DNS-Übergangs effektiv schreibgeschützt machen, um Änderungen an der Site zu verhindern, die nicht migriert werden?
Trevor Bramble
Dies ist ein alternativer Ansatz, um zu verhindern, dass während des Übergangs neue Daten zur Datenbank der alten Site hinzugefügt werden. Der oben erwähnte Ansatz lässt jedoch die alte Site während des Übergangs aktiv und führt dann alle zusätzlichen Datenbankeinträge, die während des Übergangs aufgetreten sind (neue Posts, Kommentare usw.), manuell auf der neuen Site zusammen. edit: wollte nur erwähnen, dass der Vorschlag von acterry zu TTL Records ein fantastischer Rat ist.
SethMerrick
Wir haben etwas Ähnliches getan. Nicht nahtlos, aber hey, es funktioniert.
Mike Lee
2

@Mike Lee: Tolle Frage und einer der heiligsten Gründe für WordPress (oder eines der mir vertrauten Open-Source-Mainstream-CMS wie Drupal, Joomla et al.)

Auch wenn es sicherlich nicht für Ihren Anwendungsfall gedacht ist, lesen Sie meine Antwort auf eine verwandte Frage, die ein Beta-Plugin beschreibt, das ich gerade über WordPress Answers Exchange zur Verfügung gestellt habe und das WP Migrate Webhosts heißt (ja, wenn es um das Benennen von Motiven geht , bin ich scheiße) .)

Aber ich möchte auch den von Ihnen beschriebenen Anwendungsfall mit einem Plugin lösen und denke derzeit darüber nach, wie dies erreicht werden kann. Ich denke, der Weg, dies zu erreichen, besteht darin, es nicht länger generisch zu lösen und stattdessen die bekannten Muster in WordPress anzusprechen und es dann jedem anderen zu ermöglichen, mein Plugin für spezielle Anwendungsfälle zu " binden ". Ich denke auch, dass ein Ansatz darin besteht, die Daten und Strukturen in WordPress als Daten in einer PHP-Datei zu serialisieren, so dass ein zukünftiges Plugin diese Änderungen als Deltas anwenden kann, genau wie ein Quellcode-Kontrollsystem Deltas anwendet, um zur aktuellen Version der Quelle zu gelangen Code.

Während ich Ihr Problem nicht vollständig beantworte oder löse, hoffe ich, dass ich Ihnen gute Denkanstöße gebe und auch hoffe, dass Sie oder jemand anderes an einer möglichen Lösung mitarbeiten möchten.

MikeSchinkel
quelle
WP Migrate Webhosts klingt wie ein dringend benötigtes Plugin. Vielen Dank für das Teilen und dieses Feedback!
Mike Lee
Ja, ich denke schon. Ich hoffe auf eine Zusammenarbeit, damit ich und andere es so weiterentwickeln können, dass es überaus nützlich ist! Vielen Dank für die Abstimmung.
MikeSchinkel