I’ve asked the question on Twitter, but I’d like to get a more broad idea of what people think about developing applications inside a virtual environment. Results were pretty much on both extremes, either people love it, or people told me I need to get a new IT staff. We do have virtual servers running already, but the reality of actually developing inside a “virtual workstation” might be totally different. The upside of having different virtual environments available to me to use and not have any spillover into my “real” operating system seems greater than the downside of performance (especially on my laptop). But what do you guys think?
I sure as heck don’t want to end up like Arnold


14 responses so far ↓
1
Paul Ramsey
// May 8, 2008 at 4:16 pm
I think virtualization is da bomb. Fine for development too. The only caveat so far has been I/O intensive applications. So, stick to small, test databases, keep the large stuff on native hardware. Also, buy lots (and lots (and lots)) of RAM.
2
Tobin
// May 8, 2008 at 4:31 pm
Depends. I’d rule out a virtual environment if (a) your hardware can’t support the load of course, (b) you are doing anything involving 3D drivers or serious audio or odd peripherals where virtual environments can be flaky, or (c) the business use can’t live with the ~5-10% performance hit you generally end up with. But given all those things, I’ve found developing in virtual environments to be relatively pain-free. For anything from running simple Win OS installs to test web sites in various IE versions to building a whole Linux/Apache/Tomcat/GeoServer/PostgreSQL/Tilecache server environment you can burn to a DVD and distribute to the masses, it has been fantastic. Referring specifically to VMWare Player/Server and Virtualbox here - haven’t tried any of the others yet.
3
Bill
// May 8, 2008 at 5:35 pm
I wouldn’t want to end up as Governor of California either.
Seriously, I’ve had good experiences with virtualization. We are beta testing 9.3 in VMs now and I’ve done a good bit of development in it as well.
When I upgraded to 9.2 on my host OS I set up 9.1 in a VM because one of my customers was still running it. Tobin is right about it being a little slower so you have to account for that in any testing you do in the VM.
I started out using Virtual PC as a test environment and quickly got hooked on the ability to build a baseline, stash it on the network, really hose my local copy, blow it away, copy the baseline back over and start again.
I’ve since had good experiences with VirtualBox. I like it even more than Virtual PC. It even helps at home! I set up a Win98 VM to run some older learning games for my daughter that don’t run on XP.
I used VMWare a little a while back but not enough to really comment on it.
It can get a little taxing on a 32 bit system because you can really chew up some RAM if you’re not careful. If you get a 64-bit box, though, it’ll rock.
I’m not a real big fan of IT staff telling developers how to do their jobs so I have a good bit of heartburn about the reason you are considering it but I think you’ll be pleased with it.
Speaking of IT, that’s one place where it really helps. You can be an admin in your VM so you’ll have full control to do what you need. The other thing is you can mock up the default security config for your deployment site (I know you do a lot of government work) and test in it before getting on site and realizing it won’t work.
I’ve gone on long enough….
4
J
// May 8, 2008 at 5:55 pm
I live inside remote desktops and virtual enviroments
We use virtual enviroments for all of our development and UAT inhouse. I also use it for all of my demonstration servers.
The big advantage of having them is the management. If something goes wrong and screws up, just use the backup image. You don’t have to waste time re-installing everything.
We have a file server on the network which has a respository of images for use to everyone. These images include prebuilt Windows with ArcGIS and we have this for all flavours so if you need something, grab the image you want and run it.
Performance wise, VMware is getting better and better on the performance side. I find that using the server console or VMware tools is slow and alternatively I just RDP into the VMware image thats running. It’s fast and effective.
Whenever I travel I am carry my VMware images with me. I could say that I could not live without it now.
I have a ArcGIS 9.3 VMware enviroment which I am using for development. I cannot install it on my laptop as yet due to the fact that I still need to have ArcGIS 9.2 on my machine but I have developed a number of applications fine through this VMware enviroment
My 30 cents
5
Murky
// May 8, 2008 at 6:29 pm
I’ve been using Virtual PC ‘07 quite a bit and it does the job. I just bought a high-end workstation and loaded it full of RAM & SCSI disks.
I just mstsc into them as do our contractors (over cisco VPN). I think they’ve even done that from within a Virtual PC on their end!!
6
Tim Bowden
// May 8, 2008 at 11:59 pm
As a dev tool, virtual environments are great. They provide flexibility just not possible when working directly on the hardware. You can relatively easily build quite complex environments and modify them very easily. Try something that doesn’t work? Splat the image and start again 5 minutes later. As far as I’m concerned, having virtual environments lets me treat my environment the way you can treat experimental code with CSV type systems.
The other big advantage is you can use it to get around SOE requirements. If you want to try a LAMP or Linux PostgreSQL/PostGIS test bed you don’t need to go begging for a dedicated server. Given a decent spec laptop you can start from there for simple setups.
Only points to watch as Paul R pointed out, have much more ram than you think is healthy, and beware of I/O issues. Also have plenty of disk space for storing images and a good naming convention. It’s a bummer having to sort through a heap of old images to find something you did ages ago…
7
Murky
// May 9, 2008 at 4:03 am
I agree with Tim on the disk space–get plenty of it (this is something that I did not do…why would I need more than 2 or 3 VMs?). Well, there’s always a need for another disk image!
heck, yesterday I fired up a PostGIS/PostgreSQL and gave ziggis arcmap tool a go. For me, it’s therapy for when ESRI products frustrate me.
8
AC77
// May 9, 2008 at 7:31 am
I am running VMWare on my Mac and have have a Virtual Dev machine setup w/ XP and another with Server 2003 and love it. Performance is fine as long as I’m only running one at a time. One of my cores is dedicated to my primary and the other to my VPC with 2GB for each and it works like a champ.
9
Ben R.
// May 9, 2008 at 8:03 am
Beyond what everyone else has said, I would definitely recommend a multicore machine for VM development. Moving recently from single to multi at home, the differences could not be more apparent.
These days I almost always test commercial software trials in a virtual machine first. And I always keep it on that machine if it is especially bad about leaving around remnants of itself after uninstall and it doesn’t need 3D acceleration.
10
Dave Bouwman
// May 9, 2008 at 1:05 pm
I love VM’s for test servers, and maybe I’m spoiled with my 3 screen setup, but it would be a tough sell to move to developing in an RDP window.
Dave
11
Dan S.
// May 9, 2008 at 1:56 pm
Count me in amongst the “Loves VM” users. I’ve done all of my development in virtual machines for about 7 years now; initially because I had transitioned over to a linux desktop but had Windows work, but it quickly became apparent that it’s a swiss army chainsaw for development.
Bringing in a new developer on a project? Gone are the hours (or days) spent getting an environment up and running; just give them a copy of it!
Something on a system borked beyond belief, or accidentally deleted a key system file? Roll back to a snapshot!
(List of advantages goes on.)
The speed hit has been noticeable, particularly during contracts where I was writing an ArcGIS Desktop extension that does a rather large amount of data processing; but even then, it’s been worth it and then some. I also miss out on pretty much any animation and 3D; once I upgrade my aging laptop, I suspect that these will work well enough, if at low-end speeds.
At one point I even experimented with keeping a VMWare image of an entire development server checked into Subversion. (I can’t really recommend that, in retrospect…. but if it hadn’t been killed dead by extremely long checkin and update times, it would have been the bees’ knees.)
Data point WRT keeping things from spilling over: despite doing development on tens of extremely different platforms (Win2K up to XP; all flavors of ESRI desktop software; ArcGIS Server and SDE; C#, j2ee, VB/Avenue/etc environments), I’ve not once had to reinstall an OS due to bit rot, ever.
Top tip if you do go this route: Disk space becomes an issue quickly, particularly on a laptop. External USB drive enclosures (ones where you can swap out the drive inside it yourself) are very nice, but carry a speed penalty. I’ve started using an external ESATA enclosure instead — in conjunction with a PCMCIA adapter card, the disk seek and transfer times are significantly faster than even my laptop’s internal drive.
12
Kevin
// May 9, 2008 at 3:42 pm
The point by Dan about the USB drives - is anyone running a VM directly off a USB connected harddrive?
I’m probably using 100gigs for VM’s and am curious if anyone actually runs a VM from a external drive….
13
Aaron
// May 12, 2008 at 6:31 am
@Kevin
I am running a WinXP VM, and a WinServ 03 VM off of an external USB 2.0 drive. So far it is working out well. I only did it because I ran out of space on the servers HD. So, while I waited for I.T. to purchase a new 750GB HD I copied my VMs over to the external drive. I wouldn’t want to use it permanently, but it does work…
14
Abe
// May 12, 2008 at 7:26 pm
Nearly all of zigGIS 2.0 has been developed in a virtual machine (MacOS X host / Parallels+XP VM). Testing the various ArcGIS versions will be done using VirtualBox so that we can easily swap around the VM images among XP (Bill & Paolo) and MacOS X (me). I couldn’t be happier.
Leave a Comment