Company
Date Published
Author
Joe Williams
Word count
1462
Language
English
Hacker News points
None

Summary

GitHub recently overhauled its DNS infrastructure to address scalability, visibility, and operational challenges, transitioning from a simple system to a robust, modern architecture designed to support its growth across multiple data centers. The previous system, which involved local DNS caches and a pair of hosts acting as both caches and authorities, faced issues with performance, availability, and lack of metrics, making it difficult to troubleshoot and scale. The new design introduces a tiered architecture with isolated roles for caches, edges, and authorities, each serving distinct functions to improve resolution speed and reliability. The caches act as recursive resolvers, the edges serve as regional hosts for external connectivity, and the authorities manage DNS data and API access. This setup enhances observability with detailed metrics and logging, implemented using Unbound, NSD, and PowerDNS, and supports both internal and external zones, ensuring resilience during connectivity issues. Additionally, the new system allows for a deploy-based workflow and automated API-driven changes, facilitating operations without external dependencies and providing flexibility for future scalability. This transformation not only addresses previous operational issues but also prepares GitHub's DNS infrastructure for continued growth and stability.