7

Ich habe vor, meiner (sehr kleinen) Firma vorzuschlagen, dass wir einen Computer kaufen, auf dem eine kontinuierliche Integration läuft. Wenn sie ja sagen, wird die Aufgabe des tatsächlichen Kaufs der Maschine wahrscheinlich auf mich fallen, so meine Frage ist:Kauf einer Maschine für kontinuierliche Integration - Schlüsselfaktoren?

Was suche ich in einem Computer, der für die kontinuierliche Integration für eine sehr kleine (3 Personen) verwendet werden wird PHP-Team?

Welche "Sachen" (Speicher, Prozessor usw.) sind wichtig, und was nicht?

+0

Sind Sie sicher, dass das Tag "Anforderungen" für diese Frage geeignet ist? – Yarik

+0

Nein, ich denke hier, das bedeutet wirklich etwas anderes. – Oddmund

Antwort

6

Sie werden nicht so mächtig von einer Maschine brauchen. Wenn Sie Tests oder andere Metriken ausführen, ist die Verarbeitungsfähigkeit wahrscheinlich Ihre Hauptsorge, aber Sie könnten das auf einem alten Pentium 1 ausführen und es würde wahrscheinlich funktionieren.

Ihre Einschränkungen werden Ihre Betriebsumgebung sein. Wenn Sie LAMP betreiben, möchten Sie eine Maschine benutzen, die gut mit LAMP-Setup umgehen kann, was ziemlich jede * nix-Maschine ist, die ziemlich modern ist.

Ich habe ein Continuous Integration Setup für .NET auf einer alten Pentium4-Workstation eingerichtet, die wir herumliegen hatten, und es lief gut.

Eine Sache zu beachten ist Speicherplatz, wenn Sie Ihren Code im Build archivieren.

+0

Ausreichend Speicherplatz ist kritisch. Kaufen Sie viele Festplatten und überwachen Sie sie genau. –

+1

http://www.ibm.com/developerworks/java/library/j-ap11297/ Ein häufiges Anti-Pattern für CI ist zu langsam Server. Investitionen in Hardware für schnellere Builds sind eine gute Investition. – MatteS

0

Wenn die App nicht riesig ist, würde ich nur eine Dual-Core-Box mit etwa 4 Gigs RAM und wahrscheinlich 2 ziemlich schnelle SATA-Festplatten in RAID 0. 500 Gigs vielleicht?

Wenn Sie wirklich sicher damit sein wollen, erhalten Sie zwei 70ig Gig-Laufwerke für RAID 0 für die Betriebssystempartition und dann 3 140 + Gig-Laufwerke in RAID 5 für die Daten.

2

Aus meiner Erfahrung muss dies keine Kraftmaschine sein. Jede Maschine, die Sie für die Entwicklung verwenden würden, wäre mehr als zufriedenstellend. Je schneller die Maschine, desto schneller ist die Antwort, wenn Sie Komponententests für Code-Commits ausführen. Unser CI-Server läuft mit XP SP2, 3G-Prozessor, 3G RAM und ist jetzt für unsere Bedürfnisse überlastet. Das heißt, es ist nett, eine E-Mail nicht mehr als 6 Minuten nach dem Commit zu erhalten, damit Sie wissen, ob der Build sauber ist und alle Tests bestanden haben. Wenn du nächtliche Builds machst, können die Spezifikationen wahrscheinlich noch weiter sinken, da du wahrscheinlich mehr Zeit hast, diese zu erledigen. Festplattenspeicherplatz (300G ist in diesen Tagen einigermaßen erreichbar) eignet sich gut zum Speichern von Berichten und Builds zur Regression, aber wenn Sie einen NAS haben, können Sie Artefakte wahrscheinlich nach der Erstellung abstoßen.

3

Speicher wurde das Problem für uns, wenn wir , Continuum und Clearcase verwenden und stündlich aufbauen. Die Snapshot-Ansichten wurden nach jedem Build beibehalten.

Wir hatten eine leistungsstarke Box (Sun Fire V490) und verwendeten sie für unsere Entwicklungsumgebung und das Archiva Repository. So hatten wir nie wirklich Probleme mit Leistung und Speicher. Tatsächlich hatten wir nur ein Problem mit PermGen-Speicher und bauten das Maven-Site-Ziel auf, und das bedeutete nur die Verwendung von -XX: MaxPermSize = 128m.

0

Die Maschinenleistung spielt kaum eine Rolle, aber achten Sie auf die Verfügbarkeit, denn wenn Sie einmal damit anfangen und eines Tages der magische Rauch herauskommt, müssen Sie ihn bald ersetzen, um weiter zu arbeiten. Definieren Sie eine sinnvolle Backup-Richtlinie und stellen Sie sicher, dass Sie wissen, wie Sie bei Bedarf ein neues identisches System einrichten. Sie können es beispielsweise von einer kleinen Partition ausführen lassen, die Sie auf einem anderen Computer abbilden können, und dann kann der Hauptteil der Daten physisch verschoben werden, wenn er sich auf RAID1 befindet und mindestens ein Laufwerk funktioniert im Netzwerk auch).

2

So ziemlich jede neue Maschine, die Sie heute kaufen können, kann die Aufgabe der kontinuierlichen Integration auf einem nicht zu großen Quellbaum bewältigen. Einige Dinge zu suchen:

  • 2-4 GB RAM, mehr, wenn Sie viele Tests parallel ausführen möchten oder Sie möchten virtuelle Maschinen ausführen, um Clients zu simulieren.
  • Ein Multi-Core-Prozessor (oder mehrere Prozessoren), um die Gefahr von Thread-Fehlern zu erhöhen.
  • "Server" -Klasse Maschinen neigen dazu, 24/7 Betrieb besser als "Desktop" -Klasse Maschinen zu behandeln, aber es gibt keine klare Linie zwischen den beiden.
  • RAID1 oder RAID1 + 0 redundante Festplatten sind ein Muss. Selbst wenn Sie Backups haben (und Sie sollten sie trotzdem haben), ist es ein Problem, einen Server neu aufzubauen und eine zusätzliche $ 100 Festplatte ist mehr als das Geld als Versicherung wert.
  • 0

    Ich denke, eine Sache, die viele Leute hier sind, ist die Maschine ist nicht so wichtig wie die CI-Software. Die einzige Zeit, die die Maschine wichtig ist, ist, wenn Sie unterschiedliche Architekturen benötigen. Andernfalls erhalten Sie einen Computer, der Ihrer Zielumgebung entspricht. Wenn Sie eine Server-App erstellen, ist es ratsam, einen 64-Bit-Prozessor zu installieren, da Ihre App wahrscheinlich auf einem 64-Bit-Server ausgeführt wird.

    Ich würde mehr interessieren, welches Werkzeug ich für CI verwende. Du brauchst etwas, das schnell läuft, und wie die Leute hier schon gesagt haben, sollte es sich nicht an die alten Builds halten, außer du brauchst sie verfügbar zu haben. Wenn ja, würde ich nach etwas suchen, das das Hochladen von Builds und Ergebnissen auf einen separaten Server ermöglicht.

    1

    RAM: genug, um Ihr CI-Tool (phpUnderControl?) Und welche unterstützende Software für Ihre Build und Tests laufen zu lassen.

    Speicher: Legen Sie fest, wie viele alte Builds Sie auf dem Computer behalten möchten. Meiner Erfahrung nach ist es nicht sinnvoll, sehr viele zu behalten, besonders. Wenn Sie ein kleines Team haben, ohne viel formalen Prozess für das Zurückrollen zu älteren Builds.

    CPU: kein Problem. Jede Maschine, die Sie kaufen können, wird funktionieren.

    Also zwischen den beiden neigen ich dazu, RAM über Speicherplatz zu bevorzugen.