OK, Before the flames start let me state the usual caveat, "GSLBs don't ALWAYS suck, just most of the time".
Here at Loadbalancer.org we have toyed with the idea of selling a GSLB (as most of our competitors do), it wouldn't take long... to hack a decent PowerDNS interface onto one of our appliances...
But every time we look at how it would work, we keep coming back to the fact that it doesn't work at all (or at least not as the customer would expect).
Let me continue this rant by describing what customers probably want and then move onto what GSLBs actually do... and then suggest some simple alternatives:
UPDATE: We have changed the way we approach GSLB for our customers.
What do most customers want when they talk about GSLB?
- Active-Passive failover between two Internet sites (Disaster Recovery / High-Availability).
- Active-Active load balancing between two or more geographically dispersed sites i.e. Europe and USA. (Use closest site for Speed + High-Availability)
Sounds simple enough doesn't it?
But lets briefly step back to what we should have done first, which is make sure our primary site (or all sites for that matter) are as indestructible as possible:
Have you already got the following?
- 2 x Internet feeds
- 2 x Switch fabrics
- 2 x Firewalls
- 2 x Load balancers (no persistence/sticky here please we want high-availability after all)
- 3+ x Web Servers
- 2+ x Database Servers (Gee, I wonder if we could put the persistence here?)
If not go and do it before you ask me for GSLB!
Assuming you have done that already, great I can sell you some GSLBs as well (I'm going to make loads of money out of you).
Now a typical GSLB either sits in front of a load balancer or is part of one (if you are crazy). Now I'm going to explain what a GSLB is (and its quite simple):
GSLB (Global Server Load Balancer) = DNS (Domain Name Server)
Wasn't difficult was it?
When a client requests www.myGSLBsite.com your DNS/GSLB replies saying sure go to X.X.X.X
Now this can all quickly get very complicated with GSLB vendors saying "but we can do all this cool stuff as well"..But I say "Hogwash", I agree with everything Pete Tenereillo says about GSLB (well almost).
So going back to our customer request number 1 :
Q: How do I get Active-Passive failover between two Internet sites (Disaster Recovery / High-Availability)
A: Err... Just change your DNS record? Or write simple script to do it? Or get your DNS provider to do it?
Wasn't too hard was it? So how about Number 2?:
Q: How do I get Active-Active load balancing between two or more geographically dispersed sites i.e. Europe and USA. (Use closest site for Speed + High-Availability)
A: Make sure ANY user can hit ANY server at ANY time (session replication/ database replication), and then configure multiple A records in your DNS...
Who spotted the deliberate mistake?
Err... OK so it doesn't give you the local provider/ shortest hops etc, but if you read Pete 's document earlier you would realize that is impossible....
Don't believe the snake oil merchants (GSLB) vendors that say they have a solution.... (their solutions tend to involve double sided sticky tape and blue tack).
Q: So how can we get around that issue about fast access to local stuff?
A: Hmmm... I wonder what a Content Delivery Network is?
Akamai and others have made a lot of money by making sure your big files like picture and video's are replicated to edge networks around the world and guess what? They know what they are doing!
BTW Amazon cloud front does this and its dirt cheap...Who gives a monkey which application server they hit if the large datasets are served from an edge network?
Now I have rushed this a bit (no really?) and I've probably missed a lot of things (feel free to enlighten me) but that's my personal point of view...
On a more positive note though, If you are still serious about wanting to do this GSLB thingy then right at the bottom of Pete's famous rant you will find the possible answer...
I'm sure its the method that Google et al. do and it's this:
Use a global network of top level domain name servers with proper BGP agreements with all the other top level DNS providers + a simple health checking framework with least hop selection criterion (you can see this is getting expensive can't you?).....Then rapidly change BOTH the DNS entries and more importantly the physical IPs (BGP) depending on your geographical algorithms' etc.
So in conclusion Loadbalancer.org decided that rather than build a crappy GSLB like every other vendor we would copy Neustar's business model...
Any Venture Capital funds willing to give us $10,000,000 to set up a quick test environment?