Was ist der effektivste Weg, eine Website bereitzustellen?

8

Mir sind einige Möglichkeiten zum Bereitstellen von Websites bekannt:

  • FTP
  • Export aus der Quellcodeverwaltung
  • Richten Sie die Site auf eine Quellcodeverwaltung

Ich kann einige Vor- und Nachteile von jedem sehen. Gibt es einen Konsens darüber, wie neue Websites oder Standortänderungen am effektivsten bereitgestellt werden können?

Grant Palin
quelle
1
Sehr eng mit einigen anderen Fragen verbunden und eher subjektiv. Dies könnte zu einer Debatte führen. Wenn es sich überhaupt um eine Versionskontrolle handelt, wird dies normalerweise zu einer Debatte.
Tim Post
1
Mein Interesse gilt nicht der Quellcodeverwaltung, sondern dem Vergleich verschiedener Bereitstellungstechniken. Ich denke, wir könnten vernünftige Vergleiche von Vor- und Nachteilen erwarten.
Grant Palin

Antworten:

6

Was für uns bei Stack Overflow am besten funktioniert hat (und Punkt 2 des Joel-Tests erfüllt ), ist eine kontinuierliche Integrationslösung , die das Erstellen unserer Produktionsstandorte mit einem Klick sowie das automatisierte Erstellen unserer Entwicklerebene beim Einchecken neuen Codes ermöglicht .

Wir verwenden die .NET-Variante von CruiseControl mit dem aufregenden Namen .. CruiseControl.NET :)

Einige der Hauptmerkmale sind:

  • Integration mit einer Vielzahl von Versionsverwaltungssystemen
  • Integration mit anderen externen Tools wie NAnt und Visual Studio
  • Kann mehrere Projekte auf einem Server erstellen
  • Fernverwaltung und Berichterstellung

Wir waren äußerst zufrieden mit dieser Open-Source-Software und würden sie jedem Team empfehlen, das seinen Erstellungsprozess optimieren möchte.

Jarrod Dixon
quelle
2
Ich dachte, dass Caps Lock Tempomat war ... für cool
Mark Henderson
3

Ich bevorzuge Bereitstellungen, die automatisiert und wiederholbar sind. Sie möchten auf jeden Fall mit einem Versionsverwaltungs-Tag beginnen, damit Sie genau wissen, was Sie bereitgestellt haben, und es jederzeit erneut bereitstellen können. Verwenden Sie dann Skripte, um dies auf den Server zu übertragen, etwas in Anlehnung an Capistrano oder einfach ein hausgemachtes Bash-Skript oder so.

Wenn für Websites, die kompilierten Code verwenden, die Testserver mit den Produktionsservern übereinstimmen, ist es wahrscheinlich am besten, den Code einmal zu kompilieren und dieselbe kompilierte Version nach dem Testen in die Produktion zu übertragen.

Matthew Shanley
quelle
1

Ich benutze benutzerdefinierte Skripte. Für statische (HTML-basierte) Websites verwende ich doppelte Verzeichnisse mit neuen und installierten Versionen. Dann führt das Skript eine Rekursion difffür die neuen und installierten Versionen aus und lädt nur die Dateien hoch, die sich geändert haben.


quelle
Welche Sprache ist das Skript? Bash? Hast du etwas dagegen, uns einen Blick zu geben?
Paan
@paan: Es ist in Perl. Es tut mir leid, aber ich kann nicht das gesamte Skript veröffentlichen.
0

Ich benutze Git mit ein paar angepassten Hooks für die Bereitstellung. Dies hat sogar den Vorteil, dass ich mehrere Zweige für Entwickler- / Test- / Beta- / Produktionsstandorte betreiben und CI ausführen kann. Bei dringenden Patches erlaubt git immer, bestimmte Commits von einem Zweig in den nächsten auszuwählen.

txwikinger
quelle