5 вариантов использования балансировщиков нагрузки

Балансировка нагрузки позволяет распределять входящий трафик между серверами бэкенда. Часто эта технология используется для распределения HTTP-запросов. Это распространенный способ масштабирования приложения.

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

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

1: Масштабирование

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

Пользователь → Интернет → Балансировщик нагрузки → Пул балансировки нагрузки

Балансировщики позволяют распределять нагрузку с помощью двух разных алгоритмов: round robin и минимальной загруженности. Round robin по очереди будет отправлять запросы на каждый доступный сервер, в то время как алгоритм минимальной загруженности будет слать запросы на сервер с наименьшим количеством соединений. Round robin на сегодняшний день является наиболее часто используемой схемой для балансировки нагрузки. Но если ваше приложение поддерживает открытые соединения в течение длительного времени, алгоритм минимальной загруженности поможет предотвратить перегрузку отдельных серверов.

Дополнительным преимуществом горизонтального масштабирования с помощью балансировщиков нагрузки является повышение надежности сервиса.

2: Высокая доступность

Высокая доступность – это термин, который описывает механизмы сокращения простоев и повышения надежности системы. Высокая доступность часто реализуется путем повышения производительности и устранения отдельных точек отказа.

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

Пользователь → Интернет → Балансировщик нагрузки → Пул балансировки нагрузки (проверка состояния серверов)

Балансировщик нагрузки запрашивает веб-страницу с определенным интервалом времени (например, каждые десять секунд), чтобы убедиться, что сервер отвечает на запросы. Если сервер не отвечает три раза подряд, он будет удален до восстановления работоспособности.

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

3: Развертывание blue-green

Развертывание blue-green – это метод, который позволяет развернуть новое программное обеспечение на производственной инфраструктуре, тщательно протестировать его, а уже затем переключить на него трафик. Если развертывание заканчивается сбоем или непредвиденной ошибкой, вы можете легко переключить версию.

Пользователь

Интернет

Балансировщик нагрузки
↓                   ↓
Пул blue           Пул green

Некоторые балансировщики нагрузки упрощают развертывание blue-green благодаря функции маркировки серверов. Балансировщики могут отправлять трафик на группу серверов на основе их тега; вы можете создать наборы серверов с тегами blue и green.

4: Канареечное развертывание

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

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

Липкие сессии используют куки-файл, что передает все будущие подключения из определенного браузера на один и тот же сервер.

5: A/B тестирование

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

На серверной стороне в пул серверов А нужно добавить серверы В.

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

Заключение

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

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

Читайте также:

Tags: ,