Привет, Хабр!
Сегодня мы расскажем сообществу о запуске нашего нового сервиса — балансировщик нагрузки.
Сейчас услуга доступна для всех желающих в режиме открытого бета-тестирования в личном кабинете VDS. Это, конечно, бесплатно, а мы будем благодарны вам за комментарии и замечания.
![](https://habrastorage.org/webt/yp/da/kn/ypdakndnkqhy9mi7k2o6ba6h6s4.png)
Ребята, почему только сейчас?
Можете вполне резонно спросить вы. Мы, как и все, привыкаем к новой, постпандемийной (или еще нет?), реальности и отвечаем запросам наших клиентов.
Компании погружаются в тотальный онлайн, а значит, нагрузка на сервисы растет. Балансировщик распределяет входящие запросы на несколько серверов для повышения отказоустойчивости, а также он легко позволяет организовать масштабируемость любого приложения.
Особенно актуальна услуга будет, когда одна VDS уже не справляется с нагрузкой или вы просто хотите повысить отказоустойчивость приложения.
Как это работает?
Балансировщик переправляет клиентские запросы на доступные рабочие серверы из группы. Регулярно опрашивая состояние серверов, балансировщик понимает, какие серверы активны и доступны для обработки клиентских запросов.
Если один или несколько серверов из группы перестают отвечать, они исключаются из балансировки, и клиенты не попадают на нерабочий сервер. Как только такие серверы восстанавливаются — трафик на них автоматически возвращается, этим и занимается балансировщик, избавляя нас от необходимости самостоятельно следить за доступностью каждого сервера из группы.
Кроме того, благодаря возможности без труда добавлять новые серверы в группу, балансировщик обеспечивает горизонтальное масштабирование. Например, с ростом трафика или количества запросов вы можете добавлять новые серверы с вашим приложением в балансировку, и трафик начнет равномерно распределяться на всю группу, что позволит обрабатывать суммарно большее количество клиентских запросов.
Окей, это всё понятно, а как попробовать?
Вы можете создавать и управлять балансировщиками через панель управления VDS или с помощью нашего API, если вам нужно автоматизировать этот процесс.
В правилах переадресации задаем параметры проброса трафика, указываем входящий и исходящий порт, а также протокол трафика из доступных: tcp, https, http, http2.
![](https://habrastorage.org/webt/8u/k1/i-/8uk1i-fxh6nd0smg9wxxjoglyj4.png)
![](https://habrastorage.org/webt/bv/ej/7m/bvej7myewvqzdl9uukusrjjzxuw.png)
Далее вы можете выбрать один из двух доступных алгоритмов балансировки: Round Robin или Least Connections.
Какой алгоритм выбрать?
Round Robin — алгоритм, при котором серверы перебираются по кругу: первый запрос передается на первый сервер, следующий — на второй сервер, и так далее до последнего сервера, после чего цикл начинается заново.
Least Connections — алгоритм, при котором каждый новый запрос передается на сервер с меньшим количеством активных подключений.
Для автоматического контроля доступности ваших серверов можно указать параметры в разделе «Проверка доступности»: просто задайте порт и протокол, а также интервалы для фонового мониторинга доступности серверов.
Теперь остается только выбрать ваши VDS или указать IP-адреса серверов. Кстати, вы можете использовать балансировщик не только с нашими VDS. Мы будем только за!
Для каждого балансировщика мы выделяем 2 машины с haproxy, которые занимаются балансировкой трафика, вторая машина в этой схеме является резервной и позволяет исключить проблемы с доступностью самого балансировщика, чтобы он не становился единой точкой отказа для всей системы.
Всю работу по мониторингу и обеспечению доступности серверов, на которых находится балансировщик, мы берем на себя.
Расскажите про свой опыт использования балансировщика, нашего или любого другого, в комментариях. Интересно узнать ваше мнение.
Да начнется беспощадный бета-тест!
![](https://habrastorage.org/webt/wo/qf/6c/woqf6cweprtwtuq2m7jch92h5wk.png)