ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

Давайте разберемся с техникой

Глоссарий и FAQ по терминологии балансировки нагрузки

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

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

Устойчивость – балансировщик нагрузки позволяет запускать несколько серверов приложений для выполнения одной и той же роли. В случае отказа сервера балансировщик нагрузки обнаружит это и перенаправит трафик на оставшиеся работоспособные серверы. Это обеспечивает высокую доступность и надежность приложений.

Масштабируемость – балансировщики нагрузки позволяют плавно масштабировать сервисы без ущерба для производительности. Просто добавляя больше серверов за балансировщиком нагрузки для распределения, вы вводите возможность адаптации к увеличению нагрузки.

Пропускная способность – Для увеличения пропускной способности просто добавьте больше серверов за балансировщиком нагрузки. (Ок, обычно это не так просто, потому что у вас, вероятно, есть базы данных и другие серверы приложений, которые необходимо учитывать, но вы поняли идею).

Балансировщики нагрузки распределяют трафик приложений на основе множества различных стратегий балансировки нагрузки или политик балансировки нагрузки, как их иногда называют. Для того чтобы понять, находится ли внутренний сервер в сети и здоров ли он, балансировщик нагрузки использует мониторинг внутренних серверов и проверку здоровья сервера. Принципы балансировки нагрузки существуют уже много лет, но эти устройства значительно эволюционировали от базовых устройств уровня 4 до гораздо более сложных контроллеров доставки приложений уровня 7, или ADC, как их называет компания Gartner. АЦП предлагают множество дополнительных ключевых функций, включая безопасность и управление трафиком.

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

Round Robin: Самый простой метод балансировки нагрузки, при котором каждый сервер получает запрос по очереди.

Наименьшее количество подключений: Балансировщик нагрузки будет отслеживать количество соединений на сервере и отправлять следующий запрос на сервер с наименьшим количеством соединений. Примечание: Старые балансировщики нагрузки только уровня 4, как правило, не поддерживают эту функцию, поскольку они обычно используют DSR (Direct Server Return) и не знают, сколько соединений в настоящее время находится на внутренних серверах.

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

Самое быстрое время отклика: Этот метод балансировки нагрузки обычно доступен только в более продвинутых продуктах. Запрос будет отправлен на самый быстро отвечающий сервер.

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

Ping: Это самый простой метод проверки работоспособности сервера, однако он не очень надежен, поскольку балансировщик нагрузки может сообщать, что сервер работает, в то время как веб-служба может быть отключена.

TCP Connect: Это более сложный метод проверки работоспособности, который может проверить, запущена ли служба. Примером могут служить службы на порту 80 для веб.

Простой HTTP GET: При этом методе проверки работоспособности сервера выполняется запрос HTTP GET к веб-серверу и обычно проверяется ответ с заголовком, например, 200 OK.

Полный HTTP GET: Эта проверка работоспособности сервера выполняет HTTP GET и проверяет фактическое тело содержимого на корректность ответа. Эта функция доступна только в некоторых более продвинутых решениях по балансировке нагрузки, но для веб-приложений это лучший метод, поскольку он проверяет, доступно ли реальное приложение.

Настраиваемые проверки состояния сервера: Некоторые решения по балансировке нагрузки способны встраивать пользовательские мониторы для TCP / IP-приложений для лучшего контроля над конкретными службами приложений.

Постоянство – это функция, которая требуется многим веб-приложениям и веб-сайтам. После того, как пользователь взаимодействовал с определенным сервером, все последующие запросы отправляются на тот же сервер, таким образом “сохраняясь” на этом сервере. Постоянство сеанса обеспечивает непрерывность обслуживания и бесперебойную работу конечного пользователя и часто является требованием приложений электронной коммерции, в которых состояние сеанса хранится на локальном веб-сервере, а не в общей базе данных. Настойчивость может проявляться в разных формах…

Cookie балансировщика нагрузки: Балансировщик нагрузки будет устанавливать cookie на клиенте и использовать его для определения внутреннего сервера, который будет использоваться для данного пользователя.

Куки сеанса приложения: Многие серверы приложений уже устанавливают свой собственный идентификатор сессии, например, jsp session cookie или Asp.net. Вы можете настроить балансировщик нагрузки на их использование.

На основе IP-адреса: Использует IP-адрес клиента для сохранения. Этот метод работает для слоя 4 и слоя 7.

SSL Session: Используется идентификатор сеанса SSL. Это не очень распространено, так как идентификатор сессии может измениться, в результате чего постоянство теряется.

RDP Session Cookie: Используется для соединений RDP.

Это термин, используемый для описания продвинутого балансировщика нагрузки. Сейчас большинство балансировщиков нагрузки – это устройства уровня 7, расположенные в привилегированном положении между приложением и клиентами. Видя весь трафик, балансировщик нагрузки может выполнять ряд функций, помимо простой балансировки нагрузки и резервирования серверов. Балансировка нагрузки – это одна из ряда особенностей АЦП, включая:

  • Управление трафиком на уровне 7
  • Ускорение применения
  • Кэширование содержимого
  • Брандмауэр приложений
  • Объединение и ограничение соединений
  • Предварительная аутентификация и единая регистрация
  • Проксирование

Термины layer4 и layer7 относятся к уровням протокола, на которых работает балансировщик нагрузки в рамках сетевой модели OSI. Балансировщики нагрузки уровня 4 работают на транспортном уровне, в то время как балансировщики нагрузки уровня 7 работают на уровне протокола приложения, что дает им большую видимость и понимание приложения, которое они обрабатывают. Это позволяет расширить функциональность и оптимизировать функции, включая интеллектуальное управление трафиком, кэширование контента, безопасность и сжатие. Функции ускорения Балансировщики нагрузки Layer4 все еще доступны, хотя их доля рынка значительно сокращается по мере того, как усовершенствованные балансировщики нагрузки layer7 и ADC становятся более мощными и экономически эффективными.

SSL (Secure Sockets Layer) используется для описания процесса шифрования соединения, обычно с помощью частного сертификата. HTTPS – это HTTP, работающий через зашифрованное SSL-соединение. SSL может быть очень требовательной к процессору операцией, что снижает скорость и мощность веб-сервера. Передача завершения SSL на балансировщик нагрузки позволяет вам централизованно управлять сертификатами и освобождает ваши серверы, чтобы сосредоточиться на доставке приложений, а не на расшифровке SSL.

WAF или Web Application Firewall – это устройство безопасности, разработанное специально для борьбы с угрозами на уровне приложений, т.е. на уровне 7. Более конкретно, брандмауэр веб-приложений предназначен для работы с протоколами HTTP и HTTPS. Они работают в сочетании со стандартным сетевым брандмауэром, который обычно блокирует порты. Для того чтобы приложение могло предлагать публичные услуги, определенные порты (например, 80 и 443 для типичного веб-приложения HTTP/HTTPS) должны быть открыты. Хакеры используют эти открытые порты, выявляя необходимость в дополнительном, новом уровне защиты. Именно здесь в игру вступает брандмауэр приложений или WAF. Брандмауэр веб-приложений просматривает HTTP-запросы и ответы, чтобы определить, являются ли они действительными или нет. Некоторые запросы могут быть действительны для одного сайта/страницы, но не для другого, поэтому во многих случаях брандмауэры приложений могут потребовать дополнительной настройки. PCI DSS требует, чтобы брандмауэр приложений блокировал некоторые стандартные угрозы в соответствии с опубликованным OWASP списком 10 самых опасных угроз.