Really? If you can't understand this, or why it's better than almost all other architectures for massive horizontal scaling you're not thinking it through.
I've run similar setups utilizing ECMP -> HAProxy -> content servers, that scaled into the multi-terrabit range.
My junior level sysadmins understood how it worked, and it's a hell of a lot nicer to be able to run L3 to every access port and not deal with epic hacks like DSR and other extremely hard to troubleshoot stuff on L2.
It can be explained basically as "see this process 'bgpd' running? That is what tells the traffic to come to this load balancer - kill it and the traffic goes away, start it back up and it comes back". From there, the config stuff is trivial and it's just another HAProxy instance.
The hardest part of implementing such a solution is coming up with sane service checking scripts. You want to down a single HAProxy instance should it be having issues, but you certainly don't want to down every single one should all your webservers alert at the same time (e.g. application update fail, or whatever). We had ours setup with very basic healthcheck scripts for BGP (is haproxy alive? is it answering requests? stay up!), and then much more complex checks haproxy did itself on the webservers - with paths of last resort and the like.
This architecture also scales great when you put your big boy pants on and need to start doing anycasting. You pretty much already have the architecture setup for it, you just need to change some IP's and how you do route aggregation in each PoP for your anycast space. It's a great feeling when you can down an entire PoP and traffic instantly moves over to the next closest, then comes right back after maintenance.
I have yet to see a more simple, concise, and reliable architecture for serving up massive amounts of HTTP. Once you get into the 100gbps+ range, the usual vendor offerings are laughable considering the costs. I would say based on most vendor demos we did, the BGPd+HAProxy solution was far easier to understand and administer at a large scale.
DNS RR to horizontally scale needs to finally die off. ECMP is a great way to retain full control over your traffic flow, and is essentially "free" on any modern networking gear that you already have.
I've run similar setups utilizing ECMP -> HAProxy -> content servers, that scaled into the multi-terrabit range.
My junior level sysadmins understood how it worked, and it's a hell of a lot nicer to be able to run L3 to every access port and not deal with epic hacks like DSR and other extremely hard to troubleshoot stuff on L2.
It can be explained basically as "see this process 'bgpd' running? That is what tells the traffic to come to this load balancer - kill it and the traffic goes away, start it back up and it comes back". From there, the config stuff is trivial and it's just another HAProxy instance.
The hardest part of implementing such a solution is coming up with sane service checking scripts. You want to down a single HAProxy instance should it be having issues, but you certainly don't want to down every single one should all your webservers alert at the same time (e.g. application update fail, or whatever). We had ours setup with very basic healthcheck scripts for BGP (is haproxy alive? is it answering requests? stay up!), and then much more complex checks haproxy did itself on the webservers - with paths of last resort and the like.
This architecture also scales great when you put your big boy pants on and need to start doing anycasting. You pretty much already have the architecture setup for it, you just need to change some IP's and how you do route aggregation in each PoP for your anycast space. It's a great feeling when you can down an entire PoP and traffic instantly moves over to the next closest, then comes right back after maintenance.
I have yet to see a more simple, concise, and reliable architecture for serving up massive amounts of HTTP. Once you get into the 100gbps+ range, the usual vendor offerings are laughable considering the costs. I would say based on most vendor demos we did, the BGPd+HAProxy solution was far easier to understand and administer at a large scale.
DNS RR to horizontally scale needs to finally die off. ECMP is a great way to retain full control over your traffic flow, and is essentially "free" on any modern networking gear that you already have.