Was sind das Team City best practices für die mehrstufige Implementierung?
Wir haben 3 Umgebungen:
- Entwicklung: Team Stadt setzt hier für Subversion-commits am Stamm.
- Inszenierung: Akzeptanz ist hier getan, auf builds, release candidates.
- Produktion: Wenn UAT übergeben, die übergabe von code-set ist hier zum Einsatz kommt.
Sind wir mit Team-Stadt und nur Continuous Integration-setup mit unserer Entwicklungsumgebung. Ich will nicht sparen Artefakte für jede Entwicklung-Bereitstellung, Team Stadt hat. Ich möchte eine zugewiesene person, um in der Lage sein, um das Feuer einer build-Konfiguration, die Bereitstellung eines bestimmten erfolgreiche Entwicklung der Bereitstellung unserer staging-server.
Dann, ich möchte jede staging-deployment zu speichern Artefakte. Bei einer staging-deployment übergibt UAT, möchte ich bereitstellen das Paket Produktion.
Ich bin mir nicht sicher, wie Sie dies im Team der Stadt. Ich bin mit der version 6.5.4, und ich bin mir bewusst, es gibt eine "Förderung der..." - Aktion/trigger, aber ich denke, es hängt davon ab, Artefakte gespeichert. Ich will nicht, um zu speichern der Entwicklung Bereitstellungen jedes mal, wie Artefakte, aber ich will die person, die den staging-deployment in der Lage sein, um anzugeben, welche erfolgreiche Entwicklung deployment Deployment auf staging.
Ich bin mir bewusst, dass es möglicherweise mehrere Möglichkeiten, dies zu tun, gibt es eine best practice? Was ist euer setup und warum empfehlen Sie es?
Update:
Habe ich eine Antwort, so weit, und es ist eine Idee hatten wir intern berücksichtigt. Ich würde wirklich gerne wissen, ob jemand hat eine etwas automatisierte Methode für die Bereitstellung auf einem staging - /production-environemnt über Team Stadt für sich, wo nur Leute mit bestimmten Rolle/Berechtigung ausgeführt werden können, deploy-Skript, um die Produktion, anstatt Sie manuell zu befassen mit jeder Art von Artefakt-Paket. Wer?
Update 2
Ich habe noch 1 Tag, um die Auszeichnung bounty, und ich dachte, die Antwort unten hat meine Frage nicht beantwortet, aber nach der lesewiederholung es ich sehe, dass meine Frage war nicht, was ich dachte, es war.
Gibt es irgendwelche Möglichkeiten nutzen, um Team Stadt für eine Art automatisiertes deployment auf Staging - /Production-Umgebungen?
- Ein bisschen spät hier, aber, scheint, dass Sie würde wirklich profitieren von einem definierten DevOps toolchain und die meisten auf jeden Fall ein application-release-automation-tool. Das ist immer die standard – Verwendung der Werkzeuge wie TeamCity CI und die die Verbindung zu den ARA-tools für die Koordination und Bereitstellungen. en.wikipedia.org/wiki/Application_release_automation
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, du bist tatsächlich zu Fragen zwei verschiedene Fragen hier; man wird über Steuern von Zugriffsrechten auf TeamCity-builds und eine andere ist über die Logistik der Artefakt-management.
Bezüglich Berechtigungen, nehme ich an, was meinst du mit "nur Menschen mit bestimmten Rolle/Berechtigung zum ausführen eines script "deploy to production" und Ihre Antwort an Julien ist, dass Sie wahrscheinlich nicht wollen, devs bereitstellen, die direkt an die Produktion, sondern Sie tun wollen, dass Sie in der Lage sein zu sehen, wie andere baut in das Projekt. Das ist vielleicht auch ähnlich zu Julien ' s " - Szenario, wenn ES dann der Prozess "offline" von TeamCity (entweder das, oder es ist einfach, ES tut, was ES tun, und Sie darauf bestehen müssen, verwenden Sie einen separaten, völlig ineffizienter Prozess, denn "das ist genau so, wie wir es tun" - don ' T get me started auf, dass!)
Das problem ist einfach, dass alle Berechtigungen in TeamCity sind aufgetragen gegen die Projekt und nie die bauen also, wenn du hast, ein Projekt mit allen Ihr baut, es gibt keine Möglichkeit, die Berechtigungen zuweisen, die Granularität zu dev gegenüber der Produktion aufbaut. Ich habe vorher behandelt, gibt es zwei Möglichkeiten:
Bezüglich der Artefakt-management, es gibt kein problem mit der Beibehaltung dieser in der Entwicklung zu bauen, nur definieren Sie ein clean-up-Richtlinie, die nur hält Artefakte aus der letzten X-builds wenn Sie sind besorgt über die Kapazität. Viele Menschen wollen Gewissheit, Sie sind die Bereitstellung der gleichen kompiliert Ausgang an jede Umgebung, was bedeutet, sobald du es baust, werden Sie wollen, um es zu halten um für die spätere Verwendung.
Sobald Sie diese Artefakte aus Ihrem dev-Bereitstellung können Sie die Bereitstellung erneut Sie zu Ihrem anderen Umgebungen über separate builds. Sie haben ein Problem mit der config-Transformationen (vorausgesetzt Sie sind mit Ihnen), aber habe gelesen dieses 2-teilige Serie für einige Ideen auf, wie Adresse, dass (ich bin noch absorbieren Sie es im detail, aber ich glaube, er ist auf dem richtigen Weg).
Nicht, dass die Antwort auf Ihre Frage? Fehlt noch etwas?
Wir auch verwendet, TeamCity als unser build-server so lassen Sie mich erklären unsere Einrichtung.
Wir haben 4 Umgebungen
Verwenden wir nur TeamCity bereitstellen, um die Entwicklung (Nightly builds) und QA (on-demand).
Die Dev-build verwendet, den trunk-Zweig und QA bauen verwendet einen anderen Zweig verwendet für die RC.
Bereitstellung der Staging-und Production verwaltet das IT-team und sind daher nicht automatisiert.
Was wir stattdessen tun ist, wir verwenden TeamCity zu produzieren Artefakte aus der QA bauen. Die Artefakte sind die deployment-kits gesendet für die Inszenierung/Produktion-Bereitstellungen.
Sagte, ich bin nicht sicher, ob TeamCity würde Ihnen eine vollständige Kontrolle über das bauen gefördert werden kann, um die Umwelt. Wir haben im Grunde die Kontrolle dieser auf der SVN-Seite mit Zweigen, und haben verschiedene builds für diejenigen Zweige. Man könnte (sollte) tun können, um dies zu verwalten, es auf die gleiche Weise. Sie können daher sicher was immer bereitgestellt.
Ich verstehen, dass Ihre Bedürfnisse kann etwas anders sein als bei uns, aber ich hoffe, dass dies hilft Ihnen bei der Suche nach dem besten setup.
Ich denke, möchten Sie vielleicht, um sich so etwas wie Octopus Deploy oder BuildMaster. Sorgen Sie für eine schöne Struktur für die Bereitstellung von Methoden, die Sie versuchen zu automatisieren. Beide tools Integration mit TeamCity schön.
Im Grunde, würden Sie weiterhin verwenden, TeamCity für CI, und Sie könnten auch weiterhin die Bereitstellung Ihrer Entwicklungsumgebung mit TeamCity zu, aber Sie möchten, verwenden Sie eine der deployment-Werkzeuge zur Förderung eines (bestehenden) zu bauen, um die staging-und Produktion.
Bearbeiten 2014-02-05 – Update
Sich die Macher von BuildMaster haben ein neues deployment feature – ProGet Bereitstellen – für Ihren NuGet-server-tool, ProGet. Es ist sehr ähnlich zu dem, Octopus Deploy, tho ich habe nicht gespielt mit ihm noch mich, also Octopus eventuell eine bessere Visualisierung der was Versionen bereitgestellt wurden, um die Umgebungen; ich benutze immer noch BuildMaster, da dieses wichtige feature.
Auch, ich bin derzeit mit beiden TeamCity, BuildMaster, und ProGet und ich will nie wieder gehen, um nicht mit automatisierten builds. Derzeit sind alle meine apps sind gebaut und eingesetzt werden, die über BuildMaster. Alle meine Bibliothek Projekte gebaut sind, TeamCity und bereitgestellt, um ProGet. Verwalten können meine interne Abhängigkeiten über die NuGet-Infrastruktur ist schön.