Has the time come for development on a virtual machine?
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
I've been developing and deploying on VMs since 06. Oodles of ram and fast drives are the key imo. As far as the host OS goes I've found VMWare to be pretty robust across PCs, MACs, and linux. A 64bit host is pretty great also in that you can host 64 bit and 32 bit clients.
Sovereign ingredient for a happy marriage: Pay cash or do without. Interest charges not only eat up a household budget; awareness of debt eats up domestic felicity. --Lazarus Long
-
John C wrote:
Is anyone doing their main development in a vm and how's the speed by comparison?
I've done some limited testing under Vista 32bit with an XP 32bit VM and was impressed. Enough so that I too am considering moving all development over to a VM. It sure would make it easier to move everything over when replacing a laptop or desktop machine. Marc
Marc Clifton wrote:
It sure would make it easier to move everything over when replacing a laptop or desktop machine.
Also the ability to achive off legacy technology and still have it available in the future in case issues appear. I still have one site running on ASP.NET 1.1 and do not have the time nor desire to upgrade it. It is handy to use the VM to keep Visual Studio 2002 around for that site :)
Rocky <>< Recent Blog Post: Monopoly Money, sure, let’s print more! Thinking about Silverlight? www.SilverlightCity.com
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
I think VMs are the way to go for numerous reasons:
- t is easy to move to another machine in the event of failure or if you have to take work with you via a laptop.
- When moving to new technology you can keep a working legacy environment in the event of maintenance or additional features to legacy applications.
- You can clone the VM and then try out new service packs and updates without the risk of hosing your current development. Some client environments may have a restriction on the service packs they are allowed to use (such was the case a while back with one using Microsoft Dynamics could not handle a .NET update so additional apps had could not use the update).
- Viruses and Trojans usually do not spread to the VMs just in the event someone does something stupid on the machine during personal use.
- Makes it easy to keep backups or even versioning by saving off a VM at critical changes.
- Keeps a clear separation between personal and business use
Even if it is a performance hit, it is worth it to have all the above benefits. I can wait a few seconds when compiling for all the good I get out of it. It would still be worth it if the only benefit was the ability to move the VM to a new machine and be developing again in a matter of minutes when hardware crashes!
Rocky <>< Recent Blog Post: Monopoly Money, sure, let’s print more! Thinking about Silverlight? www.SilverlightCity.com
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
John C wrote:
Is anyone doing their main development in a vm and how's the speed by comparison?
I did it a lot on my previous job - the primary dev OS was Linux, but it had to run on Windows as well, and plus all the office software was Windows-only. Therefore I was running Linux on a VMWare image. The speed was not an issue at all, but setting a breakpoint with gdb would occasionaly bring the vm image to halt, and that was really annoying. Eventualy they gave me a separate machine for Linux development. On the current job, I use Hyper-V to debug XP-only bugs and it works fine.
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
At the moment, I'm happily using a VPC for all my dev. With VMWare and 4GB (I was thinking Linux, but I went Vista due to a head injury), both XP and Server 2003 are happy (it's also great on a MacBook Pro). While I don't do a load of hard core dev, VS has been as productive as it ever is. Going 64 bit and more RAM would be even better, I think. The other benefit I get from that is that I have my main machine fairly clean of Betaware, and I can keep my VM RASed into their network for work, without disturbing my main machine or connection. I also briefly considered using one of the hypervisor thingies (like HyperV or ESX server), but didn't like the fact you'd need to administer them from yet another machine. Other people's mileage may vary.
-------------- TTFN - Kent
Kent Sharkey wrote:
I also briefly considered using one of the hypervisor thingies (like HyperV or ESX server), but didn't like the fact you'd need to administer them from yet another machine.
If your primary OS is Windows Server 2008 you can use Hyper-V on the same machine. Works like a charm.
-
Kent Sharkey wrote:
I also briefly considered using one of the hypervisor thingies (like HyperV or ESX server), but didn't like the fact you'd need to administer them from yet another machine.
If your primary OS is Windows Server 2008 you can use Hyper-V on the same machine. Works like a charm.
Nemanja Trifunovic wrote:
If your primary OS is Windows Server 2008 you can use Hyper-V on the same machine. Works like a charm.
That is excellent news then, thank you! Sounds like I have much of my next machine planned out (64-bit, loads o' RAM and Server 2008). Now I just need the cash...
-------------- TTFN - Kent
-
Marc Clifton wrote:
It sure would make it easier to move everything over when replacing a laptop or desktop machine.
Also the ability to achive off legacy technology and still have it available in the future in case issues appear. I still have one site running on ASP.NET 1.1 and do not have the time nor desire to upgrade it. It is handy to use the VM to keep Visual Studio 2002 around for that site :)
Rocky <>< Recent Blog Post: Monopoly Money, sure, let’s print more! Thinking about Silverlight? www.SilverlightCity.com
Yeah, actually I was thinking along the same lines; I did a release last year that was built on VS 2005 and contained that moment in time's technology, this year I upgraded to VS 2008 and even though I have a snapshot/tag in my subversion repository with all the required source files, I don't have the same tools to build with so it would be a bit of a schmozzle to build a new maintenance release for last years release. If I had it all in a virtual machine I could just fire it up and do the changes and rebuild no muss no fuss.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
As a VM neophyte without an MSDN subscription I have a question if you don't mind: How does MS handle the OS/Office/VS licensing on VM clients?
You require an OS license and activation for the VM just like a regular machine. I have an msdn subscription so it's not a big deal, you just make the virtual machine, install the OS, activate it and no problems unless you change something fundamental about the virtual machine like the amount of memory allocated to it or disk size in which case activation is required again just like when you change hardware on a physical machine.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
I've been developing and deploying on VMs since 06. Oodles of ram and fast drives are the key imo. As far as the host OS goes I've found VMWare to be pretty robust across PCs, MACs, and linux. A 64bit host is pretty great also in that you can host 64 bit and 32 bit clients.
Sovereign ingredient for a happy marriage: Pay cash or do without. Interest charges not only eat up a household budget; awareness of debt eats up domestic felicity. --Lazarus Long
VMWare allows you to run a 64bit guest os on a 32bit machine, you just need a 64bit cpu. I test my software under XP x64 all the time in VMWare on my Vista 32bit host os.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
You require an OS license and activation for the VM just like a regular machine. I have an msdn subscription so it's not a big deal, you just make the virtual machine, install the OS, activate it and no problems unless you change something fundamental about the virtual machine like the amount of memory allocated to it or disk size in which case activation is required again just like when you change hardware on a physical machine.
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
I guess it depends on the kind of development you do. For example, as far as I know, virtual machines do not emulate GPUs. So it is kind of dead for serious game development, or image processing. In a way this is a pity, as graphics cards are already 128 bits, 256 bits or even more, with massively parallel capabilities. Sooo, once again software is lagging behind hardware...
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
I am - I have a Mac, and I develop on a VM running XP. It's brilliant.
Christian Graus Driven to the arms of OSX by Vista.
-
I am - I have a Mac, and I develop on a VM running XP. It's brilliant.
Christian Graus Driven to the arms of OSX by Vista.
ROTFL!! LMAO!! :laugh: :laugh: :laugh: Now that's a good one! I'll take the multilingual version... (with both eastern and western languages)
-
I guess it depends on the kind of development you do. For example, as far as I know, virtual machines do not emulate GPUs. So it is kind of dead for serious game development, or image processing. In a way this is a pity, as graphics cards are already 128 bits, 256 bits or even more, with massively parallel capabilities. Sooo, once again software is lagging behind hardware...
Best point in this thread. In addition, you can also forget any serious perf work on it. And they are quite unlikely to 'split-up' or emulate work until 2012 at the very best. MS cannot even get its act together on speeding up 2.0 graphics apps hardly a VM.
-
Best point in this thread. In addition, you can also forget any serious perf work on it. And they are quite unlikely to 'split-up' or emulate work until 2012 at the very best. MS cannot even get its act together on speeding up 2.0 graphics apps hardly a VM.
Thank you! I'd even add: http://www.custompc.co.uk/news/605271/windows-7-allows-directx-10-acceleration-on-the-cpu.html[^] Oh my! They got it all wrong! I guess than rather chasing yahoo as a substitute for google they should have bought nvidia and electronic arts. Hey guys, you missed the google train 10 years ago, so move on now...
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
that is exactly what I did, although main dev is native and past dev and alt platforms are in VMs. All my support for VC6 is only through VMs work and home.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
I do my daily development work in virtual machines. Virtual PC hardware acceleration is totally sweet. I use a quad core rig with 8GB of memory and Vista x64, and couldnt imagine moving to anything else. I also use 4 hard drives in raid 1+0 to get over teh increased disk traffic from running so many OSes In fact i have a whole test virtual ecosystem that I launch for real bug hunting. 2 Win2k3 Servers(one Domain controller, one SQL Server) and 1 Xp client machine. It also makes testing for different browsers or OS's a dream. although all my learning and wpf work still gets done on my host machine, most of my other development gets moved to the vms.
DrewG, MCSD .Net
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
I've been developing in a VM for years now. The convenience of portability and the reassurance of immediate restoration in case of hard drive/system failure or accidentally formatting your hard drive (it happens when you are playing around with scripting DiskPart!) has been wonderful. VMWare Workstation 6.x has been my home for a while. :)
-
I've been kicking around the idea of doing future development on a virtual machine once I get the major release out in the spring that I'm working on now. It's been two years with the current quad core pc, time to put it out to pasture or at least wipe the hard drive and start fresh again. My theory is you get a kick ass fast computer with 64bit processor and oodles of ram, choose a 64bit host operating system on the hazy criteria that it be the best for vm hosting (fastest to boot? Most efficient? Linux, Windows...not sure.) then create a 32bit virtual machine for general development with whatever is the best operating system for development and a set of others for testing under each operating system. Plus, since my dev machine is also my main personal use machine I guess a separate vm strictly for personal use. I'm thinking that we've almost reached the point where this is feasible (fast enough), but not sure. Is anyone doing their main development in a vm and how's the speed by comparison?
"It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson
John C wrote:
Is anyone doing their main development in a vm
We are now working on two (third is being installed) dual-quad core intel vm machines with 16 programmers on XP32 machines running VS 2005 (500k+ lines projects). Apart from the disk speed (which we are now upgrading to a SAN and local striped disks for compiling) it works great.. You can easily add a new environment (just copy) when a new programmer is needed. Also working on different versions or branches of the software can be done using different VM's. The whole test environment is also build on the same ESX VM machines.