2012-03-29 1 views
1

Ich arbeite für ein neueres .Net-CMS-Webentwicklungsunternehmen und wir haben gerade eine Versionierungsstrategie zusammengestellt. Wir sind derzeit stark auf Subversion als Versionierungssystem mit TeamCity angewiesen, um unseren Dev-Server auf dem neuesten Stand zu halten (und unsere Builds auf QA und Produktion zu kontrollieren).Serverarchitektur für Subversion-, TeamCity- und Entwicklungsserver

Ich versuche zu finden, welche Art von Architektur für eine solche Einrichtung vorgeschlagen wird. Sollten wir für jeden Server separate Server haben? Was ist mit TeamCity Server und den Build-Agenten? Es scheint mir, dass der beste Weg zu gehen wäre, einen Server für die Ausführung von Subversion einzurichten, einen für die Ausführung von TeamCity Server und einen weiteren für die Ausführung der TeamCity Build Agent (s). Wir möchten jedoch vermeiden, dass dafür drei separate Server betrieben werden.

Kann mir jemand sagen, was sie vorher benutzt haben und was gut funktioniert? Was schlägst du vor und warum?

UPDATE: Wir müssten etwa 10 Entwickler unterstützen. Wir sind jetzt ein wenig unter dieser, aber erwarten, ein Paar/wenige innerhalb des nächsten Jahres zu mieten.

UPDATE: Eine weitere Frage. Es scheint durch das Lesen der Dokumentation, dass wir wahrscheinlich nicht mehr als die drei Build Agents benötigen, die mit der Professional Services-Lizenz einhergehen, basierend auf der Anzahl der Entwickler, die wir beschäftigen. Es scheint, dass dies steigen müsste, wenn wir viel mehr Entwickler hätten, aber nicht unbedingt durch die Anzahl der aktiven Projekte. Ist das genau?

Antwort

1

Wir haben

  • einen Server, die Teamcity beherbergt und fungiert als Build-Agent
  • einen Server für SQL Server-Speicher. Die TeamCity-Datenbank ist nicht die einzige Datenbank dort.
  • zwei weitere Server für die zwei zusätzlichen Build-Agenten.

Wir erstellen eine Reihe von Projekten für mehrere Teams.

Anfangs gab es nur eine Handvoll Entwickler in einem Team. Wir waren in Ordnung mit einem Server, der als TeamCity-Server, TeamCity-Agent und Datenbankserver fungierte.

Sie benötigen nicht mehrere Agenten, es sei denn, Sie möchten mehrere Projekte gleichzeitig erstellen, oder Sie haben eine sehr lange Ausführungszeit. Wir haben festgestellt, dass die Anzahl der Entwickler kein direkter Faktor ist. Die Anzahl der gleichzeitig laufenden Builds ist wichtiger. Das könnte mit der Anzahl der Entwickler zusammenhängen, aber in unserem Fall nicht. Wir haben eine kurze Bauzeit (3 Minuten) und wir beschränken uns auf einen Bau pro Projekt.

+0

Danke. Wie intensiv ist es in der Datenbank? Wir haben einen SQL-Server, von dem wir unsere Web-Services aus ausführen, aber unser Chef ist auch nicht bereit, ihm Versionierungsarbeiten hinzuzufügen. Kann es eine andere Datenbank als SQL Server verwenden? – unclesol

+0

@unclesol Es ist nicht intensiv, aber das wird mit der Anzahl der gleichzeitig laufenden Builds variieren. Zur Zeit werden Sql Server, Oracle, Sybase, My Sql und PostgreSql unterstützt. –

+0

So könnte ich angeblich eine Kopie von MySql ausführen und meinen SQL Server nicht berühren. Vielen Dank. – unclesol

1

Es hängt von der Größe Ihres Teams ab. Meine Firma hat 12 Entwickler.

  • Wir haben einen TeamCity-Webserver, der auch ein Build-Agent ist.
  • Die TeamCity-Datenbank befindet sich auf einem anderen SQL Server, den wir bereits hatten.
  • Subversion ist auf einem anderen Server, den wir bereits hatten.
  • Wir verwendeten zwei Entwicklermaschinen als zweite und dritte Build-Agenten.

Aber für ein kleines Team könnten Sie wahrscheinlich alle auf einem ziemlich leistungsfähigen Server setzen. Sie müssen sehen, was für Sie funktioniert.

+0

Vielen Dank für diese Antwort. Ich habe oben aktualisiert, um einige Informationen hinzuzufügen, die basierend auf Ihrer Antwort nützlich erschienen. – unclesol