Балансування навантаження (Load Balancer) – це метод, який гарантує, що сервер вашої організації не перевантажений трафіком. Це визначення відноситься до ефективного розподілу вхідного мережевого трафіку по групі фонових серверів, також відомих як серверна ферма або пул серверів.

Операція виконується фізичним або віртуальним пристроєм, який визначає, який сервер в пулі найкраще задовольнить запит клієнта. При цьому важкий мережевий трафік не перевантажує систему. Крім того, метод передбачає аварійний вимикач між пристроями. Тому, якщо один з серверів виходить з ладу, балансир відразу перенаправляє навантаження на резервний сервер, тим самим зменшуючи негативний вплив на кінцевих користувачів.

Для чого потрібен Load Balancer?

Load Balancer – це сервіс, який допомагає серверам ефективно переміщати дані, оптимізує використання ресурсів доставки додатків і запобігає перевантаженню. Він управляє потоком інформації між локальним або хмарним сховищем і кінцевим пристроєм – ПК, ноутбуком, планшетом або смартфоном. Ця служба виконує безперервні перевірки справності серверів, щоб переконатися, що вони працюють. При необхідності балансир видаляє невдалі сервери з пулу. Контролери доставки додатків (ADCs), включені в баланс, пропонують багато додаткових функцій, таких як шифрування, аутентифікація та брандмауер веб-додатків, створюючи єдину точку контролю для захисту, управління та моніторингу веб-сервісів.

Ці додаткові функції включають:

  • Функція розвантаження – захищає від розподілених атак відмови в обслуговуванні (DDoS)
  • функція прогнозної аналітики – ідентифікує вузькі місця трафіку, перш ніж вони виникнуть.
  • функція запуску нових віртуальних сховищ даних при перевищенні лімітів вхідного трафіку.

Балансири можуть бути як окремими фізичними апаратними пристроями, так і поставлятися як програма. Апаратні пристрої працюють на базі програмного забезпечення, оптимізованого для спеціалізованих процесорів. Зі збільшенням трафіку провайдер просто додає додаткові балансивальники навантаження для обробки необхідної суми.

Переваги такого підходу:

  • Висока пропускна здатність завдяки програмному забезпеченню, що працює на спеціалізованих процесорах.
  • Підвищена безпека, оскільки тільки організація може отримати доступ до серверів фізично.
  • Фіксована вартість після покупки.

Балансири програмного забезпечення зазвичай працюють на менш дорогому стандартному обладнанні або в хмарі і мають ряд власних переваг:

  • Гнучкість для адаптації до мінливих потреб.
  • Масштабуйте за межі початкової ємності, додаючи додаткові екземпляри програмного забезпечення.
  • Нижча вартість, ніж покупка та обслуговування фізичних машин.

Алгоритми і методи балансування

Існують певні алгоритми балансування навантаження, які визначають оптимальні сервери для вхідних клієнтських запитів. Розглянемо стандартні рішення:

  • Хеш-підхід (хеш Source IP) обчислює бажаний сервер для клієнта на основі інформації про заголовок HTTP або IP-адресу. Він спирається на збережену інформацію про стан конкретного користувача. Наприклад, для кошика для оформлення замовлення, на сайтах електронної комерції.
  • Метод зваженого найменшого підключення (Weighted least connection) віддає перевагу найменш завантаженим серверам з найменшою кількістю поточних транзакцій, враховуючи зважування серверів.
  • Алгоритм найменшого часу. Враховує час відгуку сервера і активні з’єднання, відправляючи нові запити на найшвидші вивантажені сервери.
  • Липкий метод (Sticky-session) – це тип балансування, при якому трафік надходить на один конкретний сервер в групі, як би приклеєний до пристрою.
  • Метод перебору (Round Robin) використовується за замовчуванням для балансування навантаження. Round-robin розглядає список доступних серверів в послідовному порядку. З його допомогою можна розрахувати найгірший час відгуку для одного процесу, з відомою загальною кількістю процесів в черзі.

Переваги хмарного балансора

Все більше і більше підприємств прагнуть розгорнути свої програми в хмарі. Це стало необхідністю, оскільки програми ускладнилися, потреби користувачів зросли, а обсяг трафіку збільшився. Як і інші форми балансування навантаження, балансування навантаження в хмарі максимізує продуктивність і надійність ваших додатків. Простота і швидкість масштабування в хмарі означає, що компанії можуть обробляти сплески трафіку, не жертвуючи продуктивністю.

Апаратні балансири часто просто не справляються з кількістю трафіку і провайдеру доводиться додавати в пул додаткові пристрої. Це непродуктивно, і тому традиційний BN замінюється хмарними.

Тому, існує багато хмарних сервісів для розподілу даних між серверами, які пропонують еластичні балансування навантаження (ELB). Вони автоматично розподіляють вхідний трафік між багатьма серверами на основі заздалегідь встановлених правил, розширює можливості обслуговування серверних додатків, підвищує їх доступність.

Резюме

У сучасному світі цифрового високого навантаження практично неможливо обійтися без використання методу балансування навантаження. Інтелектуальне балансування навантаження забезпечує ІТ-відділам масштабованість і доступність послуг. Готові інструменти управління трафіком допомагають бізнесу більш ефективно направляти запити на потрібні ресурси, для кожного кінцевого споживача, а реалізований принцип відмовостійкості забезпечить безперебійну роботу вашої системи.