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?

Crosenblum
quelle
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%\
Codismus
quelle
1

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

Htbaa
quelle
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
0

Ich bin mir ziemlich sicher, dass Sie dies mit TFS tun können - wenn Sie mit dem MS-Entwicklungsstapel arbeiten

Muad'Dib
quelle
Was ist TFS? Irgendwelche Links, Beschreibungen?
Crosenblum
@crosenblum TFS ist Microsoft Team Foundation Server - ihr stark verbesserter Ersatz für Source Safe
Muad'Dib