The client-side hypervisor has been in development with most of the Big Virtualization Players. Each of them are really keeping things under the covers so much that it basically has us all wondering if they are really thinking the way "we" are thinking. To name a few, we have Microsoft's Enterprise Desktop Virtualization, Citrix's XEN Client, and VMWare's bare-metal client-side hypervisor all being developed right now. I just wanted to share some of my "think outside of the box" approach to the client side hypervisor development so that maybe some developer out there would read this and well, short of laughing at me, I hope that they may consider some of my ideas. Background
Before I go too deep and off the wall of some of my ideas, let me first introduce to you what a client side hypervisor really is. A client side hypervisor is a type one hypervisor that runs on a PC or laptop; This hypervisor essentially decouples the users' operating system from the physical hardware while still giving each VM full direct access to the hardware resources. This allows multiple OS's to run on a single physical computer, however there is no single dependence of any of those operating systems to run another operating system VM. The key difference between a client side hypervisor and a server side hypervisor is that the User can actually access the User Interface of each OS from the same physical computer that the hypervisor is running. You might compare this to Microsoft's Hyper-V on Server 2008 with a Full Install of Server 2008, but it is actually very different in the fact that the actual Parent Partition or Virtualisation OS is transparent to the end user. If you are new to the topic, you can find a lot of information on client side hypervisors with a simple search in your favorite search engine.
So let's get down to the dirty... Guys, this is what I would like to see in the client hypervisor solution
Easy to use Front End UI
I think it is most important to at least give the users of these machines an easy UI so that they are able to navigate between each VM without having to know what they are technically doing. This means, that when a new VM is selected to run in the foreground, the other VM goes away (but still runs in the background). So obviously there should only be "one" start menu on the screen at all times. The UI should be easy for end user navigation, and have some kind of Peripheral management included so that when I plug in a USB device, I can choose to make the USB device seen from one or both/all VM's that are running. This goes the same for speakers, microphones, etc. One very important thing that I can think of is when a user is running a podcast or (streaming music) to one VM (i.e. their personal VM), the user can switch to the other VM (i.e. their work VM) and still hear the sound coming out of the speakers... (And you wonder why it's taking so long to develop this right???)
Data Decoupled from the VM
The big talk is that all the Client Hypervisor developers want to be able to allow the user to check in the VM to allow management to Back it up at night... Let's face it, if we know anything about end users, it's that if we ask them to do something, they wont do it, and if we force it on them, they will complain. I propose we completely remove the "VM" from the "DATA", but still allow the VM to be portable. In my mind, this is really simple (Of course, there is a reason I chose engineering over development), You have a hypervisor there already, can't we make a Virtual Data Sync engine that runs on the hypervisor? This engine can be responsible for holding the users documents and user profile. It can also be responsible for performing data synchronisation to a central store that can be triggered when the user attaches to the corporate network or over the Internet when network utilization is low. Instead of placing the software on the actual operating system, let's put it into it's own virtual appliance so that the end user doesn't have to interact with it at all.
Client-Side Virtual Appliance
Since I'm on the subject of a client side virtual appliance, let me throw a couple other ideas at you. How about the same virtual appliance that performs data management perform additional functions like client side VPN's, Client side WAN Acceleration, Client side Anti-Virus and client side updates delivery. With all these functions bundled into a single virtual appliance, the user can be given the benefits of an "Always connected" experience whether they are working from home, in the office or on an airplane. Going a few steps further, the same virtual appliance could perform Networking functions such as Wireless, Network Access Control, and even Virtual Soft Phone functions. The list goes on and on, and now you can probably guess that I am dreaming, but I can only hope that I'm not.
Wouldn't it be nice to go to your local PC dealer and just buy a Laptop that has the client side hypervisor already installed, configured and ready to go? Maybe you enable it in the bios or maybe it is always on but abstracted from the user until they actually need it. Either case, the licensing should come from the management aspect (And client side Virtual Appliances) and not the hypervisor itself. The key is easy adoption and easy integration. If the hypervisor itself is free, it will empower the quick adoption of organisations and end users can finally get what they want "To pick out their own hardware".
Well, I could chat about some of my client side hypervisor dreams forever. I do know that client side hypervisors are on the way in, and I for one am definitely excited about it. I feel like many of you out there are probably feeling that excitement with me. The key take away from this post is simple...
- Let's not forget which part of the company we are planning to roll out the client hypervisor for, it's not the task workers, it's the power users and the mobile workers that just don't have time to deal with little things like check in and check out.
- Let's not overlook some of the key opportunities that we have within the virtualization realm. Because this is a client side hypervisor, the possibilities are endless. But the technology can be easily deadlocked if you over engineer the solution built into the hypervisor itself.
- Free??? Well, I may be the only one that can see how powerful and profitable a free client side hypervisor could be, but I can only imagine that if it is free, there will be a whole new breed of virtual appliances born to the market and have a particular client side hypervisor company to thank for it.