I’m in the middle of reading Balancing Agility and Discipline and I keep getting distracted by this thought… hopefully I can get it out of my head…
I was speaking yesterday with a hosting company that hosts web sites for organizations. They have a niche where they serve largely mid-market organizations. We were discussing their movement into load balanced web servers and database clusters. One of the comments the CTO made was that they had never had a need to move to a load balanced environment to handle the traffic on their web sites. They do have one very large web site so his statement makes sense based on the fact they’re seeing solid volume.
However, what struck me is that volume and capacity rarely drive the decision to move to load balanced front end web servers and a clustered database. Nearly universally this decision is made for reliability.
This was made clear to me by one of my enterprise clients. ( and I do mean enterprise, their consumer brands are something I can virtually guarentee you have in your home if you’re in the US.) We were talking about the two server load balanced web servers we put together and he mentioned that they’re running like champs. They host nearly 50 sites. I don’t know the number of total hits per day but it’s not a trivial number.
So why are they on a load balanced web farm? Uptime. Most of it is reliability with a small percentage of the decision coming from the ability to deploy new versions of the web site and roll back if necessary. Sure someone likes to think that it’s performance but it isn’t.
Today’s hardware can handle a lot of web hits. Particularly with a well written application — so if you’re thinking about whether you need load balancing — and back end clustering of your database — evaluate the decision from the perspective of reliability — not performance.