Best Practices für die Verwaltung der Bereitstellung von Code von Entwicklern auf Produktionsservern?


8

Ich hoffe, ein einfaches Tool oder eine einfache Methode zu finden, mit der wir unsere Code-Bereitstellung verwalten können.

Hier sind die Funktionen, die diese Lösung hoffentlich bietet:

  1. Entweder eine webbasierte oder eine Batch-Datei, die eine Liste von Dateien enthält, kommuniziert mit unserem Produktionsserver, um diese Dateien in verschiedenen Ordnern zu sichern, sie zu komprimieren und in einem Sicherungscode-Ordner abzulegen.

  2. Anschließend werden Name, Datum / Uhrzeit und Zweck der Bereitstellung aufgezeichnet.

  3. Anschließend werden die Dateien an den richtigen Ort auf dem Produktionsserver gesendet.

Ich möchte keine zu komplexe Schnittstelle für die Durchführung der Bereitstellung, da sie diese dann möglicherweise nie verwenden.

Oder ist das, was ich verlange, zu unrealistisch?

Ich weiß nur, dass meine Selbstdisziplin nicht perfekt ist, und ich hätte lieber ein Werkzeug, auf das ich mich verlassen kann, um das zu tun, was getan werden muss, und dann meine eigene Erinnerung daran, welche genauen Schritte ich jedes Mal unternehmen muss.

Wie geht es euch, stellt sicher, dass alles korrekt bereitgestellt wird und macht bei Fehlern ein einfaches Rollback?


Subversion und ein Post-Commit-Hook? Lassen Sie den Server eine Arbeitskopie erstellen, das Repo festschreiben und den Post-Commit-Hook verwenden, um die Arbeitskopie des Servers zu aktualisieren.
Vitor Py

Wir verwenden keine Subversion, die von Qumasoft als QVCS bezeichnet wird.
Crosenblum

Könnt ihr etwas vorschlagen, das nicht darauf beruht, dass wir die von uns verwendete Quellcodeverwaltung ändern?
Crosenblum

Mit Capistrano können Sie Ihren eigenen QVCS-Treiber schreiben.
Htbaa

Und ich entschuldige mich, wenn ich das nicht klargestellt habe, brauche ich eine Lösung in Windows OS.
Crosenblum

Antworten:


2

All dies kann durch eine Batch-Datei erfolgen. Die folgenden grundlegenden Schritte müssen in der Batchdatei ausgeführt werden:

  1. Aktuelle Datums- und Uhrzeitangabe in einer Variablen abrufen.
  2. Erstellen Sie Kopien des Produktionsverzeichnisses in Ordnern mit dem aktuellen Datum und der aktuellen Uhrzeit. Zippen Sie den Ordner, wenn Sie möchten.
  3. Replizieren Sie den Build-Drop-Ordner in Produktionsverzeichnisse. Sie können auch einige Dateien überspringen, die Sie nicht überschreiben möchten (z. B. web.config). Sowohl xcopy als auch robocopy ermöglichen das Überspringen von Dateien.

Mit Ausnahme des ersten Schritts sind die beiden anderen Schritte sehr grundlegende Befehlszeilenoperationen. In Bezug auf das erste zeigt der folgende Code, wie ein Verzeichnis mit Datum und Uhrzeit abgerufen wird:

for /f "tokens=1-3 delims=/ " %%A in ("%DATE%") DO (
  set DATESTR=%%C%%A%%B
)

for /f "tokens=1-3 delims=:." %%F in ("%TIME%") DO (
  set TIMESTR=%%F%%G%%H
)

set CURRENTDT=%DATESTR%T%TIMESTR%

:: now you can use the date time in a folder name:
xcopy /e \\production1\site1 \\backup\site1\backup-%CURRENTDT%\

1

Klingt nach einem Job für Capistrano mit dem Railsless-Deploy- Plugin.


Ich wollte auch Capistrano sagen. Wenn Sie sich das Angebot von Capistrano ansehen, können Sie sich ein Bild davon machen, was Ihnen zur Verfügung steht.
Glenatron

Ist Capistrano nur für Linux?
Crosenblum

Ruby läuft unter Windows, aber vor 1,5 Jahren konnte ich es nicht unter Windows laufen lassen. Also habe ich stattdessen die kostenlose VMWare Server Edition heruntergeladen, einen virtuellen Ubuntu-Server installiert und für Capistrano konfiguriert. Vielleicht hat sich die Windows-Unterstützung jetzt verbessert.
Htbaa

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.