... and we are living in a virtual world and I am a virtual ...

Posted by Ian Holsman Fri, 10 Nov 2006 14:45:00 GMT

Recently I’ve been thinking about virtualization.

Initially I thought it was a slam dunk. it would make it nice and easy to maintain a system which consists of multiple load balanced tiers/applications…

if you need to increase the capacity of a given tier you would simply install the image on another box, and away you go, checkpointing would allow you to recover from a crash and just move the images to another machine.. it sounds like nirvana.

but I actually thought about it a bit more. The first thought which came to me was OS license costs. Right now the ‘standard’ practice where we are is to run multiple applications on a machine, and share the OS. .. but with virtualization you wouldn’t do this, and would then need 1 license per virtual instance… which might make it more expensive. (I haven’t checked the licensing agreements, but I don’t think they have a clause about virtual OS in there yet)

what virtualization means to me is more logical machines. and that in turn brings other management headaches.

how do you monitor them?

all of a suddenly previous uncorrelated applications can interact with each. The standard “it’s slow” that you get from a user can now mean that the slowness is not being caused by the application components anymore, not to mention the sheer number of extra data points you will need to look at and collect (as each logical OS will have it’s own CPU and memory stats).

do you care about the checkpointing?

most of the transactions I see are OLTP. they last for a couple of seconds, and if the machine goes away while we are processing we don’t care… we ensure we are always in a consistent state at other layers, and the user will have to re-login (it’s painful, but hardware doesn’t break down too often). so this checkpointing feature doesn’t really give me anything.

Instant capacity?

The other neat thing I hear is about how easy it is to just add a instance when a tier gets overused. I’m not sure if this is a practical thing either. In most cases we have a hardware load balancer which separates the tiers of a application, and we avoiding changing them as much as possible. (network load balancers seem to be the most unstable/fragile pieces of equipment in my experience).. so adding extra instances is not going to be that easy.

provisioning and configuration.

While I have seen some pretty good procedures to do provisioning at CNET, it was by no means perfect, or completely automated. when push came to shove, we could get a new machine up and running in a couple of hours… I don’t see this changing with virtual appliances.

so while I think virtualization is a neat idea, i think there things you need to get in place before you even think about it. Provisioning, load balancing, and monitoring for a start.

Posted in  | Tags  | 3 comments | 1 trackback