Verwendet jemand virtuelle Maschinen für die Webentwicklung und warum? [geschlossen]


10

Ich sehe einige Entwickler, die gerne virtuelle Maschinen für die Webentwicklung verwenden. Gibt es andere, die das tun? Wenn ja, warum machst du das? Gibt es Vor- und Nachteile bei der Entwicklung auf einer VM und nicht in einer nicht virtualisierten Umgebung?

Ich würde denken, dass die Dinge in einer VM langsamer sind.


Neben der Virtualisierung gibt es auch bildbasierte Systeme wie Squeak und Pharo (ein Squeak-Derivat).
Jesse Millikan

@ Jesse Millikan Ich bin mir nicht sicher, was du meinst. Ist Squeak and Pharo nicht eine Programmiersprache? Ich versuche zu verstehen, wie sie sich auf virtuelle Maschinen beziehen.
7wp

Antworten:


20

Ich benutze VMs für IE-Tests. Ich habe zwar einen dedizierten Windows-Computer, neige jedoch aus mehreren Gründen zur Verwendung von VMs:

  • Das Wechseln von Computern ist mühsam, auch wenn es direkt neben Ihnen liegt
  • Es ist extrem einfach, eine VM zurückzusetzen, um eine saubere Testumgebung zu erhalten
  • Ich würde lieber eine Umgebung verwenden, die Benutzer tatsächlich verwenden werden, als Kludges wie IETester, und Sie können im Allgemeinen nicht mehrere Versionen von IE gleichzeitig ausführen.
  • Es ist billiger, mehrere VM-Instanzen auszuführen, als mehrere Testcomputer zu kaufen
  • VMs, zumindest für Mac OS X, sind in den letzten Jahren so gut geworden, dass das "langsame" Stigma von VMs nicht gerechtfertigt ist.

2
VMs sind schnell in Ordnung, aber nur, wenn Sie über den freien Speicher verfügen, um einen ordnungsgemäß zu unterstützen.
Matthew Scharley

@Matthew: Ja, aber die meisten Computer sind heutzutage mit 4 GB Standard ausgestattet. Für einen Webentwickler reicht dies aus, um mindestens eine (wenn nicht zwei) VMs gleichzeitig auszuführen.

7

Der andere Grund, warum Benutzer eine VM für die Webentwicklung verwenden, ist die Virtualisierung einer Serverumgebung, die sie sehr einfach deaktivieren können.

Zu Hause verwende ich immer eine VM zum Einrichten persönlicher Projekte, damit ich alles vollständig ausschalten kann, wenn ich beispielsweise ein Spiel spielen möchte. In einer Arbeitsumgebung möchten Sie es möglicherweise deaktivieren, damit Sie über alle Ressourcen verfügen, um ein Video in FLV zu transkodieren.

Es gibt Ihnen nur die Flexibilität, mit Ihren Ressourcen das zu tun, was Sie wollen.


3

Ich bevorzuge es, VMs für so ziemlich alle Entwicklungen zu verwenden ... besonders wenn ich mit einem Entwicklerteam zusammenarbeite. Mit VMs kann ich eine "Umgebung in einer Box" erstellen, die mit wenig Kopfschmerzen schnell eingerichtet werden kann. Da ich einen MBP als primären Computer verwende, bevorzuge ich VMWare ... es ist viel weniger schmerzhaft, insbesondere in einer "meistens Windows" -Umgebung.

Was die Geschwindigkeit betrifft, variiert sie ehrlich gesagt von Setup zu Setup. Die einzigen wirklichen Probleme, die ich bei der VM-Geschwindigkeit gesehen habe, sind a.) Nicht genügend physische Ressourcen (Speicher usw.) oder b.) Nicht genügend Ressourcen für Ihre VM. Ansonsten arbeite ich lieber in einer Windows-VM auf meinem Mac als in einer nativen Box.


2

Das Testen von Umgebungen ist eine große, wie andere bereits erwähnt haben.

  • Browsertests (dh Safari usw.)
  • saubere Testumgebung
  • einfach mehrere Konfigurationen zu haben
  • Zugänglichkeitstests (Bildschirmleser und dergleichen)

Ich habe eine VM ausschließlich zum Profilieren und Debuggen meines Codes, für die kcachegrind bereits eingerichtet ist, sowie Selen, xdebug und einige andere Tools, die zum einfachen Profilieren und Debuggen meines Codes konfiguriert sind. Ja, einige mögen sagen, dass dies bereits eine Entwicklungsumgebung ist, aber ich persönlich mag es, wenn eine VM auf meinem Desktop für diese Art von Aufgabe vorgesehen ist.

Auch in Bezug auf die Langsamkeit in einer VM:

In einer VM sind die Dinge langsamer, da der Overhead die Umgebung "virtualisieren" muss. Die VM rückt jedoch immer näher an den Hypervisor heran, wodurch der für die VM erforderliche Overhead verringert wird.


2

Ich benutze ständig virtuelle Maschinen. Zu Testzwecken liegt die Argumentation auf der Hand, aber ich verwende sie auch für meine eigentliche Entwicklungsumgebung, hauptsächlich, weil 1) die Migration auf neue Hardware ein Kinderspiel ist und 2) ich einen einfachen "Schnappschuss" (oder eine Reihe von) habe Snapshots) greifen bei Bedarf auf diese Konfigurationen meiner Entwicklungsumgebung zurück. Meine Anforderungen mögen einzigartig sein - ich bin in erster Linie ein Delphi-Entwickler, der mehrere Delphi-Versionen und viele Komponenten von Drittanbietern verwendet -, aber die Zeit und die Kopfschmerzen, die meine Entwicklungsumgebung in einer virtuellen Maschine hat, konnten wahrscheinlich nicht eingespart werden überbewertet sein.

Das heißt, sparen Sie nicht an der Box, auf der Sie sie ausführen, besonders wenn es um Speicher geht. ;; )


1

Dies ist eine späte Antwort. Ich stimme allen Punkten in der akzeptierten Antwort zu, wollte aber hinzufügen, dass ich VMs ausschließlich für die Webentwicklung und nicht nur zum Testen verwende. Ich bin auf einem iMac und verwende VirtualBox, um Windows, Fedora und Ubuntu auszuführen - manchmal auf einmal. Ich habe keine Probleme mit der Leistung.

Ich arbeite lieber auf diese Weise, weil ich für Kunden arbeite, die sowohl Fedora- als auch Ubuntu-Server ausführen, und es mir ermöglicht, die Entwicklungsumgebung eng mit der Produktionsumgebung abzustimmen. Es macht mich auch zu einem besseren Systemadministrator in den Bereichen, die aus entwicklungspolitischer Sicht am wichtigsten sind.


1

Ich habe festgestellt, dass die Verwendung von VMs eine gute Möglichkeit ist, ein kundenspezifisches Entwicklungssetup beizubehalten.

In einem früheren Beratungsunternehmen wusste Devs, dass das Starten einer bestimmten VM bedeutete, dass Sie über eine Arbeitsumgebung zum Entwickeln / Testen und Bereitstellen der von uns für diesen Client unterstützten Software verfügten. Besonders nützlich bei der Unterstützung einiger echter Oddball-Systeme.

Für neue Apps hätten Sie das neueste und beste Setup auf Ihrem Hauptentwicklungscomputer. Aber was ist, wenn Sie eine alte VB6-App, die Ihr Unternehmen noch unterstützt, Bugfixes benötigen? Möchten Sie Visual Studio 6 auf Ihrem schönen, sauberen VS2010-Computer installieren? Das glaube ich nicht!

Das bedeutete auch, dass es für jeden Entwickler ziemlich einfach war, jeden Client zu unterstützen.


0

Ich habe sicherlich virtuelle Maschinen zum Testen von Websites verwendet, aber nicht zum Schreiben von Code.

Der Vorteil von virtuellen Maschinen besteht darin, dass Sie verschiedene Betriebssysteme und Browser einrichten können, um die unvermeidlichen CSS-Fehler zu testen, die Sie in IE6 / 7/8 entdecken werden.


0

Ich sehe keinen Grund, Websites in einer virtuellen Maschine zu entwickeln. Für einen Windows-Benutzer ist dies nicht erforderlich.

Sie können alles in einer Windows-Installation ausführen (Portable IEs, Chrome, Firefox, Safari, ...).
Alternativ können Sie Expression SuperPreview verwenden, um in eine neue Welt der browserübergreifenden Tests einzutreten.


Dinge wie Portable IE, Expression SuperPreview und IETester sind in jeder Hinsicht virtualisierte Umgebungen. Sie führen keine reale Kopie älterer IE-Versionen aus, und bei Dingen wie SuperPreview und IETester haben Sie nicht einmal Zugriff auf die Chrome- oder Plugin-Architektur des Browsers. Über den Internet Explorer hinaus haben Sie keinen Zugriff auf die Versionen anderer Betriebssysteme derselben Browser. Beispielsweise verfügt Safari unter Mac OS X über Funktionen, die unter Safari für Windows nicht vorhanden sind, und Chrome für Mac bleibt im Allgemeinen hinter Chrome für Windows zurück.

Nein nein Nein! Portable IE, Expression SuperPreview und IETester werden nativ auf Ihrem System ausgeführt. Es ist keine Virtualisierung erforderlich. Sie führen eine reale Kopie aus, die für die Ausführung in der aktuellen Umgebung angepasst wurde und dasselbe Verhalten aufweist. Bei der Webentwicklung ist kein Zugriff auf die Chrome- oder Plugin-Architektur des Browsers erforderlich. Für Safari sind zusätzliche Funktionen für die browserübergreifende Webentwicklung wiederum irrelevant. Für Chrome können Versionen gleichzeitige verwendet werden ... Wenn man wirklich jede Browserversion auf jeder OS - Version testen muss , ist es browsershots.org für diesen Zweck.
Tamara Wijsman

Testen Sie die Integration mit mehreren Office-Versionen. VMs sind immer noch erstaunlich praktisch.
Davewasthere

@davewasthere: Und wie hängt Office mit der Webentwicklung zusammen? Ich bin mir sicher, dass VMs für verschiedene Zwecke verwendet werden können, aber für die Webentwicklung sind Sie ohne sie in Ordnung ... Selbst mehrere Versionen von Office und Visual Studio können ohne VM zusammen installiert werden. In der Tat gibt es jedoch Grenzen und Kompromisse brauche wirklich eine VM.
Tamara Wijsman

@ TomWij - Ich habe einen Client mit einer Intranet-Anwendung in ASP.Net, die in Word integriert ist. Da sie mehrere Versionen von Office verwenden, ist es schön, mit jeder installierten Version ein Image haben zu können. Ich weiß, dass Office und IE nebeneinander möglich sind. Aber in Wirklichkeit finde ich es ein Schmerz. VMs scheinen einfach viel sauberer / einfacher zu sein ...
Davewasthere

0

Ich verwende eine virtuelle Maschine, um Unterdomänen von virtualbox.me (ich besitze die Domäne) Unterverzeichnissen eines Ordners auf meinem Hostcomputer zuzuordnen, der für den Gast freigegeben ist.

Mit diesem Setup erstelle ich einfach ein neues Verzeichnis und habe sofort ein neues Projekt unter seiner eigenen Subdomain, dh / home / pete / virtualwww / my-super-project ordnet http://my-super-project.virtualbox.me/ zu.

Ich habe hier eine Anleitung zum Replizieren geschrieben (sie verwendet mod_vhost_alias und VirtualDocumentRoot):

http://otaqui.com/blog/1652/setting-up-a-virtualbox-virtual-machine-for-web-development-with-multiple-sites-using-mod_vhost_alias-and-virtualdocumentroot/

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.