1

I have discussed a scenario here that our company is using and would like some input if possible.

We have a main url for a site, call it "http://www.site.com". At some point during its inception, it was decided that the site will be load balanced active/active across two physical data centers. This was accomplished at the time by having the network device return a 301 redirect to either "https://site1.site.com" or "https://site2.site.com". Obviously this does not seem to play nice with search engines, as when you search for the site, you are getting the site specific results for the redirect at the time of crawling, when marketing wants the main www.site.com to always show. I'm curious what would the proper way to implement a solution such as this?

Lee
  • 13
  • 1
  • 4

4 Answers4

2

"This was accomplished at the time by having the network device return a 301 redirect.."

That, my friend, is not load balanced across two datacenters. That is one device, sitting at one of them, redirecting clients.

What you should be looking at is using one (or two for local failover) loadbalancers at each site, prefferably something that can update DNS and have GeoIP logic (comes very handy when you're located at large geographical distances).

I personally use KEMP load balancers, and I can highly recommend them: http://www.kemptechnologies.com/uk/server-load-balancing-appliances/geo-loadmaster/glm-overview.html

pauska
  • 19,532
  • 4
  • 55
  • 75
1

What about using load sharing with DNS?

www.site.com     1.1.1.1
www.site.com     1.1.1.2
www.site.com     1.1.1.3
migabi
  • 154
  • 3
  • If the site uses sessions (login state) then that's unreliable. Most sites need sessions. –  Sep 25 '11 at 15:09
1

The 'good' way of doing "Global Server Load Balancing" (GSLB) is multiple data centers (DC's), each with edge routers advertising the same IP address range, using BGP to select shortest path -- aka Anycast.

The cheaper version is often using identical load balancer appliances (LB's) with a 'GSLB' addon at each location, where the LB's exchange a heartbeat, and fail over using DNS 'tricks' (for lack of a better word).

I would respectfully suggest that you negotiate the multi-DC requirement away, or at least secure funding for a serious effort. Good multi-DC deployments are not easy to set up, and require large'ish upfront investment in equipment (routers) and expertise. Replicating the databases and changing data sets is usually very hard.

One possible workaround might be Amazon Elastic Load Balancer (ELB) together with moving to Amazon EC2. ELB has some provisions for spanning multiple Amazon 'Availability Zones', and EC2+ELB is cheap compared to DIY multi datacenter failover.

0

If you have the money to spend I would look at implementing something like a Cisco GSS or an F5 GTM at both sites, and having DNS delegated to them.

Essentially it works by pointing your A record for www.site.com at the GNS/GTM's, which you in turn have configured with the IP addresses of your web servers or their VIP addresses, along with their location. When a client does the DNS lookup for www.site.com the GSS/GTM will then return the IP address of the appropriate server/VIP.

Load balancing can be done of a round robin basis, by geographical location, by performance metrics or by load, or by having an active and a DR datacentre - basically all of the same principals that apply to load balancing.

paulos
  • 1,694
  • 9
  • 12
  • We actually have GSS's in place, both on the web side and behind the proxies load balancing the application servers as well. I'm not on the network team, but I overheard them talking about this and just didn't understand why it's that way, or how it should be. I believe part of the problem they are having may be due to the lack of a sessionDB to handle sessions? Sorry for asking such an open question originally, but everyone has been a good help with your answers. – Lee Sep 20 '11 at 16:47
  • I'm surprised you're using GSS to directly load balance servers, it doesn't seem fit for that purpose - are you sure you don't mean CSS? GSS can maintain a session database of sorts - it's known as stickyness: http://www.cisco.com/en/US/docs/app_ntwk_services/data_center_app_services/gss4400series/v1.2/configuration/guide/Sticky.html#wp1176963 – paulos Sep 20 '11 at 19:31