Балансировка нагрузки становится облачной


Load Balancer, балансировщик нагрузки — это технология, которая позволяет распределять входящий трафик между несколькими используемыми серверами, тем самым не допуская перегрузки одного из них. Балансировщики были придуманы ещё пару десятилетий назад, но активное развитие технологии началось с появлением облачной инфраструктуры. Виртуализация серверного оборудования позволила создать системы автоматического распределению нагрузки в том случае, если какой-то сервер из группы начинает работать на пределе.

Востребованность облачных балансировщиков нагрузки объясняется довольно просто. Эксперты прогнозируют, что уже в 2022 году мировой трафик увеличится до 4,8 зеттабайта. Это неизбежно повлечёт за собой рост нагрузки на дата-центры. И без балансировщика сетевой нагрузки нормального функционирование таких объектов просто невозможно.

Аппаратные балансировщики, которые традиционно использовались во многих компаниях, из-за резкого увеличения трафика перестали выдерживать нагрузку. Из-за этого возникала необходимость наращивать объём используемого оборудования, заниматься оптимизацией «железа». А это — дополнительные расходы на аранду помещений и покупку оборудования.В результате традиционные балансировщики были вытеснены облачными решениями.

Зачем балансировать нагрузку?

Мы уже сказали выше, что балансировка нагрузки — это способ эффективного распределения рабочей нагрузки между пулом устройств. Без этой процедуры перегруженное оборудование может быстро выйти из строя. А это чревато остановкой бизнес-процессов компании, финансовому и репутационному ущербу.

Для критически важных приложений балансировщик ещё более важен. Ресурсы отдельного сервера всегда конечны, и если дать нагрузку больше, чем способно переварить «железо», можно получить сбой. Благодаря балансировщику устраняется единая точка отказа оборудования.

Ещё один плюс балансировщика — уменьшение износа оборудования. Функционирование на пределе совершенно точно не полезно для компьютерного железа. В спокойном режиме он проработает больше.

Балансировщики закладывают основу для создания управляемых сетей, способных закрыть потребности активно развивающегося в цифровой среде бизнеса, обеспечивают более высокий уровень производительности и безопасности для многих видов трафика и услуг, гарантируя стабильную работу приложений.

Как работает балансировщик

Представьте себе оживлённый перекрёсток с несколькими полосами движения. Если кто-то встанет на перекрёстке, то заставит стоять и другие машины. Машины едут со всех сторон, на перекрёстке становится теснее. И в результате образуется большая пробка. А всё потому, что пропускная способность одной дороги ниже, чем требуется в данный момент. Балансировщик в данной ситуации выглядит регулировщиком движения. Он следит, чтобы машины ехали равномерно, не мешая друг другу и не перегружая какую-либо из дорог.

Когда человек пользуются онлайн-сервисом, вне зависимости от используемого устройства у него есть только один способ доступа к нему — через IP-адрес или доменное имя. То, что происходит далее, от наблюдателей скрыто. Прозрачным остаётся лишь трафик от сервиса.

Load balancer

Это связано с тем, что традиционная форма балансировки нагрузки использует механизм преобразования сетевых адресов: NAT (Network Address Translation). Данная технология маскирует пул целевых серверов, на которые разделяются потоки трафика.

Исторически балансировщик нагрузки представлял собой физическое решение между пулом серверов и клиентским устройством. Балансировщик использует виртуальный IP-адрес (VIP) для приема трафика, и запросы пользователей «размазываются» по всему пулу серверов при помощи алгоритма балансировки. Этих алгоритмов несколько, мы расскажем о наиболее известных.

  • Round-robin. Также известен как алгоритм кругового обслуживания. Он довольно прост — все серверы в пуле получаются запросы по очереди. Например, сервер №1 обрабатывает первый запрос, сервер №2 — второй и так далее, по кругу. Данный метод хорош тем, что независим от протокола высокого уровня, недорогой в эксплуатации и не требует связи между серверами в кластере. Но при этом важно, чтобы все сервера имели одинаковый объём ресурсов. Загруженность того или иного узла в кластере не учитывается, а значит допускается перегрузка одного узла при недогруженности другого.
  • Weighted. Модернизированная версия предыдущего алгоритма. В этой системе у каждого сервера появляется свой коэффициент производительности в зависимости от его мощности и возможностей. Чем больше этот весовой коэффициент, тем большую нагрузку способен отработать сервер.
  • Least Connections. Этот алгоритм учитывает количество активных подключений, поддерживаемых серверами в конкретный период времени. Другими словами, он видит, какой сервер активно работает, а какой простаивает. И следующий запрос направляет именно туда, где обрабатывается наименьший объём трафика.

Load balancing algorithms

Облачный балансировщик нагрузки Cloud4Y умеет использовать разные алгоритмы, тем самым позволяя подобрать наиболее удобный вариант для каждого клиента.

Рекомендации по управлению балансировщиком

  • Используйте разные зоны доступности. Возьмите за правило создавать облачные ресурсы в нескольких зонах доступности. Это позволит гарантировать стабильную работу ваших приложений в случае, если одна из зон доступности выйдет из строя.
  • Стандартизируйтесь. Предусмотрите такую организацию облачных ресурсов, при которой количество виртуальных машин будет одинаковым в разных зонах доступности.
  • Создавайте запас. Даже в случае падения в зоне доступности одной из виртуальных машин трафик будет идти в прежнем объёме, что повысит нагрузку на оставшиеся рабочими сервера. Рекомендуем иметь «запас прочности» на этот случай, используя дополнительные ресурсы в каждой зоне доступности.
  • Один балансировщик под одно приложение. Если в вашей облачной инфраструктуре работает несколько приложений, безопаснее будет настроить отдельные балансировщики нагрузки для каждого.

Заключение

Современные решения балансировки нагрузки позволяют эффективнее и бережнее использовать серверное оборудование, при этом обеспечивая стабильность работы сервисов. Использование облачного балансировщика нагрузки (например, VMware NSX Edge), не позволяет сервера стать единой точкой отказа, повышая надёжность инфраструктуры.



Полезный материал?
2
0
автор: Андрей Огурчиков
опубликовано: 04.05.2022
Читайте нас: 
Последние статьи
Вверх!