Thursday, July 31, 2008

Carpooling Vs Virtualization

I realize that my previous post was a little bit too technical to get the message across to a wider audience. So, I decide to use a simple metaphor: What if carpooling was like virtualization?

First, let’s define Carpooling:
Instead of driving alone in your car, you share a vehicle with one or more persons. Benefits include:
  • reducing carbon footprint
  • reducing the amount of cars on the road
  • collateral : reducing traffic congestion and traffic jam related pollution
  • reduce gas consumption
  • we optimize car efficiency (maximise resource usage)
  • reduce infrastructure
We can see here the similitude between carpool and virtualization:
  • Instead of persons sharing a car , we have virtual machines sharing one physical server
  • We optimize physical server efficiency by maximising resource usage
However the similitude stops here, while carpooling try to remove cars from roads, virtualization doesn't remove server from datacenters. Datacenter floor space is expensive, as consequence, datacenter's owner try to maximise its occupation and efficiency.
To stick to the carpool metaphor, instead of removing cars from the roads, we are just putting more people on the roads while maintaining the same amount of cars. And since vehicles have to transport a heavier load they consume more gas and as consequence pollute more.
We optimize roads usage not server usage. However, some company are applying carpooling metaphor at the datacenter level. These companies have in house datacenters and reduce their numbers by consolidating services within fewer datacenters (reducing the amount of roads ...). But, the number of datacenter consolidated is still marginal compared to the number of datacenters build in the same amount of time.


However, to be totally honest, virtualization technology has some positives side effect on the environment. It still limits the increased environmental impact associated with the exponential IT growth driven by market demands. It reduces the amount servers needed to deploy new services by optimizing their efficiency.