As I have progressed in my career it’s been increasing hard to explain my job to people both inside and outside IT. There used to be a time when people in IT understood what I did… at this point most people really don’t understand what I do or why. I have given up explaining it to people I just say I work with computers. Two years ago while at VMworld the crew from VMware TV stopped me on the street and asked how do you explain virtualization to your mother. They totally stumped me. I am lucky my mother has some technology in her life. She recently got a nook and has discovered she can get books without leaving the house. For a woman in her 70’s she is about as technically savvy as I can expect. My religious studies have taught me that analogies can be a great way to teach. So I present my analogy to explain virtualization.
The Apartment building
Imagine with me that I have just bought a 30,000 square foot housing space. As the owner I could rent out this space to a single four person family. They would be very happy and have more space than they could ever use. It does present some critical problems. The family would have to be very rich in order to pay for my whole building. There is no way they could possibly use all the space so there would be lots of wasted space. In my case if the one family moved out I would have a huge expense that I would have to shoulder until I found another rich family who wanted 30,000 square feet. I have other issues unless I was very handy I would have to hire someone to fix and repair the apartment when things broke. This is an expense that is wasted when no one is living in the apartment. The cost for heating, cooling and powering the apartment would be a huge expense that I would pass on to my single family. At this point the power bill alone might force the family to move out, once again leaving me to shoulder the whole bill. In reality running a 30,000 square foot apartment building with a single tenant is a huge risk. In some neighborhoods it’s totally possible to rent out a space like this to a single family and make a huge profit, either because money is no object or they have some requirement that offsets the costs (like a home office).
The subdivided apartment
I prefer investments with less risk. After some examination I have discovered that in the neighborhood there is a demand for one, two and three bedroom apartments. Each type of apartment has some common components: bathroom, a living room and a kitchen. I create three standard configurations and start to subdivide my building into separate living spaces. Some of my living space is lost to overhead like hallways and doors. There are some shared area which represent a space saver for example stairs, elevators and laundry rooms. Making some area’s shared reduces the lost space to overhead. I may even consider putting in a pool on the roof to increase the price of my apartments individual rent and increase my profit. Each of the apartments have their own plumbing with sinks, toilets and showers. Once these shared components leave your individual space they join the building plumbing and water and utilize shared resources. It’s important that I take into account the total amount of possible shared utilization at the same time to avoid loss of individual services. After all if everyone flushes their toilet at 5:00 PM I cannot have the pipes get stuck. I have to be careful that the individual actions of a single tenant cannot create a failure for all other tenants. This is one of the key reasons why each apartment has their own water heater, we never want the actions of a single bad neighbor to affect everyone else’s experience.
What does the apartment have to do with virtualization
Virtualization is very much like the apartment. I have a large computer. Most of the time it’s 30,000 square feet is about 2% utilized. If I engineered the correct solution I could utilize the other 98% of wasted space. Much like humans my applications don’t like to live in the same space. Virtualization creates separate apartments for each service, these virtual apartments have some shared components and some individual components. For example I may have shared network connections, power, even portions of memory (hallways) and shared storage (laundry room) while I have my own water heater (reservation/allocation of resources). I may have a flash cache on my server (pool on the room) to improve the amenities and encourage higher rent. All of this is done in a fashion to protect the security of individual families and homes (hypervisor security). Virtualization has to take into account peak usage to avoid having the pipes filled with you know what at 5:00 PM. Much like my apartment I need to hire systems administrators to provide care and feeding to my virtualization, the more apartments I deploy the better my cost savings in theory (Yes I know there is diminishing returns when I need more workers)
What does virtualization not have to do with an apartment building
Virtualization brings a few key differences to the table over my apartment building. It is very costly for me to reconfigure my available space into larger to smaller apartments to fulfill demand, virtualization can do this on demand. If my apartment burns to the ground due to faulty wiring my families cannot be moved within minutes to another apartment nearby with their furniture and home goods intact. Virtualization can do that.
- Virtualization is like an apartment building created to make efficient use of large wasted space
- Virtualization has overhead due to shared components but the overhead uses what would be wasted space so it’s a net gain in most situations
- Virtualization has limits on shared components and should be sized correctly (no full pipes at 5:00PM)
- Virtualization is better than single homes in almost every way except one: It is still a shared resource and bad neighbors can still make it unlivable