GitHub опубликует исходный код своего балансировщика нагрузки — GitHub Load Balancer (GLB)
GitHub ежедневно обслуживает миллиарды подключений к HTTP, Git и SSH. Для этого в компании создали своё решение — GitHub Load Balancer (GLB). Его Open Source-релиз запланирован на ближайшее время.
GLB — балансировщик нагрузки, разработанный внутри GitHub и запускаемый на «голом» железе (bare metal) для обеспечения лучшей производительности. Изначально администраторы сервиса использовали вертикальное масштабирование, используя небольшое количество производительных машин с HAProxy, но для этого требовалось специфичное оборудование, обеспечивающее выделенное подключение на 10 гигабит с failover. Со временем они пришли к необходимости создания балансировщика, который можно было бы запустить на типовом железе, доступном в типовом дата-центре. Так в прошлом году появился GitHub Load Balancer.
В основе алгоритма его работы — хэширование Rendezvous (еще известное как Highest Random Weight, HRW). Полученная реализация позволяет удалять управляющие (director) и прокси- узлы из ротации балансировщика без разрывов для пользователей, насколько это вообще возможно. GLB решил ряд задач, стоявших перед инженерами GitHub, среди которых не только горизонтальная масштабируемость, высокая доступность и поддержка connection draining, но и возможность внедрения как обычного ПО, тестируемость на любом уровне, устойчивость к типовым DDoS-атакам.
Авторы обещают, что «на протяжении нескольких последующих недель будет выложена архитектура и выпущены компоненты [GLB] как Open Source-проекта».
Дмитрий Шурупов по материалам GitHub Engineering, infoworld.com.