Scale Applications by optimizing DNS Configuration

Love Sharma
ByteByteGo System Design Alliance
4 min readNov 24, 2021

--

The Domain Name System (DNS) plays a crucial role in the era of the internet. And the beauty of its design is that every engineer takes it for granted, that this will work — one of the best system designs and a lot to learn from this simple yet powerful solution.

We take for granted another robust and straightforward component is the Load Balancer. The LB acts as a middle-man between clients and servers; the client sends requests to LB and internally, via physical NIC to VIPs, forwards to attached servers. So what challenges do we see here? The Load Balancer itself, In your complex, robust system design, the Load Balancer will become a single point of failure. If LB goes down, your system goes down as well. You can add more complexity by introducing Zookeeper and having active-passive / active-active LBs logic, but that may be overkill.

Alternatively, Use DNS Load Balancing.

Brief about DNS Flow

About Diagram:

  1. ISP: Internet Service Provider: All your requests route through your ISP that helps to resolve the IP Address for the requested hostname. It will be the first lookup in the cache; if it misses, then delegate the request to DNS Resolver sitting inside ISP.
  2. DNS Resolver: It starts its journey by first sending a request to Root Nameserver to get the Top Level…

--

--

Love Sharma
ByteByteGo System Design Alliance

Love is an experience cloud engineer with a demonstrated history of building large scale enterprise application.