GitHub has released the code of its load balancing solution. Called the GitHub Load Balancer (GLB), the new program was internally developed to accommodate HTTP, Git and SSH connections.
“Historically one of the more complex components has been our load balancing tier,” write Joe William, GitHub senior infrastructure engineer, and Theo Julienne, GitHub infrastructure engineering manager, in a co-authored blog post. “Eventually we needed a solution that was scalable and we set out to create a load balancer solution that would run on commodity hardware in our typical data center configuration.”
GitHub decided to develop GLB when traditional loading-balancing platform hit its limit. The new platform meets individual goals including horizontal scaling, support of connection draining and resilience to DDoS attacks. Developers worked on the relationship between IP addresses and hosts to enable load balancing. And thus, the GLB is designed in a way to improve the common pattern of the traffic director tier.
GitHub explored all the possibilities of the L4/L7 split to balance nodes in two tiers. Finally, it solved the problem by leveraging an algorithm that manages proxy connections called Rendezvous hashing. The algorithm allows a response to go from proxy node to the client in GLB.
GitHub’s GLB could soon emerge as a one-stop solution for web-based enterprises. In the meantime, the company is set to provide some interesting tutorials to show how it managed to migrate from the original technology to the advanced system without any noticeable distortion in the repository site.