I found myself in an interesting Email exchange with a number of people. The topic of conversation was "does Google use virtualization?" I was fascinated when several people asserted that Google didn't use virtualization based upon Google's own statements.
I suppose that would be true if one was working with the belief that visualization was equal to the use of virtual machine software to create virtual servers, virtual clients and the like. This, after all, is what makes these types of discussions so interesting and so much fun.
Virtualization is more than the use of virtual machine technology
Over the last 35 or so years of IT history, however, virtualization has been a term used to speak about many different types of technology (see Sorting out the different layers of virtualization
for more information on the model I use to examine virtualization technology). Virtual machine software is only one of five different types of technology in the virtual processing layer and that, in turn is only one of seven different layers of virtualization technology. When viewed from outside, it is clear that Google is using many different types of virtualization technology.
Let's look at what virtualization technology Google must be using
- Access virtualization - Google makes it possible for an individual to access many different applications from just about any type of intelligent device over just about anyone's network without having to know where that application is hosted, what operating system that server is running or even where that server is located.
- Application virtualization - Google has developed its own technology making it possible for many instances of a given application to be running inside of Google's network. An individual has no idea where the given instance he/she is using is running. If one instance of an application fails, all one needs to do is attempt to access it again and another instance will be found. That being said, some applications, such as Gmail, have suffered embarrassing failures which have been attributed to failed software update procedures or network outages.
- Processing virtualization - Google has developed its own workload management software that allows multiple instances of applications to reside on different hosts in different places in its network. If something fails, the individual requesting a given application is connected to a different instance.
- Storage virtualization - Google has developed applications so that the data and the application rules processing reside on different, often redundant, systems in the network. It is pretty clear that applications do not need to know where and on what media type the data lives.
I could probably dive deeper into this speculation, but I think the point has been made. Google is making heavy use of many types of virtualization technology.
When someone brings up the topic of virtualization, do you automatically think "virtual machine software" rather than using a broader definition?