Автоматическое выравнивание нагрузки на сервере для высокой масштабируемости

Рубрика:

Многие организации ориентируют свои IT отделы на использование облачных вычислений и/или виртуальных машин для обеспечения высокой масштабируемости. Это позволяет приложениям работать быстрее и обрабатывать высокие пики веб-трафика с меньшими потерями для службы.

В мире распределенных серверов выравнивание нагрузки - базовый аспект функций масштабируемости любой системы. Секрет осуществлению задач выравнивания нагрузки, в конечном счете, является автоматизация. Рассмотрим основы выравнивания нагрузки и то, как автоматизация делает процесс быстрее, менее дорогим, и более эффективным.

Что такое выравнивание нагрузки? Как это работает?

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

В облаке распределенных вычислений серверы могут быть расположены в безопасных центрах обработки данных разбросанных географически. Даже если бы один центр обработки данных оказался под действием стихийного бедствия, то оставалось бы много серверов, способных  обработать рабочую нагрузку и доступных в других областях. В случае закрытых облаков, которые имеют полный пакет Инфраструктуры как сервиса (IaaS), выравнивание нагрузки происходит среди ряда выделенных серверов, которые зарезервированы для одного определенного клиента предприятия.

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

Фокус на масштабируемости не означает, что весь процесс должен быть смещен к облаку. Есть доступные гибридные опции. Например, Amazon предлагает две EC2 версии менеджера трафика и простого балансировщика нагрузки Zeus, которые позволяют корпоративным клиентам и малому бизнесу балансировать нагрузку Веб-трафика в облаке на основе системы "по требованию". Это дает клиентам возможность на месте настроить нормальный трафик и затем увеличивать его через облако время от времени при наступлении пиков.

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

  • Возможность собрать детальные статистические данные в реальном времени, чтобы использовать в распределении рабочей нагрузки. Использование одних только данных истории для прогнозирования - верный способ предотвратить ошибочные догадки.
  • Виртуализированная сетевая среда, которая представляет ресурсы как единое серверное устройство. Это важная функция, когда речь идет об управлении "облачными" приложениями. Простой интерфейс делает задачи управления проще.
  • Служба выравнивания нагрузки, которая может "видеть" загрузку на прикладном уровне и не только на уровне экземпляра. Это важный фактор в масштабируемости в облаке, когда может быть огромное число экземпляров приложения, работающих одновременно.
  • Возможность создать новые экземпляры самого балансировщика загрузки и сконфигурировать балансировщики, чтобы принять пользовательские требования при необходимости. В идеале должен быть API, который поддерживает высокий уровень интеграции для определенных бизнес-приложений.
  • Выравнивание нагрузки, которое включает контролирующие функции, чтобы идентифицировать нездоровые экземпляры приложения и трафик перенаправления к здоровым экземплярам. Только то, что сервер или приложение "доступны", не означает, что оно функционирует оптимально.
  • Возможность автоматизировать масштабирование так, чтобы больше дополнительных виртуальных серверов было добавлено на основе предварительно установленных порогов – и автоматическая перебалансировка рабочей нагрузки между существующими и новыми серверами каждый раз, когда это происходит. Эта перебалансировка должна произойти без прерывания службы, перезагрузки или других действий, требуемых со стороны IT.

Вопросы автоматизации

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

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

В таком сценарии всегда будут ресурсы, за которые платят, но они не используются. Задачи выравнивания нагрузки могут занять все рабочее время IT администратора. Более того, из-за того, что типы прогнозов и вычислений так сложны и связаны, это может привести к ошибкам. Любой просчет добавляет время простоя сервера, когда возникает потребность что-то увеличить или уменьшить.

Виртуализация, которая избавляет от необходимости вручную реконфигурировать ресурсы, и автоматизация, которая обеспечивает данные, оптимально помещенные в SAN, экономят время ИТ отдела и деньги.

 

По материалам статьи "Automate Web server load balancing for high scalability"

Автор: 
Jason Tee TheServerSide.com