Является ли хорошей идеей повторно использовать веб-роль Azure для серверной обработки? - PullRequest
6 голосов
/ 07 июня 2011

Я портирую огромное приложение на Windows Azure. Он будет иметь веб-интерфейс и обработчик. До сих пор я думал, что буду использовать веб-роли для обслуживания клиентских запросов и рабочие роли для серверной обработки.

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

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

Является ли хорошей идеей повторно использовать веб-роли для серверной обработки? Какие недостатки мне следует ожидать?

Ответы [ 3 ]

4 голосов
/ 07 июня 2011

Похоже, у вас уже есть довольно хорошее представление о том, о чем следует думать при использовании нескольких ролей:

  • Стоимость двух экземпляров для выполнения SLA (хотя некоторые фоновые задачи действительно не нуждаются в SLA, если конечный пользователь не видит воздействия)
  • Отдельные единицы шкалы

Однако: если вы запускаете все в одной роли, то все масштабируется вместе. Например, если у вас есть административный веб-сайт на порту 8000, у вас могут возникнуть проблемы с его доступом, если ваша пользовательская база захлопывает основной сайт на порту 80 из-за трафика.

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

2 голосов
/ 07 июня 2011

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

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

Если вашей основной целью является масштабируемость, а вызовы к вашим услугам являются внеполосными (это означает, что вызывающая сторона реализует шаблон «забей и забудь»), тогда использование очередей обработки и рабочих ролей может иметь больше смысла. Одним из принципов облачных вычислений являются слабо связанные сервисы. Хотя у вас больше работы по техническому обслуживанию, у вас также есть больше возможностей для самостоятельного наращивания слоев. Ваши рабочие роли могут также использовать TPL, упомянутый выше, чтобы вы могли развертывать свои рабочие роли на более крупных виртуальных машинах (скажем, с 4CPU или 8), что позволило бы минимизировать число развернутых экземпляров.

Мои 2 цента. :)

1 голос
/ 01 января 2013

Я бы предложил вам разработать их как отдельные роли: веб-роль и рабочую роль, а затем просто объединить их в одну веб-роль.

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

для получения более подробной информации: http://www.31a2ba2a -b718-11dc-8314-0800200c9a66.com / 2010/12 / как комбинировать работника и веб-role-in.html http://wely -lau.net / 2011/02/25 / концепция объединения ролей и рабочих с использованием роли рабочих / / 1009 *

...