Qualcuno usa macchine virtuali per lo sviluppo web e perché? [chiuso]


10

Vedo alcuni sviluppatori a cui piace usare le macchine virtuali per lo sviluppo web. Ce ne sono altri che lo fanno? Se ci sono, perché lo fai? Ci sono vantaggi / svantaggi nello sviluppo su una VM piuttosto che in un ambiente non virtualizzato?

Penso che le cose siano più lente in una macchina virtuale.


Oltre alla virtualizzazione, ci sono anche sistemi basati su immagini come Squeak e Pharo (un derivato di squeak).
Jesse Millikan,

@Jesse Millikan Non sono sicuro di cosa intendi. Squeak e Pharo non è un linguaggio di programmazione? Sto cercando di capire come si collegano alle macchine virtuali.
7

Risposte:


20

Uso le macchine virtuali per i test IE. Ho una macchina Windows dedicata, ma mi spiego per l'utilizzo di macchine virtuali per alcuni motivi:

  • Cambiare computer è una seccatura, anche se è proprio accanto a te
  • È estremamente facile eseguire il rollback di una VM per avere un ambiente di test pulito
  • Preferirei usare un ambiente che gli utenti useranno effettivamente piuttosto che kludges come IETester e in genere non è possibile eseguire più versioni di IE contemporaneamente.
  • È più economico eseguire più istanze di macchine virtuali piuttosto che acquistare più computer di prova
  • Le VM, almeno quelle per Mac OS X, sono diventate così buone negli ultimi due anni che lo stigma "lento" dato alle VM è ingiustificato.

2
Le macchine virtuali vanno bene in velocità, ma solo se si dispone della memoria di riserva per supportarne una correttamente.
Matthew Scharley,

@Matthew: Sì, ma oggigiorno la maggior parte dei computer viene fornita con standard da 4 GB e, per uno sviluppatore web, è sufficiente eseguire almeno una (se non due) VM contemporaneamente.

7

L'altro motivo per cui le persone utilizzano una macchina virtuale per lo sviluppo Web è la virtualizzazione di un ambiente server che possono essere disattivati ​​molto facilmente.

A casa utilizzo sempre una macchina virtuale per impostare progetti personali in modo da poter spegnere completamente tutto quando voglio, per esempio, giocare. In un ambiente di lavoro potresti volerlo disattivare in modo da disporre di risorse complete per transcodificare un video in FLV.

Ti dà solo la flessibilità di fare ciò che vuoi con le tue risorse.


3

Preferisco usare le VM per praticamente tutto lo sviluppo ... specialmente quando lavoro con un team di sviluppatori. Le macchine virtuali mi consentono di creare un "ambiente in una scatola" che può essere configurato rapidamente con un piccolo mal di testa. Dal momento che utilizzo un MBP come macchina principale, preferisco VMWare ... è molto meno doloroso soprattutto in un ambiente "principalmente Windows".

Per quanto riguarda la velocità, varia onestamente da una configurazione all'altra. Gli unici problemi reali che ho riscontrato con la velocità della VM riguardano a.) Non avere abbastanza risorse fisiche (memoria, ecc.) O b.) Non allocare abbastanza risorse alla VM. Altrimenti, in realtà preferisco lavorare in una macchina virtuale Windows sul mio Mac piuttosto che lavorare su una scatola nativa.


2

Testare gli ambienti è importante come altri hanno già detto.

  • test del browser (ad esempio, safari, ecc.)
  • ambiente di test pulito
  • facile avere più configurazioni
  • test di accessibilità (screen reader e simili)

Ho una VM strettamente per la profilazione e il debug del mio codice che ha già installato kcachegrind, insieme a selenio, xdebug e alcuni altri strumenti configurati per profilare e debug facilmente il mio codice. Sì, alcuni potrebbero dire che questo sarebbe già un ambiente di sviluppo, ma personalmente mi piace avere una VM sul mio desktop dedicata a questo tipo di attività.

Inoltre, per quanto riguarda la lentezza in una macchina virtuale:

Le cose sono più lente in una VM a causa del sovraccarico richiesto per "virtualizzare" l'ambiente. Tuttavia, la VM si avvicina sempre di più all'hypervisor, riducendo il sovraccarico richiesto per la VM.


2

Uso sempre macchine virtuali. A scopo di test, il ragionamento è ovvio, ma lo uso anche per il mio ambiente di sviluppo reale, principalmente perché 1) rende la migrazione a nuovo hardware un gioco da ragazzi e 2) mi dà una semplice "istantanea" (o set di istantanee) ricadono come necessario per quelle configurazioni del mio ambiente di sviluppo. Le mie esigenze possono essere uniche - sono principalmente uno sviluppatore di Delphi che utilizza più versioni di Delphi e molti componenti di terze parti - ma la quantità di tempo e mal di testa che hanno il mio ambiente di sviluppo all'interno di una macchina virtuale è stata risparmiata, probabilmente non è stato possibile essere sopravvalutato.

Detto questo, non lesinare sulla scatola su cui li esegui, soprattutto quando si tratta di memoria. ; )


1

Questa è una risposta tardiva. Sono d'accordo con tutti i punti della risposta accettata, ma volevo aggiungere che utilizzo le macchine virtuali esclusivamente per lo sviluppo Web e non solo per i test. Sono su un iMac usando VirtualBox per eseguire Windows, Fedora e Ubuntu - a volte tutto in una volta. Non ho problemi con le prestazioni.

Preferisco lavorare in questo modo perché lavoro per i clienti che eseguono server Fedora e Ubuntu e mi consente di abbinare da vicino l'ambiente di sviluppo con l'ambiente di produzione. Mi rende anche un amministratore di sistema migliore nelle aree più importanti dal punto di vista dello sviluppo.


1

L'utilizzo delle macchine virtuali ha trovato un buon modo per mantenere una configurazione di sviluppo specifica del client.

In una società di consulenza passata, Devs sapeva che l'avvio di una specifica VM significava che si aveva un ambiente di lavoro per lo sviluppo / test e la distribuzione del software che abbiamo supportato per quel client. Particolarmente utile quando si supportano alcuni veri sistemi dispari.

Per le nuove app, avresti la configurazione più recente e migliore sulla tua macchina Dev principale. Ma che dire di quando hai bisogno di correggere alcune vecchie app VB6 che la tua azienda supporta ancora. Vorresti installare Visual Studio 6 sulla tua bella macchina VS2010 pulita? Io non la penso così!

Inoltre, è stato abbastanza facile per qualsiasi sviluppatore supportare qualsiasi client.


0

Ho sicuramente usato macchine virtuali per testare siti Web, ma non per scrivere codice.

Il vantaggio delle macchine virtuali è che puoi avere diversi sistemi operativi e browser impostati, per testare gli inevitabili bug CSS che scoprirai in IE6 / 7/8.


0

Non vedo un motivo per sviluppare siti Web in una macchina virtuale, non è necessario per un utente Windows.

Puoi eseguire tutto in un'installazione Windows (Portable IE, Chrome, Firefox, Safari, ...), in
alternativa puoi usare Expression SuperPreview per entrare in un nuovo mondo di test cross-browser.


Cose come Portable IE, Expression SuperPreview, IETester sono , a tutti gli effetti, ambienti virtualizzati. In realtà non stai eseguendo una copia del mondo reale delle versioni precedenti di IE e, nel caso di cose come SuperPreview e IETester, non hai nemmeno accesso al browser Chrome o all'architettura del plug-in. Oltre a IE, non hai accesso alle versioni di altri sistemi operativi degli stessi browser. Ad esempio, Safari su Mac OS X ha funzionalità che non esistono su Safari per Windows e Chrome per Mac è generalmente in ritardo rispetto a Chrome per Windows.

No, no, no! IE portatile, Expression SuperPreview, IETester sono nativi sul tuo sistema, non è prevista alcuna virtualizzazione. Stai eseguendo una copia del mondo reale che è stata adattata per essere eseguita nell'ambiente corrente e ha lo stesso comportamento ... Non è necessario avere accesso all'architettura Chrome o plug-in del browser durante lo sviluppo web. Per Safari, le funzionalità extra sono di nuovo irrilevanti per lo sviluppo web tra browser. Per Chrome, le versioni possono essere utilizzate simultaneamente ... Se si ha davvero bisogno di testare ciascuna versione del browser su ciascuna versione del sistema operativo, a tale scopo c'è browsershots.org .
Tamara Wijsman,

Prova a testare l'integrazione con più versioni di Office. Le macchine virtuali sono ancora incredibilmente utili da avere.
davewasthere,

@davewasthere: E in che modo Office è correlato allo sviluppo Web? Sono sicuro che le macchine virtuali hanno il loro uso per varie cose, ma per lo sviluppo web si sta bene senza di essa ... Anche le versioni multiple di Office e Visual Studio possono essere installate insieme senza una macchina virtuale, ma in effetti ci sono limiti e compromessi ho davvero bisogno di una VM.
Tamara Wijsman,

@TomWij - Ho un client con un'applicazione Intranet in ASP.Net che si integra con Word. Dal momento che usano più versioni di Office, è bello poter avere un'immagine con ogni versione installata. So che è possibile affiancare Office e IE. Ma in realtà lo trovo un dolore. Le macchine virtuali sembrano molto più pulite / facili ...
davewasthere,

0

Uso una macchina virtuale per mappare i sottodomini di virtualbox.me (possiedo il dominio) alle sottodirectory di una cartella sulla mia macchina host condivisa con il guest.

Con questa configurazione, creo semplicemente una nuova directory e ho immediatamente un nuovo progetto sotto il suo sottodominio, ovvero / home / pete / virtualwww / my-super-project mappe su http://my-super-project.virtualbox.me/

Ho scritto una guida per replicare questo (usa mod_vhost_alias e VirtualDocumentRoot) qui:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.