Tuesday, April 17, 2007

Is Virtualization just hype?

Today I talked to someone who had worked on virtualization technology a long time before VMWare, who I consider the x86 virtualization pioneer, was around. He thought today's hype around virtualization technology was not justified as the technology has been around for years. This isn't the first time I've heard this opinion. Many people go back even further being familiar with virtualization on the IBM mainframe.

For those who read InformationWeek it's evident though that I am a big fan of virtualization and by nominating VMWare for Charlie Babcock's InformationWeek article "Greatest Software Ever" I might have even done my small share of contributing to the hype.

I do think there are some very good reasons why I actually do buy into the hype around virtualization. I actually think it's very similar to what happened with Web Services although in a less condensed timeline. Web Services very much originated from Enterprise integration needs which the big software players were trying to resolve. Around 1998 they started to seriously work on developing standards for such services and by 2000 many vendors had shipped solutions. Most of you probably remember that for around 3-4 years there was very little mainstream adoption of Web Services although Enterprise customers were adopting them by working with the likes of IBM & Sun. Then at some point, the broader Web development community realized the value in Web Services and started to implement them at which point Web Services enjoyed quite a large hype factor. That was the time where people were saying the same about Web Services as people today are saying about virtualization. Yes, Web Services had been around for a few years prior to this, but in my opinion, the real value only became apparent when the mainstream developer community adopted, expanded and simplified the Web Services solutions including defining RSS, ATOM & REST based interfaces, exposed large amounts of consumer data via Web Services, and the popular notion of mashups was born.

The beauty of this process is that I believe it is in fact cyclic. While Web Services started in the Enterprise and then reached the broader community, the latter is actually best at exponentially increasing the value of such a technology by simplifying it for public consumption, developing a large eco-systems around the solution and coming up with new innovative ways of applying the technology. Now we are actually seeing the cycle come to an end as Enterprises are re-adopting a lot of the innovation in the space which has become much more productive and useful.

I believe similar is true for x86 virtualization. While virtualization has been around for years and years, x86 virtualization will lead the true revolution. There are many reasons why this would currently happen. Foremost, we are at a time where CPUs and servers in most cases are not fully utilized as the hardware has in many cases become too good and the hetergenous environments we live in often don't allow running more than one application the same server. This leads to many more spare cycles than we have had in the past. Data centers are also dealing with an increasing amount of applications and platforms and as a result server provisioning and management is becoming increasingly a bigger challenge. In addition there is a huge mainstream x86 community out there which is making significant investments to simplify, expand and innovate virtualization solutions. So similar to my Web Services example I believe that a lot of the true innovation on top of virtualization is actually happening now and not in the previous mainframe and other environments where these solutions were geared towards resolving specific Enteprise problems. While some of the innovation might still seem to be basic like the ability to do multiple snapshots and ability to manage resources more dynamically there are some very interesting trends in the space including ability to move running virtual machines between servers & ability to patch systems whether they are running or shutdown.

Actually I think some of these developments just scratch the tip of the iceberg. At the end of the day by running in a virtualized environment you are allowing systems to look into your virtualized servers in a non-intrusive way opening up a lot of interesting opportunities for various management related solutions. Whether you detect and optimize repeating memory pages and therefore optimize server resources or develop a new family of management tools which can monitor the system directly for performance, reliability or security purposes in a non-intrusive way. The latter I think is the most interesting as you can now much more easily "look" into the OS and its applications without having an installed driver, but just by peeking at it from outside the virtual machine itself. These are just a small amount of examples of how the huge industry investment in virtualization can significantly change the way we deploy and manage software.

Time will tell if I'm right or not, but I do believe there will be a lot of innovation in the space by people who will know how to use some of the characteristics of virtualized environments to their benefit. It probably won't take more than 2-5 years to see some very cool and innovative ideas appear.