4 ms·
Cloudflare deploys software load balancers in all its datacenters, with every machine capable of acting as an LB for every other machine (and itself) within the
by matsur 5y ago
Cloudflare deploys software load balancers in all its datacenters, with every machine capable of acting as an LB for every other machine (and itself) within the datacenter. More here: https://blog.cloudflare.com/unimog-cloudflares-edge-load-balancer/ https://blog.cloudflare.com/unimog-cloudflares-edge-load-bal...
Unimog is key to making the deployment described in the paper work.
Another way of thinking about this is that we have a single virtual load balancer (backed by all the physical machines in the DC) sitting in front of services that transform/terminate/filter/etc customer traffic.
- omegalulw 5y agoThanks! I am more curious about the physical aspect of it. How do you get multiple switches to share an IP? What determines with switch forwards the packets? Like, simply, what wires connect to what?
- kijiki 5y agoYour switches run a routing protocol (almost always BPG) and your load balancers all announce the same IP to them. This results in a routing table with many next hops for the LB IP, and traffic is distributed across them using ECMP, typically with some resilient hashing scheme so that a given flow will always go to the same physical LB, even if there are topology changes due to LB or switch failures. At the edges, your switches or border routers announce the IP to all your peers and transit ISPs.
- matsur 5y agoYes, this. The beauty of the Unimog setup we run in production is we are resilient to ECMP rehash events — each server acting as a load balancer has access to state (backed by Consul) that tells it which flow belongs to which application server.