n a world of multiple operating systems, each with various versions, no developer has the luxury of building applications for only one target configuration. Every developer needs to ensure that his or her applications will function correctly on all the OS configurations used by today’s heterogeneous IT environments. Because dedicating physical test systems for each target environment is out of most development teams’ budgets, virtual machines (VMs) are the right solution at the right time.
Virtualization solutions enable you to run multiple VMs on one physical computer. Each VM behaves as an isolated physical PC or server with its own configuration?a very useful testing and development environment that’s much cheaper than the real thing. Java developers know the benefits of the VM concept well. The promise of enabling developers to “write once, run anywhere” was a key factor in the broad adoption of Java, which itself runs on the Java Virtual Machine.
Recognizing the impact VMs can have on the application development process, DevX has compiled a comprehensive special report titled Virtual Machines Usher In a New Era. Our report helps you understand and evaluate the available virtualization solutions and guides you through deployment.
In her article, “The Right and Wrong Virtual Machine Uses in Development and Testing,” Megan Davis, a member of the Microsoft Virtual Server 2005 product development team, explains why VMs?despite the time and money they save?are not the right choice for every software development and testing scenario. Find out when they make sense and when physical machines are a better choice.
If you’re planning to deploy VMs in the datacenter, you’ll need to weigh the benefits and drawbacks there as well. Drawing on his experience using VMware and Xen to test software, consolidate servers, and host services, Java developer and author Wellie Chao gives you “The Pros and Cons of Virtual Machines in the Datacenter.”
After you decide to proceed with deployment, Web and Windows programming consultant Martin Heller walks you through a step-by-step Microsoft Virtual PC 2004 installation of SuSE Linux 9.1 Professional from DVD in his article “The Developer’s Guide to Building Virtual PCs.” Software architect Edmon Begoli takes VM deployment one step further in “Prototype Complex Enterprise Solutions with Just Your Workstation,” with guided instructions for using VMs to prototype a database backend solution for an Internet application?on your desktop.
John Paul Cook, a database and systems architect, addresses the roles VMs can?and can’t?play in your security strategy with a tutorial on using a VM for safe Internet browsing (“Make A Virtual Machine Your Safe Internet-Browsing Sandbox“). In it, he also pokes holes in the notion that a VM is a safe environment for analyzing malware behavior or hosting honeypots.
Armed with the knowledge from this report, you may feel ready to base your entire server infrastructure on VMs. Todd Hudson, a senior systems engineer whose team implemented an enterprise-wide virtual infrastructure that has dozens of hosts running hundreds of VMs, has some valuable advice to help ease your implementation in “Keys to a Successful Virtual Infrastructure Implementation.”
And DevX Executive Editor Russell Jones, in his editorial “Virtual Machines: A Logical Evolution of Operating Systems,” argues that although VMs have come a long way since their origins on IBM mainframes in the 1960’s, developers and home users are just beginning to experience their benefits?and VMs still have some evolving to do.
The Virtual Machine Age
So why is DevX focusing all this attention on virtualization now? Because the benefits of the technology and the growth of the market are too big to ignore. Rich Lechner, VP of Virtualization technology for IBM, who studies IBM’s own market intelligence and monitors the findings of market research firms, said, “Anywhere from 40 to 50 percent of the clients out there either have implemented or plan to implement virtualization over the next one to two years. We are seeing very broad-based adoption. Certainly much broader than, in my experience, the early days of Java and Linux.”
VMware, which pioneered virtual machines on the ubiquitous x86 architecture in 1998, today boasts millions of users for its Workstation desktop virtualization product and more than 20,000 enterprise customers for its server products (GSX and ESX Server). Coincidentally, VMware’s largest distributor/reseller is none other than IBM, which has been using virtualization to partition its mainframe computers for decades. IBM has developed Virtualization Engine 2.0, a suite of tools and interfaces?some currently available, others soon to be?that helps its server clients manage the proliferating storage, network, and server virtualization projects. And all signs point to continued growth for virtualization.
|Dan Chu, VMware Sr. Director of Developer/ISV Products|
This growth has spawned a number of virtualization solutions from software giants such as Microsoft, to open source players with Linux legacies whose ambition is to surpass the VMware offerings, to still others who leverage VMware’s large installed base as a platform on which their own products can add value. Said Dan Chu, VMware Sr. Director of Developer/ISV Products, “Two years ago we introduced a broad SDK for our platform, and that’s something that more than 40 third-party vendors have [used to produce] commercially available integrations to VMware. And we see a lot more in the pipeline.”
The trend has not been lost on chipmakers such as Intel and AMD, who are tweaking the underlying silicon of the x86 platform to enable VM software makers to optimize their products. Margaret Lewis, AMD’s Commercial Software Strategist, explained, “The x86 instruction set by nature was not built with the idea of doing virtualization. X86 evolved back in the days when it was a desktop product, never thinking of dividing it up into many virtual machines.”
Hence, Intel is rolling out chips enabled with its VT (Virtualization Technology) features, and AMD has its virtualization-geared Pacifica slated to ship during the second half of this year. According to Lewis, Pacifica is focused on helping software vendors elevate the performance and security of their VM products. Recent releases have taken advantage; for example, VMware Workstation 5.5 supports Intel VT, while Xen 3.0 supports both VT and AMD Pacifica.
What’s This Going to Cost Me?
Although VMs can stretch your IT dollar by allowing you to fully utilize your existing hardware, software still costs money. More specifically, the licenses for the software you run in VMs cost money. With traditional licensing schemes, the expense of running multiple OS and application instances could rival the cost of brand new hardware. To avoid sticker shock and confusion, software vendors have begun accommodating virtualization in their licensing schemes. The industry experts DevX spoke with agree that Microsoft is on the right track with its initiative.
Said Ben Armstrong, Program Manager of Microsoft’s Virtual Machine Technologies Group, “previously, we had a per-installation license model, where you’d pay for every installation of the operating system?even if it wasn’t running. So if you had a single box with 50 virtual machines, all who’ve had Windows Server installed in them, you’d have to pay for each one. We’re now moving to a model where you pay for instantiation. So if you have those 50 virtual machines but you’re only ever running eight at a time, you only have to pay for eight of them.”
With the recent release of Windows Server 2003 R2 and Windows Server 2005 R2, Microsoft made a number of licensing announcements. Among them were the Enterprise Edition of Windows Server 2003 R2 allowing up to four running virtual instances on one server at no additional cost and users being able to run unlimited instances of the Longhorn version of Windows Server Datacenter (due in 2007).
Your Solution’s Approach Can Make a Difference
The type of virtualization approach that a given VM solution uses can also affect its cost, as well as its performance and security. Virtualization on the x86 platform is performed using one of two general approaches: hosted or non-hosted. In the hosted model, the hardware’s base operating system hosts the virtualization solution, on top of which you create guest OS instances and your VMs. Microsoft’s Virtual Server and Virtual PC products currently utilize this model on the Windows operating system.
|Simon Crosby, CTO of XenSource|
The non-hosted model (also known as the bare-metal approach) utilizes a hypervisor, a virtualization layer between the hardware and guest environments that mediates access to the underlying resources. The hypervisor interfaces either directly with the hardware, as with VMware’s ESX Server, or with a host operating system to leverage its device drivers, as with the Linux-based virtualization solutions Xen and OpenVZ. You create guest OS instances and virtual machines on top of the hypervisor.
According to Simon Crosby, CTO of XenSource, the recent Xen 3.0 release enables bare-metal performance because it runs on hardware and not on an emulated chipset. “The OS and the hypervisor are working in concert,” he said. “The OS views Xen as real hardware.”
Dan Chu explained the tradeoffs between the approaches. “On the hosted side, there’s an ease of implementation because you can implement on a broad range of underlying operating systems, as well as hardware. Whereas, on the bare-metal architectures, you get an optimization with respect to scalability and to some extent also performance.”
|Kir Kolyshkin, Manager of OpenVZ Project|
Manager of the open source virtual server project OpenVZ, Kir Kolyshkin, says an OpenVZ virtual private server (VPS) will run at the native speed of the hardware. However, its bare-metal deployment requires Linux administrator-level skills to configure the OS for optimal performance. “Each VPS can have its own set of configuration libraries and DLLs. Only the kernel is common to all VPS’s. Everything else you can change,” explained Kolyshkin.
Depending on your Linux proficiency, that can either sound like great flexibility or a very complex proposition.
The hypervisor-and-host-OS model lends itself best to hosted services on the server side, as it enables you to partition a single physical server into many virtual ones and pay the license fee for the base operating system only. Carla Safigan, product manager for Virtuozzo, a virtual server technology and commercial sponsor for the OpenVZ project, said, “For things like stress testing, when you have to have hundreds of servers testing the same operating system at the same time, that’s a perfect application for Virtuozzo because you don’t necessarily need 10 different operating systems on a server, you just need a really high volume of servers.”
While the single-OS limitation may not work for a development and testing environment where you need to run those 10 different OS configurations, you also may need to pay for each of them.
Another consideration is the security of the virtualization approaches. Said Armstrong, “With the hosted model, all your virtual machines are dependent on the security of the hosting operating system. Whereas with the non-hosted model, you’re dependent on the security of the hypervisor and that’s a lower attack surface.”
A developer must consider these factors when determining which virtualization product to choose, because the approach impacts cost, performance, and effectiveness.
Editor’s Note: Since the writing of this article, VMware announced it will release the next version of its GSX Server product as a freely available, hosted server virtualization product called VMware Server.
Beyond Isolated Sandboxing and Testing
As the market grows, the ways in which developers use virtualization itself are expanding. The traditional development and testing uses of virtual machines as local disposable sandboxes and solutions for application isolation are broadening. Sharing development tasks across large teams in disparate locations appears to be the next step.
Armstrong has witnessed the trend among users of Microsoft’s Virtual Server product. “People are developing n-tier systems with server backends, where normally you would’ve had three or four servers dedicated to replicating this environment. Now they can have a single server, create their development servers inside a virtual machine, and greatly reduce the amount of hardware they need to develop in that environment.”
|James Phillips, Akimbi Systems CEO|
Examples of virtualization in these large-scale development environments are abundant. The virtual lab management system Akimbi Slingshot is one such solution. “We hear frequently from customers [that] IT owns all the servers and they’re responsible for responding to developer and QA requests to set up a certain configuration,” explained Akimbi Systems CEO James Phillips. “With our system, the application development and test organizations can, in effect, self-serve.”
Aimed at software development in test organizations, Slingshot captures multi-machine configurations as VM images in a storage library and then, by taking under management any server pool running VMware’s and/or Microsoft Virtual Server 2005’s virtual machine monitoring technology, lets developers deploy and manipulate those configurations as if IT had configured the systems for them.
According to Chu, an international bank is using VMware’s ESX Server to run 500 WebSphere instances for its developers, enabling them to simulate very large-scale development, test, and staging environments for their internal financial and business applications. He pointed out that many clients are employing this solution, even hosting hundreds of developer desktops at offshore locations from their corporate datacenters. “Developers on one hand need an optimized individual developer environment,” said Chu. “But in many cases, they also need access to very large scale developer environments that go up to thousands of end user developers.”
No matter what the scale of your virtualization project, the DevX special report will help you garner the best results. See the Related Resources in the left-hand column for links to all the report articles. Read up and then put that dormant CPU power to use.