nixp.ru v3.0

5 ноября 2024,
вторник,
07:52:57 MSK

27 сентября 2016, 18:31

GitHub опубликует исходный код своего балансировщика нагрузки — GitHub Load Balancer (GLB)

Логотип GitHub Load Balancer
Логотип GitHub Load Balancer
Иллюстрация с сайта GitHub Engineering

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-проекта».

Постоянная ссылка к новости: http://www.nixp.ru/news/13786.html. Дмитрий Шурупов по материалам GitHub Engineering, infoworld.com.

fb twitter vk