Newsgroup: it.comp.programmare
Titolo: Pro e contro di avere server virtuali

Salve, secondo voi quali sono i pro ed i contro di avere un server 
virtuale invece che una macchina fisica dedicata ?

 virtuale invece che una macchina fisica dedicata ?
Visto il ng in cui posti, credo tu chieda quali sono i pro e i 
contro per la programmazione.
Se usi le vritual machine per installarci l'ambiente di sviluppo i 
pro sono:
- possibilità di fare il backup di tutto il sistema in modo sicuro 
(con molto spazio su disco a disposizione, ovviamente)
- possibilità (se si fanno backup o se il sistema di 
virtualizzazione lo consente) di fare esperimenti sulla 
configurazione dell'ambiente di sviluppo
- possibilità di "congelare" l'ambiente di sviluppo (compilatore e 
relative patch etc.) in corrispondenza di una release del software 
in modo da avere la possibilità di riprodurre al 100% la situazione 
in cui è stato generato il file compialto.
- possibilità di passare tutto l'ambiente di sviluppo da un PC 
all'altro e quindi condividerlo tra sviluppatori o PC diversi.
se le usi per i test:
- puoi avere diversi ambienti di test, senza avere più macchine o 
doverle usare in multi boot.
- puoi passare l'ambiente di test da un PC all'altro e da uno 
sviluppatore all'altro
Contro (in tutti e due i casi):
- costi di licenza (se il software che usi prevede licenze legate 
all'hardware...)
- performance inferiori a quelle che avresti su un PC "reale" e, di 
conseguenza, tempi di compilazione più lunghi o test che potrebbero 
non riflettere le reali performance del programma (ma se gira più 
lento hai stimoli per ottimizzare!)
- possibile rogne nell'accesso ad hardware (soprattutto USB) sia per 
lo sviluppo (emulatori jtag?) sia in fase di test che potrebbero 
costringerti a riportare su una macchina reale l'ambiente emulato.
Con software di virtualizzazione evoluti puoi avere anche il 
clustering e quindi maggiore affidabilità (con la possibilità di 
"migrare" le macchine virtuali da un server all'altro in caso di 
guasti o per suddividere meglio il carico).
In questo caso, rispetto alla virtual machine in locale, rischi di 
non poterti portare appresso l'ambiente di sviluppo e questo in 
alcuni casi (ad esempio quello del sottoscritto) è un grosso limite 
se non hai la possibilità di portarti in ufficio tutto l'hardware 
che serve a debuggare.
-- 
Valter Minute
(the reply address of this message is invalid)
(l'indirizzo di reply di questo messaggio non è valido)

 che serve a debuggare.
Che vuol dire "l'HW che serve a debuggare"?

 wrote in news:pan.2007.09.05.08.48.39.569287
@
inwind.it
:

Si parlava di differenze tra VM in locale e sul server.
Visto che non hai specificato con che piattaforme lavori, può darsi 
che tu utilizzi degli emulatori per lavorare direttamente sul 
microprocessore/microcontrollore, sia programmando il firmware, sia 
lavorando con un sistema operativo.
In questo caso è possibile che il dispositivo hardware che ti serve 
per debuggare non funzioni da dentro una virtual machine (e quindi 
questo esclude in toto l'utilizzo della VM per quel tipo di lavoro) 
oppure che non sia pratico collegarlo al server dove girano le VM in 
rete (e questo esclude l'uso solo delle VM in rete).
Un altro caso è quello in cui tu devi realizzare, ad esempio, il 
software che controlla un macchinario grande come un campo da calcio. 
Se sei fortunato ti daranno una versione "ridotta" dell'hardware (la 
sola scheda di controllo?) o un simulatore per provare il tuo sofware 
anche qui caschiamo nei due casi precedenti:
- i driver del marchingegno non funzionano dentro la VM 
- collegare il marchignegno al server potrebbe essere scomodo perchè 
non avresti la possibilità di interagirci o di vedere in diretta cosa 
fa
Tutti e due i casi escludono l'utilizzo di VM (in rete nel secondo 
caso) come ambiente di test.
Potresti usarla per l'ambiente di sviluppo (se non cadi in uno dei 
casi descritti prima) ma, come minimo, dovresti avere la possibilità 
di eseguirla in locale per poterti portare un PC portatile dove è 
montato il macchinario grande come un campo da calcio di cui sopra.
Probabilmente, lavorando su dispositivi embedded, ho un punto di vista 
un po' particolare... se realizzi normali applicativi Windows/Linux o 
applicazioni WEB probabilmente le VM anche in rete, sono un'ottima 
soluzione sia per l'ambiente di sviluppo che, soprattutto, per quello 
di test.
