Sporadically delivered thoughts on Continuous Delivery

What's Cool About Virtualization?

| Comments

How would you like to cut your annual server farm budget to a fraction of its current cost, reaping the glory and gold due to a corporate IT champion? Lop your data center to a third of its current size, no a fifth, maybe less! At the same time, you can improve resiliency, flexibility, and potency!

Consolidation is the main selling point of virtualization. You may be able to use a single box to do the same work currently being done by some number (wave hands here) of boxes. Although licensing costs of virtualization software may range up to $5,000 or more, and the boxes will probably need to have more muscle and so cost more, if you can get the ratio of virtual machines to physical machines high enough, you probably can cut your costs.

There are a few keys to this, and some spinoff benefits.

Virtualization isn’t likely to help you consolidate servers that are groaning under their workload. But in most data centers, the majority of servers aren’t working all that hard. You have them because they’re doing some essential service, and probably it’s a service that for some reason or other shouldn’t be crowded onto the same system with others. Different versions of software, libraries, OS, or whatever mean it needs its own machine.

You try to minimize the hardware you devote to it, put it on a single CPU 1U server, but that’s still a fair amount of overhead. Then there are failover servers, staging servers, and various other machines that are usually idle, but need to be right on hand.

So you can have these as virtual servers, sharing a physical box but not using much of its resources unless called to duty.

How much savings you can get from server consolidation will largely depend on how many servers you have which are underutilized.

In my farm, I’ve got plenty of these. I’ve got staging servers configured with different sets of OS and application software, to replicate client environments. I’ve got a server running LDAP, email, and DNS, which almost never returns a number higher than 0.02 when I run uptime. My Apache servers also don’t work very hard, but I need two machines devoted to these.

So I’m sure I could compress my running services onto a smaller set of hardware.

Once I’ve done that, I ought to be able to balance those images between physical boxes to make the most efficient use of my resources. This might be aided by splitting out some things currently on the same system. For instance, my email, LDAP, and DNS servers might each get their own virtual image, so they can be more finely balanced, and also to reduce their interdependence. I can upgrade or replace my DNS server without worrying about breaking a library needed by my LDAP server.

This could be a lot of work, but the better (and more expensive) virtualization tools can make it easier, and even automate it.

This said, there are a number of hidden traps which might make it harder to get these benefits. I’ll follow up with my thoughts on what these are.