it-swarm.com.de

So verschieben Sie Änderungen von einer Entwicklungsumgebung zu einem Produkt

Unser 10-köpfiges Entwicklerteam möchte für unsere große Site Entwicklungs-, Test-, Staging- und Produktionsumgebungen verwenden. Wie können wir die Übertragung unserer Änderungen von einer Site zur anderen optimieren und sie so identisch wie möglich halten?

Der Unterschied zwischen dieser Frage und Wie wird von der Testumgebung in die Produktionsumgebung migriert? besteht darin, dass wir Änderungen automatisch/regelmäßig pushen möchten, damit sich die Umgebungen nicht sehr unterscheiden.

Wir verwenden seit einigen Jahren eine Entwicklungs- und Produktionsumgebung, und jede Umgebung verfügt über ein eigenes SVN-Code-Repo. Das Funktionsmodul wurde an einigen Stellen verwendet, funktioniert jedoch nicht mit Blöcken oder Inhalten.

Ein Vorschlag war, Drush zu verwenden und Archive-Dump und Archive-Restore zu verwenden, um die Änderungen zwischen den Umgebungen zu pushen. Die Produktion enthält jedoch Inhalte, die von Besuchern und Benutzern bereitgestellt werden, und das Pushen an die Produktion würde diesen Inhalt auslöschen.

Hat jemand diese Frage schon einmal beantwortet?

5

Ich verwende ein benutzerdefiniertes Skript , um die Produktion automatisch auf Sicherungs- und Aktualisierungsserver zu übertragen (ein Aktualisierungsserver ist ein bereinigter Produktionsklon, dessen Aktualisierungen über pm-update angewendet werden, bereitstehen und zum Testen bereit sind). Sie könnten einige Ideen bekommen, die sich das ansehen. Ich würde jedoch sagen, dass es eine schlechte Idee wäre, automatisch entweder prod mit dev oder dev mit prod zu synchronisieren. Veröffentlichen Sie die Produktion erst, nachdem ein Mensch die Veröffentlichung, die Sie live bringen möchten, getestet und validiert hat. Was die Automatisierung von Produkt-zu-Entwickler-Updates angeht, würde ich denken, dass die Entwickler das sehr ärgerlich finden würden.

Eine Sache, die Sie ziemlich einfach tun könnten, ist die Automatisierung der Updates Ihres Staging-Servers. Ziehen Sie einfach die Datenbank aus der Produktion herunter, rufen Sie den neuesten Code aus dem Entwicklungszweig Ihres Repositorys ab und führen Sie updateb und Ihre Testsuite aus. Ein Mensch könnte dann die Ergebnisse validieren und den Code für die Produktion veröffentlichen, wenn er bereit wäre.

3
greg_1_anderson

Verwenden Sie Features , Context & Boxes für die Blockfunktionalität zusammen mit Deploy und UUID für den Inhalt.

Verwenden Sie nach Möglichkeit Code, CTools-Exportdateien und Aktualisierungs-Hooks in benutzerdefinierten Modulen.

2
Yuriy Babenko

Ich habe neulich etwas Ähnliches untersucht - außer dass es eine automatische Möglichkeit war, den neuesten Code regelmäßig vom Remote-Repo in Ihre lokale Entwicklungsumgebung abzurufen. IIRC umfasste ein paar drush Skripte. Gib mir eine Minute und ich weiß, dass ich es wieder finden kann.

0
EddieN120

Pantheon ( https://www.getpantheon.com/ ) leistet hervorragende Arbeit bei der Verwaltung dieses Workflows. Ich habe das selbst mit Git + Features + Skripten gemacht, aber es war mehr Mühe als es wert war. Ich begann Pantheon zu benutzen und machte mein Leben so viel einfacher. Ich persönlich würde meine Zeit lieber damit verbringen, Websites zu erstellen, als mich um Workflows, Server usw. zu kümmern. Es gibt jedoch nur drei Umgebungen - Entwickler, Test und Live -, sodass es möglicherweise nicht für Sie funktioniert, wenn Sie vier Umgebungen benötigen. Sie haben eine kostenlose Stufe, so dass Sie es versuchen können.

0
Steven