it-swarm.dev

Haben Sie effektive Strategien zum Starten einer v2 von a WP Seite? ˅?

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.

Wir arbeiten derzeit 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?

12
Mike Lee

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 nachdem, wie hoch die aktuelle TTL ist) reduzieren. bevor Sie die IP-Adresse ändern.

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

4
Aaron Terry

Ich bin 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 schwierige 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 Datensätze 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.

2
SethMerrick

@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 usw.)

Obwohl es sicherlich nicht für Ihren Anwendungsfall gedacht ist, lesen Sie meine Antwort auf eine verwandte Frage , die ein Beta-Level-Plugin beschreibt, das ich gerade über WordPress Answers Exchange mit dem Namen _ zur Verfügung gestellt habe.WP Webhosts migrieren (Ja, ich bin ein Arschloch, wenn es um die Benennung von Motiven geht.)

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 mehr 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 " hook ". Ich denke auch, dass ein Ansatz darin besteht, die Daten und Strukturen in WordPress als Daten in einer PHP -Datei zu serialisieren, damit ein zukünftiges Plugin diese Änderungen als Deltas anwenden kann, genau wie ein Quellcode-Kontrollsystem Deltas anwendet, um anzukommen bei der aktuellen Version des Quellcodes.

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.

2
MikeSchinkel