DNS Infrastructure at GitHub
May 31, 2017Joe Williams

Summary
This post details the design and implementation of a new DNS infrastructure at GitHub to address limitations of the previous system, including scalability, visibility, and availability issues. The new architecture introduces a tiered design with isolated roles: caches (recursive resolvers), edges (DNS authorities for zone transfers), and authorities (hidden masters storing data in MySQL). It leverages Anycast for cache accessibility, regional edge hosts for local zone copies, and an HTTP API for record management. The post also highlights the selection of Unbound, NSD, and PowerDNS for their metric capabilities and discusses the operability improvements, including enhanced observability and resilience against connectivity issues.