ћерион Ќетворкс

6 минут чтени€

—овременные веб-сайты и приложени€ генерируют большой трафик и одновременно обслуживают многочисленные запросы клиентов. Ѕалансировка нагрузки помогает удовлетворить эти запросы и обеспечивает быстрый и надежный отклик веб-сайта и приложений.

¬ этой статье вы узнаете, что такое балансировка нагрузки, как она работает и какие существуют различные типы балансировки нагрузки.


„то такое балансировка нагрузки?

Ѕалансировка нагрузки (Load Balancing) распредел€ет высокий сетевой трафик между несколькими серверами, позвол€€ организаци€м масштабироватьс€ дл€ удовлетворени€ рабочих нагрузок с высоким трафиком. Ѕалансировка направл€ет запросы клиентов на доступные серверы, чтобы равномерно распредел€ть рабочую нагрузку и улучшать скорость отклика приложений, тем самым повыша€ доступность веб-сайта или сервера.

Ѕалансировка нагрузки примен€етс€ к уровн€м 4-7 в семиуровневой модели OSI.

¬озможности балансировки:

  • L4. Ќаправление трафика на основе сетевых данных и протоколов транспортного уровн€, например IP-адреса и TCP-порта.
  • L7. ƒобавл€ет переключение содержимого в балансировку нагрузки, позвол€€ принимать решени€ о маршрутизации в зависимости от таких характеристик, как HTTP-заголовок, унифицированный идентификатор ресурса, идентификатор сеанса SSL и данные HTML-формы.
  • GSLB. Global Server Load Balancing расшир€ет возможности L4 и L7 на серверы на разных сайтах.

ѕочему важна балансировка нагрузки?

Ѕалансировка нагрузки необходима дл€ поддержани€ информационного потока между сервером и пользовательскими устройствами, используемыми дл€ доступа к веб-сайту (например, компьютерами, планшетами, смартфонами).

≈сть несколько преимуществ балансировки нагрузки:

Ќадежность. ¬еб-сайт или приложение должны обеспечивать хороший UX даже при высоком трафике. Ѕалансировщики нагрузки обрабатывают пики трафика, эффективно перемеща€ данные, оптимизиру€ использование ресурсов доставки приложений и предотвраща€ перегрузки сервера. “аким образом, производительность сайта остаетс€ высокой, а пользователи остаютс€ довольными.

ƒоступность. Ѕалансировка нагрузки важна, поскольку она включает периодические проверки работоспособности между балансировщиком нагрузки и хост-машинами, чтобы гарантировать, что они получают запросы. ≈сли одна из хост-машин не работает, балансировщик нагрузки перенаправл€ет запрос на другие доступные устройства.

Ѕалансировщики нагрузки также удал€ют неисправные серверы из пула, пока проблема не будет решена. Ќекоторые подсистемы балансировки нагрузки даже создают новые виртуализированные серверы приложений дл€ удовлетворени€ возросшего количества запросов.

Ѕезопасность. Ѕалансировка нагрузки становитс€ требованием дл€ большинства современных приложений, особенно с добавлением функций безопасности по мере развити€ облачных вычислений. ‘ункци€ разгрузки балансировщика нагрузки защищает от DDoS-атак, перекладыва€ трафик атак на общедоступного облачного провайдера, а не на корпоративный сервер.

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


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

Ѕалансировщики нагрузки наход€тс€ между серверами приложений и пользовател€ми в »нтернете.  ак только балансировщик нагрузки получает запрос, он определ€ет, какой сервер в пуле доступен, а затем направл€ет запрос на этот сервер.

Load Balancing

Ќаправл€€ запросы на доступные серверы или серверы с более низкой рабочей нагрузкой, балансировка нагрузки снимает нагрузку с загруженных серверов и обеспечивает высокую доступность и надежность.

Ѕалансировщики нагрузки динамически добавл€ют или отключают серверы в случае высокого или низкого спроса. “аким образом, обеспечиваетс€ гибкость.

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


“ипы балансировки нагрузки

Ѕалансировщики нагрузки различаютс€ по типу хранилища, сложности и функциональности балансировщика. Ќиже описаны различные типы балансировщиков нагрузки.

јппаратное обеспечение (Hardware-Based)

јппаратный балансировщик нагрузки - это специализированное оборудование с установленным проприетарным программным обеспечением. ќн может обрабатывать большие объемы трафика от различных типов приложений.

јппаратные балансировщики нагрузки содержат встроенные возможности виртуализации, которые позвол€ют использовать несколько экземпл€ров виртуального балансировщика нагрузки на одном устройстве.


ѕрограммное обеспечение (Software-Based)

ѕрограммный балансировщик нагрузки работает на виртуальных машинах или серверах белого €щика, как правило, в составе ADC (application delivery controllers - контроллеры доставки приложений). ¬иртуальна€ балансировка нагрузки обеспечивает превосходную гибкость по сравнению с физической.

ѕрограммные балансировщики нагрузки работают на обычных гипервизорах, контейнерах или как процессы Linux с незначительными накладными расходами на bare metal сервере.


¬иртуальный (Virtual)

¬иртуальный балансировщик нагрузки развертывает проприетарное программное обеспечение дл€ балансировки нагрузки с выделенного устройства на виртуальной машине дл€ объединени€ двух вышеупом€нутых типов. ќднако виртуальные балансировщики нагрузки не могут решить архитектурные проблемы ограниченной масштабируемости и автоматизации.


ќблачный (Cloud-Based)

ќблачна€ балансировка нагрузки использует облачную инфраструктуру. ¬от некоторые примеры облачной балансировки нагрузки:

  • Ѕалансировка сетевой нагрузки. Ѕалансировка сетевой нагрузки основана на уровне 4 и использует информацию сетевого уровн€, чтобы определить, куда отправл€ть сетевой трафик. Ёто самое быстрое решение дл€ балансировки нагрузки, но ему не хватает балансировки распределени€ трафика между серверами.
  • Ѕалансировка нагрузки HTTP(S). Ѕалансировка нагрузки HTTP(S) основана на уровне 7. Ёто один из наиболее гибких типов балансировки нагрузки, позвол€ющий администраторам принимать решени€ о распределении трафика на основе любой информации, поступающей с адресом HTTP.
  • ¬нутренн€€ балансировка нагрузки. ¬нутренн€€ балансировка нагрузки почти идентична балансировке сетевой нагрузки, за исключением того, что она может балансировать распределение во внутренней инфраструктуре.

јлгоритмы балансировки нагрузки

–азличные алгоритмы балансировки нагрузки предлагают разные преимущества и сложность в зависимости от варианта использовани€. Ќаиболее распространенные алгоритмы балансировки нагрузки:

Round Robin (ѕо-круговой)

ѕоследовательно распредел€ет запросы на первый доступный сервер и по завершении перемещает этот сервер в конец очереди. јлгоритм Round Robin используетс€ дл€ пулов равных серверов, но он не учитывает нагрузку, уже имеющуюс€ на сервере.

Round Robin

Least Connections (Ќаименьшее количество подключений)

јлгоритм наименьшего количества подключений предполагает отправку нового запроса наименее загруженному серверу. ћетод наименьшего соединени€ используетс€, когда в пуле серверов много неравномерно распределенных посто€нных соединений.

Least Connections

Least Response Time (Ќаименьшее врем€ отклика)

Ѕалансировка нагрузки с наименьшим временем отклика распредел€ет запросы на сервер с наименьшим количеством активных подключений и с самым быстрым средним временем отклика на запрос мониторинга работоспособности. —корость отклика показывает, насколько загружен сервер.

Least Response Time

Hash (’еш)

јлгоритм хешировани€ определ€ет, куда распредел€ть запросы, на основе назначенного ключа, такого как IP-адрес клиента, номер порта или URL-адрес запроса. ћетод Hash используетс€ дл€ приложений, которые полагаютс€ на сохраненную информацию о пользовател€х, например, тележки на веб-сайтах интернет магазинов.

Hash

Custom Load (ѕользовательска€ нагрузка)

јлгоритм Custom Load направл€ет запросы к отдельным серверам через SNMP (Simple Network Management Protocol). јдминистратор определ€ет нагрузку на сервер, которую балансировщик нагрузки должен учитывать при маршрутизации запроса (например, использование ÷ѕ и пам€ти, а также врем€ ответа).

Custom Load

«аключение

“еперь вы знаете, что такое балансировка нагрузки, как она повышает производительность и безопасность сервера и улучшает взаимодействие с пользователем.

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


—кидки 50% в Merion Academy

¬ыбрать курс