Ist es besser, einen Build Server in einer virtuellen Maschine zu haben? Wiegen die Vorteile eines Build-Servers in einer VM die Kosten auf?Umfrage: Build Server in einer virtuellen Maschine?
Antwort
Wie immer, es hängt davon ab ...
Unter der Annahme, dass Sie andere VM läuft auf demselben Server haben, und diejenigen, andere VMs die gelegentlichen Verlangsamungen von einem laufenden Build verursacht umgehen kann, dann würde ich sagen, ja. Wenn Sie jedoch eine einzelne Build-Server-VM auf einem einzelnen Host hosten oder wenn die anderen VMs durch gelegentliche Build-Runs negativ beeinflusst werden, ist dies nicht der Fall.
Ich kann Ihnen sagen, dass, wo ich arbeite, wir zum Hosting der meisten unserer Build-Server auf VMWare gewechselt haben. Da wir mehrere Builds pro Woche mit mehr als 5 Produktlinien haben, ist es für uns sinnvoll, alle auf einer schnellen Maschine zu hosten. Wir hosten auch einen großen Teil unserer Testmaschinen auf demselben Server, was es uns ermöglicht, die Maschine gut zu nutzen, und da keine Produktionsserver darauf laufen, ist die Verlangsamung während der Erstellung kein Problem.
Ich sehe keinen Vorteil, es sei denn, Ihre VM ist auf einer Box, die ein virtueller Server ist.
Hier einige der Vorteile Ihren Build-Server in einer virtuellen Umgebung ausgeführt wird:
Teile ein schnelle Box über mehr Build-Server zu schreien - sagen Sie Hälfte haben ein Dutzend Servern aufzubauen. Stellen Sie einen sehr schnellen Rechner (4-CPU, 64-128 GB RAM, sehr schnelle Festplatten usw.) zusammen und führen Sie einen Hypervisor darauf aus. Jetzt können alle Build-Server auf diese schnellere Hardware zugreifen, wenn sie Builds durchführen, wenn andere Build-Server dies nicht tun. Erstellen Sie einen Build-Zeitplan, und Sie sollten in der Lage sein, schnellere Builds zu erstellen. Wenn Sie physische Boxen verwenden müssen, können Sie sich diese Qualitätsstufe der Hardware wahrscheinlich nicht auf jedem einzelnen Build-Server leisten - aber das ist einfacher zu rechtfertigen, wenn es geteilt wird.
Keine Ausfallzeit, wenn die Box ausfällt - Statt dass Ihre Produktions-Builds bei einem Hardwareproblem zum Stillstand kommen, können Sie den Build-Server einfach auf einem anderen Virtualisierungs-Host starten. (Dies funktioniert nur gut, wenn Sie freigegebenen Speicher verwenden.)
Einfache Hardware-Upgrades - wenn es Zeit für einen neuen Build-Server ist, müssen Sie keine lästigen OS Neuinstallationen tun. Bewegen Sie einfach das Gast-Betriebssystem auf den neuen physischen Host und schon geht es los zu den Rennen.
Ein Build-Server ist etwas, das sehr konsistent aufgebaut werden muss. Sie benötigen ein gut dokumentiertes und vollständig reproduzierbares Rezept für die Erstellung Ihres Build-Servers.
Build-Server sind jedoch nicht massiv performancekritisch ... oder zumindest sind sie für die Leistung Ihres Produktionssystems nicht entscheidend, so dass Sie einen in einer VM haben könnten.
Die Verwendung von VMs ist eigentlich eine gute Idee, wenn Sie unabhängig von der Hardware- und Softwarekompatibilität sein müssen. Ihr bevorzugter Hardwarehersteller kann die Unterstützung der von Ihnen benötigten Betriebssystemversion für den Buildserver auf den neuen Computern möglicherweise nicht mehr ausführen. Dann läuft die Garantie möglicherweise auf Ihrem alten Buildserver ab. Dadurch können Sie möglicherweise keine Builds in diesem Betriebssystem erstellen.
Sie würden dann entweder mit Trawling ebay für einen Ersatz aus zweiter Hand konfrontiert sein, Ihren Lieferantenbestand an veralteter Ausrüstung aufkaufen, oder einen dubiosen, nicht unterstützten Software-Hack machen.(NB: Das ist uns fast passiert, und wir haben ein bisschen von diesen)
Die Vor- und Nachteile der Verwendung einer VM für Ihren Build-Server sind die gleichen wie die Verwendung einer VM für andere Dienste.
Diese Frage ist ebenso anwendbar, um eine VM für einen Mail-Server/wiki-Server zu verwenden usw.
(ich dies gerade gebucht als Kommentar hätte, aber nicht über die rep noch)
- 1. Läuft Golang auf einer virtuellen Maschine?
- 2. Debugging-Code in einer virtuellen Maschine mit dem Host ausgeführt
- 3. Bootloader/Kernel booten nur in einer virtuellen Maschine
- 4. Off-Screen-Rendering auf einer virtuellen Linux-Maschine
- 5. Remote-Verbindung zu Ubuntu 14.04 virtuellen Maschine
- 6. Bereitstellung der virtuellen Maschine von der virtuellen Box nach ESXI
- 7. Synchronisierung zwischen lokaler und virtuellen Maschine
- 8. Visual Studio 2012 Remote Kernel-Debugging einer virtuellen Maschine
- 9. Wie kann ich einer virtuellen Azure-Maschine Speicher hinzufügen?
- 10. Warum sollte Docker oben auf einer virtuellen Maschine verwendet werden?
- 11. Benötige ich Antivirus, etc. auf einer virtuellen Maschine?
- 12. Python ändern Bildschirmauflösung der virtuellen Maschine
- 13. KVM-API zum Starten der virtuellen Maschine
- 14. Wo sollte ich Daten auf einem VMWare Server (oder einer virtuellen Maschine) installieren?
- 15. So stellen Sie eine Verbindung zu einem MySQL Server her, der auf einer virtuellen Maschine läuft
- 16. Warum reagiert die SQL Server-Datenbank auf Azure langsamer als auf der lokalen Maschine von der virtuellen Maschine?
- 17. Ändern Sie Datum und Uhrzeit im BIOS der virtuellen Maschine
- 18. Ausführen eines Befehls in der virtuellen Maschine vom Host-System
- 19. Gibt es Vorteile bei der Entwicklung von Java in einer virtuellen Maschine?
- 20. Ausführen eines Webservers auf einer virtuellen Maschine (VirtualBox) - Pros/Cons in Bezug auf Sicherheit
- 21. Multidimensionale Array/Erstellen einer Umfrage
- 22. Sicherung der virtuellen Maschine auf nicht vertrauenswürdigen Host
- 23. Online-Build-Server?
- 24. Zuweisen einer IP-Adresse zu einer virtuellen Maschine mithilfe von virtualbox
- 25. Swift-Projekt auf einer Maschine, aber nicht auf einer neuen Maschine
- 26. Software-Deployment in einer virtuellen Umgebung
- 27. wo mächtiger ist, im 1 Maschine für 1 Server oder 1 Maschine für multy VM
- 28. Zugriff auf node.js/grunt Server über localhost: Port auf der virtuellen Maschine
- 29. virsh Konsole hängt, wenn ich an der virtuellen Maschine verbinden
- 30. Bessere Möglichkeit zum Implementieren von E/A in einer virtuellen Maschine?
Wie im Gegensatz zu ...? –
@Garry - Im Gegensatz zu nicht auf einer nicht virtuellen Maschine. –