4 Stimmen

Was ist falsch daran, eine Live-Site von einem DVCS-Klon aus zu betreiben?

Ich sehe hier und da Andeutungen, dass es schlecht ist, ein Live-Deployment direkt von einem DVCS-Klon auszuführen, und dass es besser ist, einen sauberen Baum oder Tarball zu exportieren und diesen zu deployen. Es scheint mir, dass die direkte Ausführung von einem DVCS-Klon mehrere Vorteile hat:

  1. Sie müssen nicht bei jeder Bereitstellung die gesamte Codebasis transportieren.
  2. Die Aktualisierung des Codes auf jede gewünschte Version ist trivial.
  3. Triviales Rollback auf die vorherige Version, wenn die Bereitstellung schlecht läuft.

Und ich kann eigentlich keine Nachteile erkennen. Das Vorhandensein der Repo-Dateien (in meinem Fall ein einzelnes .hg/-Verzeichnis) verursacht keine Probleme.

Gibt es wirklich einen guten Grund, ein Live-Deployment nicht über einen DVCS-Klon laufen zu lassen?

2voto

Oli Punkte 226885

Das ist meine Aufgabe. Der einzige "Nachteil" ist, dass man keine Versionskontrolle für die Datenbanken oder die von den Benutzern hochgeladenen Inhalte durchführen kann. Das ist aber überhaupt kein Nachteil, denn es gibt keine Alternative. Wie üblich brauchen Sie ein Backup-Skript, um all diese Inhalte zu kopieren.

Dies ist keine Antwort, sondern eher eine Erläuterung der modernen Webapp-Verzeichnisstrukturen. Eine sehr einfache Python-Webapp könnte etwa so aussehen:

webapp/
  .hg/
  webroot/
  handler.py

Sie würden es so einrichten, dass der Webserver nur statische Inhalte von webroot/ und wenn der Pfad dort nicht vorhanden ist, fragt es Python (in diesem Fall) nach dieser Seite.

Da der serverseitige Quellcode nicht in webroot/ kann er nicht ausgeliefert werden (es sei denn, Sie haben eine Python-Direktive, die das Ausliefern des Quellcodes anordnet). Das gleiche gilt für die .hg/ Verzeichnis.

Anmerkung: SVN (< 1.7) und CVS sind Ausnahmen, da sie Spray ihre .svn Verzeichnisse über alle Unterverzeichnisse. In diesem Fall würde das bedeuten webroot/ Sie müssen also sicherstellen, dass Sie keine versteckten Dateien ausliefern, aber das ist in der Regel ohnehin der Fall.

1voto

Carson Myers Punkte 35660

Nun, ich weiß von einem.

Wenn sich jemand Zugang zu Ihrem .hg-Verzeichnis verschaffen kann, könnte er möglicherweise Ihren Quellcode einsehen. Aber eigentlich sollte der Zugriff auf dieses Verzeichnis durch den Server oder durch .htaccess-Dateien unterbunden werden.

1 Stimmen

Bei allen modernen Webentwicklungssystemen, die ich kenne (mit Ausnahme von PHP, das ich nicht verwende), befindet sich der Quellcode der Webanwendung ohnehin nicht in einem für das Web sichtbaren Verzeichnis. Dies ist also nur relevant, wenn Sie in PHP arbeiten.

1 Stimmen

Du verstehst nicht, worum es geht. Wenn jemand einen Weg findet, Ihr .hg-Verzeichnis zu bekommen, wird er die gesamte Geschichte Ihres Projekts und alle Ihre Quellen haben. Er kann sie also stehlen und dieses Wissen kostenlos nutzen.

2 Stimmen

Bialix, du verstehst nicht, worum es geht. In meiner Antwort finden Sie eine Erklärung, wie moderne Webanwendungen ihre Dateien strukturieren - die .hg dir wird nie serviert werden, da es nicht im Web Root liegt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X