2008-12-31 7 views
5

Ich versuche eine Anforderung für eine neue Umgebung zusammenzustellen, die aus TeamCity-Ausführung von Sql Server, einigen Build-Agents (vorerst) und einem SVN-Repository besteht.SVN, TeamCity Virtualisierung/Hardwareanforderung

Es gibt 6 Entwickler und es werden 5 aktive Lösungen für den CI-Prozess vorerst vorhanden sein, die mit der Zeit wachsen werden. Keine der Lösungen benötigt mehr als 10 Minuten für den Aufbau, so dass sie in Bezug auf die Komplexität nicht sehr groß sind & loc.

Die Build-Projekte benötigen selbst eine Instanz von SQL-Server, damit die automatisierten Tests ausgeführt werden können - ich nehme an, dass sie getrennt von der TeamCity-SQL-Instanz gehalten werden sollten.

Kann jemand vorschlagen, eine Hardware-Konfiguration geeignet, um diese auszuführen. Wird der Platten-I/O wichtiger als die tatsächliche CPU-Leistung?

Kann ich all diese auf einer einzigen Multi-CPU, RAID und Virtualisierung ausführen?

Sollten wir mit Windows 2008 und Hyper-V laufen?

Ich habe immer andere mit Serveranforderungen umgehen lassen und bauen, aber jetzt muss ich meine Füße schmutzig machen.

Jede Beratung sehr willkommen

Antwort

9

Ein Datenpunkt:

Unser Teamcity-Umgebung ist auf ein Trio von 8-Core-Server mit jeweils 32 GB RAM (wenn ich mich richtig erinnere), unter Windows 2008 und Hyper-V. Unser SVN-Repository befindet sich (aus historischen Gründen) auf einem anderen Server. Ich denke, dass alles jetzt auf einem SAN ist, für die Zuverlässigkeit (wenn einer der Hosts ausfällt, können wir die VMs leicht auf einen anderen Host verschieben).

Wir haben 10 Build-Agenten, die alle in VMs ausgeführt werden. 4 von ihnen werden für gerade Builds verwendet; 6 von ihnen werden für Builds und Systemtests verwendet (was die Koordination anderer VMs in den Tests beinhaltet). Wir haben uns dafür entschieden, weil einige unserer Systemtests 11 Stunden dauern und wir die Build-Warteschlange nicht aufhalten wollen. Wir haben phasengesteuerte Releases - ein Projekt wird idealerweise erst dann in die Testabteilung freigegeben, wenn es automatisierte Tests von Einheiten und Systemen besteht.

Wir haben etwa ein Dutzend Entwickler, die aktiv an 3 oder 4 Projekten gleichzeitig arbeiten. Wir verwenden TeamCity auch zum Erstellen von Hotfix- und Wartungsversionen.

In Ihrem Szenario würde ich Windows 2008 und HyperV wählen, auf der größten Box, für die Sie das Budget haben. Festplatten-I/O ist wichtiger als die CPU-Leistung, aber mit mehr Kernen können Sie einfacher auf weitere VMs skalieren. Viel RAM, das jeder VM zugewiesen ist, vermeidet das Auslagern und erleichtert das Caching, was weniger Festplatten-I/O bedeutet. An einem bestimmten Punkt könnten Sie zwei oder mehr Boxen für Fail-Over in Betracht ziehen, und weil es manchmal billiger ist, zwei Boxen mit 32 GB RAM zu kaufen, als die 64 GB-Option für eine einzelne Box zu kaufen.

Ein Vorteil von VMs besteht darin, dass Sie Snapshots erstellen und sie regelmäßig wiederherstellen können. Jedes Projekt sollte wahrscheinlich eine eigene Instanz von SQL Server haben.

+0

Roger, Danke für das tolle Detail in Ihrer Antwort. Sehr geschätzt – redsquare

+0

Nach dem Lesen Ihrer Antwort wieder .... 11-Stunden-Test, wow ... Vorsicht, warum so lange zu verbreiten! – redsquare

+1

Einer der Tests BCP mehrere Millionen Zeilen in die Datenbank und führt dann den Code zu testen. Es kann eine Stunde dauern, bis nur dieser eine Test ausgeführt wird. –

3

Sie sollten sich den Abschnitt "Vorgehensweise" in unserer Dokumentation ansehen: http://confluence.jetbrains.net/display/TCD65/How+To ... Dort finden Sie das Thema "Hardwareanforderungen für TeamCity abschätzen". Wahrscheinlich wird es helfen.

+0

Der aktuellere Link von TeamCity 8 docs ist http://confluence.jetbrains.com/display/TCD8/How+To...#HowTo...-EstimateHardwareRequirementsforTeamCity – KIR

Verwandte Themen