Micro-ISV Tip #3: When the going gets tough, the tough get virtual
I had occasion yesterday to interview Kevin Epstein, VMWare’s Vice President for marketing at one of their developer seminars, and he had some interesting advice for micro-ISVs trying to manage how they test: go virtual.
“I would argue that VMWare is one of those critical pieces of software for a startup, precisely because it allows you to use the resources of a much larger company without actually deploying those physical resources,” said Epstein.
Virtualization software lets you make something that looks, acts and breaks your app just like a real PC, only its all within a program. You define a new virtual machine, load the operating system, and treat it just as if it were a real pc, but its just a very large file that runs when you need it.
“If I’m a single guy in a garage, with two solid server machines, and I’m trying to develop a multi-tier app and test it against 10 clients, I don’t have the physical resources to do that. But if I choose to deploy all those resources within a set of virtual machines, I could create that infrastructure within the confines of a single physical machine, and still have leftover workspace.”
Besides saving hardware costs, using virtualization saves time: “Instead of developing something, testing something and finding it doesn’t work and having to wipe the entire system and start over. Even if I backed it up, it’s still several hours time.” Epstein said. “With VMWare, I just hit reset, and I’m back to a clean state.”
While there are other virtual machine (vm) packages out there, notably Microsoft’s Virtual PC, VMWare’s Workstation 5 ($189 USD per developer) has them beat hands down, especially if you are a micro-ISV. Here’s a couple of typical micro-ISV problems VMWare solves with a set of virtual machines at your beck and call:
* Installer woes. You’ve built your app, only to have installer problems drive you crazy and cost you sales. You can open a running virtual Win XP PC, run the installer, see it breaking and reset in a matter of a few minutes.
* DLL Hell. Your app starts dying an ugly death and your bug list starts blossoming because someone else did a crappy job on their installer. Starting with a working vm, you run the offending party’s trial app, see the error in their ways and create a patch for your program that fixes the problem.
* Testing your web based app or for that matter your web site. You develop a ASP app that breaks if and only if it runs on the next to last version of IIS and the user has last month’s version of Firefox. You open up Workstation 5, start a vm server and a couple of different vm clients, all on the same box. You decide if they’re isolated from your real network, or part of it.
What do you need to run Workstation 5? From my own experience, a virtual Windows XP PC runs as fast or faster than a physical PC on a notebook PC with a Intel® Pentium® M processor 750and 1GB of PC2700 DDR RAM.
The key factor is memory: “Good, high-speed RAM and lots of it”, added Epstein. “With a lot of RAM, you can build things that will work faster and better in virtual space than in physical space.”
You can download a 30-day trial of VMWare Workstation 5 from their site, http://vmware.com, but keep your $189 in your pocket for now; because the company has just started offering a much sweeter deal, especially for micro-ISVs. For $299 a year per developer, you can get a VMTN Subscription that gives you all of VMWare’s products, including their virtualization servers, image file to vm and physical to vm tools which are way out of the budget for most micro-ISVs.
The extra hundred bucks means you can do things for development and testing purposes like create a set of vms with your choice of automated testing apps and automate the automation of them, make – or have your customer make and send you on a dvd – a vm of their exact physical pc for you to test and more.
“It’s the same thing as if you had a room full of physical machines, with someone walking around, turning one on, starting tests, waiting for results to compile and stopping tests. But instead of physically turning them on, the API is doing all the work for you.” Epstein added.