2009-11-03 13 views
5

Es kostet Zeit und Corporate balking auf Kosten der Ersatz eines Mitarbeiters Maschine, die dafür ist, braucht es und verdient es.Ist es machbar, Entwicklermaschinen zu virtualisieren?

Unsere Gruppe ist eine kleine ISV/SAAS, die als eine Abteilung einer größeren Mediengruppe existiert. Wir sind keine Kostenstelle, wir verdienen auch in diesem Jahr Geld. Wir sind im Besitz einer mittelgroßen Mediengruppe, deren Geschäftsmodell sehr unterschiedlich ist, und scheint nur durch Kostensenkungen getrieben zu sein.

Unser Software-Stack ist Visual Studio 2008, SQL 2008, unter Windows Server 2008 (so dass mehrere Root-Websites gehostet und debuggt werden können auf jedem Dev-Computer). Unsere Zielhardware ist 3GHz-Quad-Core-Workstation, 4 GB RAM und gespiegelte RAID 1-Festplatten, so dass wir vor dem Produktivitätsverlust durch den Verlust einer Entwicklerfestplatte geschützt sind.

Corporate möchte uns ein paar leistungsstarke, aber ausgemusterte, stillgelegte Server geben, und dann hätte jeder Entwickler eine virtuelle Workstation auf diesem Server. Die Computer, die auf unseren Desktops sitzen, wären für $ 400-500 dumm.

Ich versuche, neutral zu sein, aber ich bezweifle, dass es schwer ist, meine Voreingenommenheit zu erkennen. Ich würde gerne echte Entwicklerreaktionen sehen, und ich denke, das ist der beste Ort, um das zu bekommen.

Bitte Argumente für oder wider, Beweise, wenn Sie gesehen haben, dies versucht und wie gut (oder nicht) es gegangen ist.

+1

Ich würde das als Frage (meist der Titel) umformulieren –

+0

Verwenden von Visual Studio über RDP ist einfach nicht das Gleiche. –

Antwort

10

Das klingt wie eine gut gemeinte Idee, aber:

In meiner Erfahrung, die man mehr Kerne, viele Speicher benötigt, und schnelle Festplatten in der heutigen modernen IDE, produktiv zu sein. Ich sehe das nicht in einer virtuellen Umgebung mit irgendeiner Wirtschaft. Einzelne Boxen sind immer noch besser.

Es ist auch ein Problem der Kontrolle. In einer virtuellen Umgebung kann ich mir alle möglichen Einschränkungen vorstellen. Können Sie beispielsweise weiterhin eigene Tools installieren?

Letztendlich ist es fehlgeleitet. Wenn diese Idee die Bauzeit um einen beträchtlichen Betrag verlängert, werden Einsparungen bei der Hardware schnell durch Produktivitätsverluste gelöscht. Umgekehrt wird sich das Geld, das für anständige individuelle Maschinen für Entwickler ausgegeben wird, schnell in immer kürzeren Bauzeiten amortisieren.

Gute Qualität einzelne Maschinen sind eine Investition, keine Kosten.

5

Abgesehen von all der Givens (perfomance, Speicherplatz, etc ...):

Ich würde so lange mit diesem OK sein, wie ich Unterstützung für mehrere Monitore noch hatte.

Ohne das ist es ein No-Go.

+0

Absolut! Moderne IDEs sind absolute Bildschirmfresser. Und selbst wenn Sie aus dem Terminal/VI/Emacs/Überzeugung sind, werden Sie immer noch die gesamte Bildschirm-Immobilien, die Sie bekommen können. –

+1

Wir entwickeln derzeit auf Windows Server 2008 in VMware gehostet. Es funktioniert ziemlich gut und VS2010 reagiert sehr gut. Rufen Sie für die Unterstützung mehrerer Monitore 'mstsc.exe/multimon' auf. –

7

Die Entwicklung ist festplattengebunden, d. H. Sie verbringen Ihre Zeit damit, auf Builds zu warten, was die meiste Zeit ein festplattengebundener Prozess ist. Wenn Sie alle eine Maschine teilen, wird die Bauzeit viel schlechter.

0

Ich nehme an, Sie haben bereits Maschinen für SVN/TRAC, Ihren Continuous Integration Server, Produktdemos, Tests, usw. und dass die einzige mögliche Verwendung, die Ihr Team von diesen Servern machen könnte, für persönliche VMs ist.

0

Ich mache viele Dinge, die meinen Prozessor an 100% hängen. Compiles erreichen das sicher. Stellen Sie sich vor, Sie müssten diesen Prozessor mit 10 anderen Entwicklern teilen. Der Produktivitätsverlust wird ziemlich offensichtlich werden. Wenn Sie einen Multi-Core-PC haben, wird dies nicht so schmerzhaft sein.Holen Sie sich einen Intel i7 und Sie werden wahrscheinlich nicht einmal bemerken, wenn 8 Leute eingeloggt sind. Die meisten Programme (einschließlich meines Compilers) können sowieso nicht mehr als 1 Prozessor benutzen.

Das heißt, es ist eine praktikable Lösung zur Kostensenkung. Ich arbeitete früher in einer Firma, die seitdem auf diese dummen Terminals umgestiegen ist. Es funktioniert gut. Meine Universität verfügte über HP UNIX-Maschinen, die nur "dumme" Terminals waren. Sie loggten sich auf einem Server ein, der die Prozessoreigentümer unter vielen angemeldeten Personen aufteilte. Die Leute würden sich auf einem Server einloggen und die Anzahl der angemeldeten Personen überprüfen. Wenn es zu viele wären, würden sie nach dem nächsten suchen eine, weil die Bauzeiten merklich langsamer sind. Ich würde mich nie in die einfach zu merkenden Servernamen einloggen. =)

Es funktioniert definitiv, aber reduziert auch die Produktivität aufgrund der längeren Bauzeiten, besonders wenn mehrere Personen gleichzeitig bauen. Da es schwierig ist, die Produktivität zu quantifizieren, kann es schwierig sein, Ihre Meinung zu sagen.

0

Die Grafikbeschleunigung kann auch ein Problem darstellen, wenn Sie mit Animationen, Video- oder Bildbearbeitungen arbeiten müssen. Sie können die Videowiedergabe nicht wirklich über eine RDP-Sitzung testen, da die Bildrate und/oder Farbtiefe nicht hoch genug ist.

1

Unser Team entwickelt seit geraumer Zeit ohne Probleme auf Remote-Server (kein GUI-Zeug, einfach alt vim). Zugegeben, es erfordert einen ziemlich leistungsfähigen Server und manchmal fängt es an, etwas langsam zu sein, wenn jeder gleichzeitig mit der Kompilierung beginnt.

Aber als Bonus sind Sie sehr mobil in Bezug auf wo Sie entwickeln können (wir alle haben Laptops) sei es im Büro, zu Hause, sonniger Strand (letzter war wahrscheinlich übertrieben).

Bute ja, das könnte nicht alles gut für Graphics Heavy-Apps natürlich funktionieren.

+3

... und dieser Server müsste etwas mehr laufen als vim! Visual Studio ist nicht gerade leicht! –

+0

Eigentlich, im Vergleich zu Eclipse ... –

+0

Ich hatte einen ziemlichen Erfolg X-Server lokal und Eclipse auf Remote-Computer über lokales Netzwerk laufen, also bitte ... :) –

3

Grund Scheitern zu verstehen, was eine Entwickler-Box tatsächlich viel von der Zeit tut:

Wenn seine Kauen durch Prozessor und Festplatte Aufbau - insbesondere Platte. Beim Testen sprechen Sie davon, dass eine oder mehrere Instanzen von Visual Studio ausgeführt werden (sobald Sie an zwei Dingen vorbeikommen), Datenbankserver, Website/Dienste und all die anderen Dinge (Browser mit Los von Tabs offen, Notebook-Software, und Himmel weiß nur, was sonst) alle über mehrere Monitore verteilt (mindestens zwei). Viele Kerne, viel Speicher bitte!

Ich kann durchaus akzeptieren, dass es ein Argument für die Virtualisierung gibt - eine gute Entwicklungsumgebung sollte in der Lage sein, mehrere gleichzeitige VMs zu hosten, um einige der oben genannten zu isolieren und "saubere" Umgebungen zum Testen bereitzustellen. Beachten Sie, dass das ist die Box für einen Entwickler Hosting mehrere VMs nur zugunsten des einen Entwicklers ...

+2

Wir verwenden bereits Microsoft Virtual PC, um mehrere virtuelle Umgebungen zu hosten zum Testen, einschließlich SUSE Linux für die Suche nach Postfix MTA und SOLR, Windows 2000 mit einer sauberen Kopie von IE6 und mehrere Installationen von XP mit verschiedenen IE-Versionen, die wir unterstützen. –

+1

(das heißt, auf unseren lokalen Dev-Systemen) –

+0

Das ist ein Argument zu Ihren Gunsten ... – Murph

0

Unabhängig von der Leistung, bei meiner Firma ziehen wir auf Laptops als Entwickler Maschinen. Der Hauptvorteil besteht darin, dass Entwickler ihre Computer zu Besprechungen, Konferenzen usw. bringen können. Außerdem ist es sehr wertvoll, neben einem Kollegen zu sitzen, wenn Sie ihm bei einem Problem helfen und eine eigene Entwicklungsumgebung zur Verfügung haben.

+3

Hmm, ich bin nicht überzeugt - die Art von Maschine, an der ich arbeiten möchte (an meinem Schreibtisch) und die Art, die ich möchte carry round sind ziemlich unterschiedlich - anständige Pferdestärken in einem angemessen kleinen Paket sind teuer und wenn du es anders machst, musst du etwas anderes kompromittieren (und wenn es tragbar ist, besiegst du dein grundlegendes Argument). – Murph

+0

Sie haben Recht, Sie müssen Kompromisse eingehen. Aber Sie können immer noch einen guten Entwickler-Laptop zu einem vernünftigen Preis bekommen. Mein Laptop ist leistungsfähig genug, um Entwicklungsarbeit zu leisten und tragbar genug, um ihn in meinen Rucksack zu stecken. Es muss nicht extrem portabel sein, weil es die meiste Zeit auf meinem Schreibtisch liegt. Und Sie haben recht, dass Desktop-Computer für den gleichen Preis leistungsfähiger sind. Aber für dieses zusätzliche Geld bekommt man Portabilität, und für mich ist das wertvoll. Natürlich, wenn Geld überhaupt keine Einwände hat, sollten Sie einen leistungsfähigen Desktop-Computer UND einen kleinen Laptop bekommen, aber ich habe diesen Luxus nicht. –

1

Es hört sich an, als ob Ihre Gruppe nicht die Lösungen anbietet, die Sie in einem gut dokumentierten Format betrachtet haben, sonst würde das Unternehmen Ihnen keine Entscheidungen in den Hals stecken. Wenn Sie einen dokumentierten Prozess für die Entwicklung haben, könnte das Unternehmen die Änderung des Prozesses mit Ihnen besprechen. Sobald Sie jedoch sagen: "Diese Änderung würde unseren Prozess unterbrechen und wir müssten unseren Entwicklungs-Workflow umstellen", werden sie den Schmerz sehen der $$ in der Überarbeitung des Prozesses und höchstwahrscheinlich zurück.Wenn Ihr Prozess jedoch dokumentiert ist, sollten Sie intern rücksichtslos versuchen, ihn effizienter und kosteneffektiver zu machen, und die Vorschläge des Unternehmens berücksichtigen.

Verwandte Themen