GLB part 2: HAProxy zero-downtime, zero-delay reloads with multibinder
Blog post from GitHub
GitHub has introduced the GitHub Load Balancer (GLB), a system designed to manage the substantial scale of services run on GitHub.com by addressing the challenges associated with using HAProxy at scale. Previously, a single HAProxy instance managed all public services, resulting in a complex and lengthy configuration that was difficult to maintain. To improve this, GitHub developed a solution called multibinder, which enables the running of multiple isolated load balancer instances on a single machine, allowing for individual HAProxy configurations to be updated without downtime. Multibinder facilitates zero-downtime and zero-delay reloads by using shared LISTEN sockets, overcoming limitations in HAProxy's architecture without requiring architectural changes to HAProxy itself. This approach involves a parent process maintaining an open socket for new processes to inherit, ensuring seamless transitions during service reloads. The system is designed to work generically with any daemon requiring zero-downtime reload capabilities, and GitHub has provided examples for running multiple HAProxy instances using this method alongside systemd service templates.
No tracked trend matches for this post yet.
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.