Was sind die besten Praktiken zu verwenden, um eine Web-Anwendung von der Entwicklung bis zur Produktion Inszenierung zu übergeben?

StackOverflow https://stackoverflow.com/questions/376734

Frage

Unsere Entwicklungsumgebung hat viele Schichten und kompliziert zu replizieren oder sogar Backup effektiv. Grundsätzlich ist das Dateisystem (zB. / Usr / appdir / Webapp ...) hat andere Anwendungen unserer Web-Anwendung dient, diejenigen Anwendung, die wir tun SVN Updates von ihrem Repository aktualisieren.

Die Verwendung der Web-Anwendung selbst (als Benutzer) wirkt sich sowohl auf das Dateisystem und die Datenbank. So, das System zu sichern ist eine Sache, eine Kopie beide am selben Zeitpunkt das Dateisystem und Datenbank (mysqldump) zu haben. Einer der beiden für sich allein nicht eine vollständige Sicherung, da die Anwendung sehr dynamisch selbst.

Wenn wir eine Webapp Inszenierung für einen unserer Kunden bereitstellen Daten zu testen und geben, dann haben wir eine Umgebung, die jetzt schwierig ist, von unserer Entwicklungsumgebung zu synchronisieren, oder sogar die Produktion zu nehmen. Da werden wir Änderungsanforderung von dem Kunden in der Entwicklung, aber der Kunde selbst wird Änderungen in der Inszenierung machen.

In diesem Moment wir Einfrieren Zeiten verwenden, in denen wir unsere Kunden bitten, Änderungen an Entwicklungsumgebungen zu machen oder sogar direkt mit der Produktion (vor Live vollständig zu gehen).

Ich frage mich, ob sie eine bewährte Methode auf, wie ein effektives Verfahren haben, von dev zu passieren -> Inszenierung -> Produktion? Oder wenn Sie vielleicht einige Hinweise haben.

War es hilfreich?

Lösung

Aus dem Klang der es, das Problem durch die Art der Anwendung kompliziert ist.

Zum einen ist Ihre Anwendung eine Unterscheidung zwischen Dateien, die Teil der Anwendung sind, und Dateien, die nur Daten sind? Falls nicht, wenn Sie einen sehr zwingenden Grund haben, dies nicht zu tun, eine Änderung dieser Art sollte die Versionskontrolle des Dateisystems machen viel einfacher - dann wäre es sinnvoll, die Anwendungsteile unter Versionskontrolle haben, aber nicht die Datenteile.

Zweitens, ich habe immer halten Dateisystem Daten synchron mit Datenbankdaten ein Schmerz gefunden. Eine Lösung (die eine umfangreichere Refactoring sein kann) ist zu einem machen generieren-Lage, von der anderen Seite. Könnten Sie das Dateisystem Sachen in Ihrer Datenbank speichern, irgendwie auf die relevanten Daten verknüpft, die das Dateisystem aus einem Skript füllen könnte? Wenn Ihre Dateien zu groß sind, in vielen Fällen mit repräsentativen Dateien für die Zwecke der Entwicklung und Prüfung ausreicht.

Alternativ können Sie ein separates Repository für Daten, die über eine gültige Snapshot eines Satzes von Daten erfolgen kann (sowohl Datenbank- und Dateisystem), die gespeichert und verwaltet werden können separat zu den Anwendungscode (obwohl dieser Ansatz andere Probleme mit sich bringen wird ...)

Wenn die Design-Fragen hier unveränderlich sind, kann ich glaube nicht an eine bessere Idee, als Ihre Einfrieren Zeiten.

Andere Tipps

ich in der Regel mache keine Änderungen in der QA / Staging-Umgebung. Jede Änderung wird in der Entwicklungsumgebung gemacht und schob dann sowohl QA / Inszenierung und Produktion. Normalerweise ich nicht Live-Daten in QA verwenden / Staging entweder, wenn ich es vermeiden kann. In Fällen, in denen ich Live-Daten in QA / staging tun haben, werde ich etwas verwenden, wie SQL-Daten (von Red Gate) Vergleichen Sie die Migration von neuen Daten aus der QA / Staging-Umgebung zur Produktion zu verwalten.

Auch behaupte ich separate Konfigurationen für dev / QA / Produktion in Quellcodeverwaltung. Es ist ein bisschen wie ein Schmerz, um Änderungen in allen Konfigurationen zu haben, sich zu erinnern, wenn die Änderung sie alle betrifft, aber es gibt so viele Unterschiede, dass es einfacher ist, dies zu tun, als die Config für QA / Produktion zu aktualisieren, wenn die App veröffentlicht wird / installiert ist.

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