We see application virtualization software emerging more and more in the enterprise with products like Microsoft Application Virtualization and Citrix Application Streaming. I think if there’s a scenario where application virtualization would be well received, it would be for home use of software. This would have few advantages for the users.

First of all, the stability of their PC would most likely increase as each applications operates in a sandboxed environment, which can avoid a lot of headaches. No more complicated setup and configuration for end users as well. Just click on the icon and there it is. Installing an application of IT pros seems like no big deal, but for users at home, it’s a risky operation. Just deploy a stable base operating system image and the user is set.

Another upside to this model, is related to SaaS, as users could only pay for their actual usage of the software. For instance, when I’m at home, I’m not using Microsoft Office 100% of the time, I might only need it a few hours per week. I’m having a hard time paying a few hundred dollars for my copy Office for the usage I have for it at home. I’d much rather pay 100$ for a bank of 10 hours of use per month.

 Hopefully software vendor will get their act together as they did with full OS virtualization. As this article points out, we have a bit of way to go: http://www.news.com/Microsoft-Streaming-Office-infringes-license/2100-1012_3-6229776.html

When you have something like application virtualization, a published desktop or application via Citrix or Terminal Services, why whould you want to build web versions of application like what Google is trying to do with Google Docs?

I’ve been using VMWare ESX since version 2 and one of my favorite features is the combination of DRS (Distributed Resource Scheduler) and VMotion. After using it in production for a while, I noticed that DRS could be improved. One thing I saw is that the cluster was not balancing CPU and memory load properly accross all nodes. I could have nodes using 80% of their memory with a decent CPU load while others were sitting at 40% memory usage even with the most aggressive DRS settings. What I would like to see in DRS is smarter load balancing. For instance ESX could detect that a certain VM has a high CPU or I/O usage every night and issues a VMotion accordingly before the peak usage. It would be nice to setup priorities for such type of loads. One example that comes to my mind is SharePoint. You usually schedule document indexing during the night, this is typically not a high priority job but during the day you want to be able to deliver good response time for users while they navigate and query the search engine. In that case you could define a time range that specifies the priority a certain VM has over others. This way you could better load balance VMs accross the cluster. For example VMs that are mostly idle could be regrouped on a limited set of nodes and the ones performing intensive operations distributed appropriately on the remaining nodes during that period. It would be interesting to see if data mining of the data in Virtual Center could discover load patterns and correlation between VMs to enhance DRS functionnality.