СМ-Консалт
 

Работа с Web-сервисами в корпоративных SOA: Часть 6. Сбалансируйте нагрузку приложений Web-сервисов при помощи ПО WebSphere Application Server

Статьи Технологии разработки ПО SOA и Web-сервисы

Введение

В четвертом разделе данной серии под названием «Создайте межплатформенное программное обеспечение SOA при помощи инструментария Rational development tools» ( «Build an SOA middleware application with Rational development tools») (см. Ресурсы) рассказывалось о том, как применять инструменты Web-разработки для создания приложения. В пятом разделе под названием «Оптимизируйте приложения Web-сервисов инструментарием WebSphere Business Integration» ( «Optimize Web Service applications with WebSphere Business Integration tools») (см. Ресурсы) объяснялось, как применить инструменты бизнес-процесса для интегрирования и оптимизации приложений. Я упоминала о том, как снижение количества Web-запросов наряду с уменьшением времени выполнения, времени доступа и снижением пропускной способности помогает оптимизации приложений Web-сервисов.

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

Необходимо отдавать себе отчет в том, что Web-запросы отличаются от гостевых запросов. Количество Web-запросов зависит не только от числа гостевых запросов, но и от типа и содержания гостевых запросов, формирующих оптимизированные Web-запросы.


Медленный ответ

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

Медленная скорость реагирования оригинального Web-сервиса может свидетельствовать о том, что целевой сервер либо занят, либо его память не может вместить систему обработки более одного гостевого запроса (организация многопоточной обработки данных). Один из способов решения проблем перегрузки сервера – сбалансированное распределение нагрузки между серверами для того, чтобы посетители не тратили много времени на ожидание ответа. Это и есть технология балансировки нагрузки.


Быстрый ответ

Сбалансированное распределение нагрузки между серверами — лучший метод по сравнению с использованием внешних ресурсов Web-сервиса, так как он позволяет использовать RAID-массив для серверов повышенной мощности, улучшенных проектов планировки, а также обеспечивает пропускную способность, необходимую в пик трафика. Такой вариант затратен. Однако, применяя технологию балансировки нагрузки, вы получаете больше шансов обеспечить высокий уровень функционирования и надежности, снизив одновременно пропускную способность, время исполнения и время доступа. При этом автоматически срабатывает механизм восстановления после отказа.

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

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


Проведем аналогию с тележками в магазине самообслуживания

Представим, что серверы для балансировки нагрузки – 4 кассы супермаркета. Проанализируем, как происходит распределение нагрузки супермаркета между этими кассами.

Предположим, что вы стоите в длинной очереди к кассе № 1 – приблизительно вы можете представить себе, сколько времени вам потребуется, чтобы в порядке очереди подойти к кассе. Если вы понимаете, что очередь движется медленно, и одновременно видите, что к кассе № 4 подошел кассир, чтобы открыть кассу и начать работу, вы со своей тележкой быстро отправитесь к кассе № 4. (см. Рисунок 1).

Затем еще один кассир начинает работу в кассе № 3 и делает знак покупателю, который изначально стоял в очереди перед вами. Этот покупатель, естественно, отправляется к кассе № 3. Касса № 2 остается пока закрытой.


Рисунок 1. Балансировка нагрузки между магазинными тележками
Балансировка нагрузки между магазинными тележками

Сократите время обслуживания

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

Когда такая задача физически не выполнима, вы можете совершить подобную операцию при помощи балансировщика нагрузки, который автоматически перераспределит запросы из загруженной в данный момент «продуктовой тележки» приложения Web-сервиса на другие серверы, свободные в данный момент (см. Рисунок 2). Эксплуатация серверов, загруженных не на полную мощность, в то время как другие серверы едва справляются с обработкой данных, — дело слишком затратное.


Рисунок 2. Балансировка нагрузки запросов в режиме онлайн
Балансировка нагрузки запросов в режиме онлайн

Возможные вопросы

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

Задайте следующие вопросы:

  • Какой тип приложений требует балансировки нагрузки?
  • Это долгосрочное приложение в рамках глобальной распределительной сети?
  • Какое количество запросов получит сервер или кластер серверов за определенное время?
  • Каково ожидаемое количество трафика, какова ожидаемая пропускная способность в пиковые моменты?
  • Насколько загружены серверы для выполнения приложений по балансировке нагрузки?
  • Какое количество посетителей ожидается в определенные промежутки времени?
  • Каково максимальное количество запросов, отправленное одним посетителем?

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


Технологии балансировки нагрузки

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

  • Простая маршрутизация
  • Алгоритм кругового обслуживания DNS (DNS round robin)
  • Сложные алгоритмы
  • Интеллектуальная ( «умная») маршрутизация

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

При использовании сложных алгоритмов запросы распределяются в зависимости от качества работы сервера, его аппаратного обеспечения и обработки приоритетного права клиента. Это означает, что более скоростные серверы получают наибольший объем запросов и наивысшее число покупателей. Технология интеллектуальной ( «умной») маршрутизации базируется на содержании запроса и возможности переориентирования трафика на другой сервер по другому каналу связи в случае сбоев в работе сервера, но который изначально поступил запрос.


Серверное ПО

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

Прежде чем вы установите в сети серверное ПО, убедитесь, что сеть настроена правильно и что установлен гибкий балансировщик нагрузки. Гибкость балансировщика является обязательным условием, поскольку балансировщик нагрузки, установленный в соответствии с требованиями приложений Web-сервиса сегодняшнего дня, должен иметь возможности для увеличения объема в соответствии с требованиями приложений дня завтрашнего.

IBM WebSphere Application Server – один из примеров серверного ПО, где используются как сложные алгоритмы, так и интеллектуальная ( «умная») маршрутизация для балансировки нагрузки и восстановления после отказа. Его балансировщик нагрузки имеет возможность увеличиваться в объеме в соответствии с будущими требованиями приложений Web-служб. Вам необходимо установить кластер серверов для балансировки нагрузки и проверить систему восстановления после отказа. (см. Ресурсы).

Другим примером является многоплатформенный WebSphere Edge Server V2.0. Он спроектирован для улучшения операции выбора сервера, оптимизации нагрузки и повышения устойчивости к сбоям. В пакете поставки он снабжен ПО Network Address Translation (NAT), маршрутизацией на уровне ядра Kernel-level Content Based routing (CSR), и WebSphere Edge Server Consultant для переключателей свечей Cisco CSS (см. Ресурсы).


Заключение

Приложения для Web-сервисов по балансировке нагрузки требуют предварительного планирования времени, чтобы заранее определить, как можно распределить нагрузку в пиковые моменты трафика. Свяжитесь с системным администратором, чтобы проконсультироваться о том, какие технологии балансировки нагрузки необходимо использовать при планировании Web-сервисов.

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

23.02.2008

Добавить комментарий (анонимные комментарии не публикуются!!!)

ФИО: 
E-mail: 
Тема: 
Комментарий: 
Оценка:   
 
 
 
 
 
Код подтверждения:
   

Новости СМ-Консалт

Мастер-класс для тренеров и руководителей "Работа в аудитории". 1 ступень уже в марте

Обновлено расписание тренингов до марта 2017 года

Бесплатный вебинар 14 декабря в 14 00 по Мск - «Секреты управления ИТ-командой: 10 важных практик, которые сделают команду эффективной»

Новые статьи в библиотеке

Примеры отраслевых решений на основе BIPULSE

Практика реализации модуля интеграции для Rational Software Architect, позволяющего преобразовывать низкоуровневое представление процесса из IBM Rational ClearQuest в UML

Что удивляет в русских менеджерах иностранцев

Разработка ПО с использованием лучших мировых практик и инструментов на Иркутском авиационном заводе

Презентация доклада для IT Global Meetup Санкт-Петербург: "Почему Agile так популярен? Взгляд циника и психолога"

Отчет, презентация и видео доклада для Октябрьской встречи Петербургского клуба менеджеров проектов в IT - SPM Meetup #36

Заказчики и истории успеха

Наши тренинги, семинары, курсы

Дружите с нами на FaceBook

Проверить настройки
Компания
Сделано в СМ-Консалт
Услуги 
Компетенция
  • CMC-TotalTest (скоро)
    уникальная разработка автоматизации функционального тестирования. Альтернатива HP UFT, IBM RFT и Microsoft!
  • CMC-Bisquiter
    автоматизированное тестирование АБС "Бисквит"
  • CMC-Formater
    тестирование печатных и экранных форм
  • CMC-TerminalTest
    тестирование терминальных приложений
  • ProjectTracker
    интеграция ALM и MS Project
  • GanttChart
    модуль управления проектами для IBM Rational ClearQuest и TeamConcert
    Все разработки СМ-Консалт >
  • ИТ-консалтинг
  • Автоматизированное тестирование
  • Ручное тестирование
  • Аутсорсинг тестирования
  • Оптимизация бизнес-процессов
  • Внедрение методологии и инструментов ALM
  • Обучение и коучинг
  • Разработка ПО
  • Интеграция
ООО СМ-Консалт (СМК), 2004-2016.
Карта сайта