Home / Companies / GitHub / Blog / Post Details
Content Deep Dive

GLB part 2: HAProxy zero-downtime, zero-delay reloads with multibinder

Blog post from GitHub

Post Details
Company
Date Published
Author
GitHub Engineering
Word Count
964
Company Posts That Month
12
Language
English
Hacker News Points
-
Post removed?
No
Summary

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.

Trends Found in this Post

No tracked trend matches for this post yet.

Use This Data

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.