Live data from Hacker News

Load Balancing without Load Balancers

blog.cloudflare.com

21–30 of 33 posts

Re: Load Balancing without Load Balancers

#21
Something that isn't quite clicking for me from this article, and my other knowledge of cloudflare...

So you have Nd DNS IPs, Nc Cache IPs, Np Proxy Ips and so on, plus some failovers. It seems to me you can only have Sum(Nsubscript) + M servers in any given pop. Which is all good, but I presume that the load on proxy and cache servers would be such that you'd need quite a few instances of each. Further, given the nature of cloudflare's services, it would seem that some CDNed sites would be heavier than others.

So how do you assign various sites to IPs? Is this via some dynamic DNS magic? Is there a lot of communication between proxy and cache instances at each pop (DHT or similar?).

Basically, what I'm saying is, using BGP to do most of the load balancing is awesome, but it seems there has to be more to it than that, otherwise you'd experience a lot of flapping between servers handling heavy sites.

That or I'm missing something, but what?

Re: Load Balancing without Load Balancers

#22

Something that isn't quite clicking for me from this article, and my other knowledge of cloudflare... So you have Nd DNS IPs, Nc Cache IPs, Np Proxy Ips and so on, plus some failovers. It seems to me you can only have Sum(Nsubscript) + M servers in any given pop. Which is all good, but I presume that the load on proxy and cache servers would be such that you'd need quite a few instances of each. Further, given the na…

Yes, we control DNS as well so we can use that to further spread load and move traffic as needed.

Re: Load Balancing without Load Balancers

#23

Something that isn't quite clicking for me from this article, and my other knowledge of cloudflare... So you have Nd DNS IPs, Nc Cache IPs, Np Proxy Ips and so on, plus some failovers. It seems to me you can only have Sum(Nsubscript) + M servers in any given pop. Which is all good, but I presume that the load on proxy and cache servers would be such that you'd need quite a few instances of each. Further, given the na…

You anycast the dns servers and anycast the results the dns servers serve up. This is kinda confusing, but all it is really is announcing your (same) IP block at every datacenter and relying (maybe selling/) on bgp AS path selection as the app to get traffic to the closest datacenter.

Re: Load Balancing without Load Balancers

#24
post #4

Earlier quoted context omitted.

Since this is all for a anycast system it might be better to have more POPs at more locations instead of trying to make a single POP bulletproof by doubling up on what could be the single largest capital expense in building a POP.

This is generally our philosophy.

LOL.

Re: Load Balancing without Load Balancers

#25
post #8

Why not also use software load balancers? I don't see the advantage of going to so much effort to avoid software load balancing. It's neat that you guys got it to work, but I would think that a hybrid system would have more functionality and could better handle degraded performance situations.

What do you mean? Isn't the reason to push it off to the router that routers scale up like crazy? Whereas doing more even 40Gbps linerate on a server is nearly impossible without specialized hardware. Even 10gbps linerate can be a lot of work as of a year ago.

And if the routers LB to a bunch of software nodes, then aren't you sort of in the same position?

Can you help me understand?

Re: Load Balancing without Load Balancers

#30
post #12

If a particular server starts to become overloaded, and it appears there is sufficient capacity elsewhere, then just some of the BGP routes can be withdrawn to take some traffic away from the overloaded server I'd be interested to hear about the mechanism for determining if there is sufficient capacity elsewhere, and how you avoid a cascading failure.

I'm interested in finding out what happens to tcp sessions that were established when routes are withdrawn.
Post reply on HN