Wir sind eine Gruppe, die begonnen hat, an einer ziemlich großen Website mit einer vorhandenen Codebasis zu arbeiten. Wir haben einen Test und einen Produktionsserver.
Unsere Idee ist es, ein Test-Repository mit einer Reihe von Entwicklern zu haben, auf die Push-Zugriff besteht. und ein gesegnetes Repository, zu dem nur wenige drängen können. Das gesegnete Repo soll immer stabil sein und die neueste Serienversion darstellen.
Wie kann ich den Prozess der Übertragung der Dateien in die Produktion automatisieren? Ist es schlecht, die Produktionsdateien unter Versionskontrolle zu haben? Auf diese Weise würde das Verschieben in das gesegnete Repository die Bereitstellung bedeuten. Aber was passiert, wenn es Zusammenführungskonflikte gibt? Wird der Produktionsserver kaputt gehen, bis er behoben ist?
Ich habe viel über den Einsatz gelernt, indem ich mir angesehen habe, wie Capistrano funktioniert. Ich habe zu der Zeit mit RoR gearbeitet, daher war es eine logische Entscheidung, und obwohl ich es für das Projekt, an dem ich arbeitete, nie ganz verstanden habe, war die Art und Weise, wie automatisierte Updates durchgeführt werden, sehr nützlich.
Möglicherweise befinden Sie sich in einer Situation, in der Sie es sogar direkt verwenden können - es ist nicht unbedingt an Rails gebunden -, aber wenn nicht, ist das Verhalten sicherlich hilfreich.
quelle
Je nachdem, welche Plattform Sie verwenden, gibt es viele Tools, die für die Automatisierung von Produktionsversionen möglicherweise sinnvoll sind. Ich arbeite in einem .NET-Shop, daher verwenden wir NAnt (obwohl MSBuild heutzutage eine bessere Option ist). Java hat Ant und möglicherweise andere Dinge. Ruby hat Dinge wie Rake. Dann gibt es kontinuierliche Integrationsplattformen wie TeamCity und Hudson, die auch zum Verwalten von Releases verwendet werden können.
Ich habe noch nie gesehen oder gehört, dass der Produktcode direkt in einem separaten Quellcodeverwaltungs-Repo enthalten ist, aber das könnte sicherlich funktionieren. Wie back2dos sagte, ist der Schlüssel die Automatisierung. Wir haben unsere Build-Skripte so konzipiert, dass sie die Quellcodeverwaltung auschecken, erstellen und zum Testen in die Staging-Umgebung übertragen können. Wenn uns dann gefällt, wie Staging funktioniert, werden die Skripte von QA nach Prod kopiert.
Meine Empfehlung ist, sich die Werkzeuge dort draußen anzusehen und eines auszuwählen und dann einen Prozess zu entwerfen, der mit dem ausgewählten Werkzeug gut funktioniert. Versuchen Sie nicht, das Rad zu stark neu zu erfinden - dies ist ein sehr gelöstes Problem.
quelle