3 ms·
If you want to deterministically shift load, you use routing, not DNS, to manage your load. That’s what is missing from this discussion.
by numbsafari 6y ago
If you want to deterministically shift load, you use routing, not DNS, to manage your load.
That’s what is missing from this discussion.
- cortesoft 6y agoHow would you use routing to balance load at that granularity?
- EricE 6y agoRather easily. There are routing protocols designed for such things. Far more reliable than trying to hijack DNS for load balancing. Indeed the root DNS servers are not a single server but pools of geographically distributed servers via anycast.
- cortesoft 6y agoAnycast doesn't support percentage based load balancing unless you control all the hops between client and server, which is almost never the case if you are serving the public. Every request that comes from the same network is going to be routed the same way. Anycast works great for regional load balancing in general, but it doesn't work for subdividing individual networks.
- numbsafari 6y agoRather than get into a lot of details, here's some excellent starting points: [1] Google Cloud networking in depth: Cloud Load Balancing desconstructed - https://cloud.google.com/blog/products/networking/google-cloud-networking-in-depth-cloud-load-balancing-deconstructed https://cloud.google.com/blog/products/networking/google-clo... [2] What is AWS Global Accelerator: https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html https://docs.aws.amazon.com/global-accelerator/latest/dg/wha... [3] Tumblr: Hashing Your Way To Handling 23,000 Blog Requests Per Second: http://highscalability.com/blog/2014/8/4/tumblr-hashing-your-way-to-handling-23000-blog-requests-per.html http://highscalability.com/blog/2014/8/4/tumblr-hashing-your... [4] Load Balancing without Load Balancers: https://blog.cloudflare.com/cloudflares-architecture-eliminating-single-p/ https://blog.cloudflare.com/cloudflares-architecture-elimina...
- cortesoft 6y agoYes, I understand how anycast works (I work for an anycast based CDN). The issue is that you can't do percentage based routing with anycast... in fact, you can ONLY do shortest hop routing with anycast (at least for WAN anycast). That means that, while different edge networks can go to a different datacenter, every individual edge network will hit only a single datacenter. The key issue is that anycast is a very blunt tool. You are relying on your BGP announcements to route traffic, but you aren't actually in control of where a particular request goes.
- toast0 6y agoAnycast/BGP traffic engineering is not nearly as accessible as DNS based load balancing. There's several DNS providers you can use to add load balancing and health checks on top of your existing hosting, wherever that is (and you can do it yourself too). Using anycast for this means a specialty hoster, a third party in the data path between your clients and servers, or running your own ASN. I'm sure that gets more precise results than DNS, but it's also a lot more work, and it's harder to replace if the providers involved stop being a good fit. Determinism isn't necessarily required either. Probabilistic shifting works fine mostly.