azure фягку - Роль рабочего против веб-работы





зщкефд por (4)


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

Для WebJobs существенно мало накладных расходов. Он изолирован песочницей, OS поддерживается, и есть службы и модули, чтобы убедиться, что он работает. Но код приложения по существу близок к металу, как и в «Ролях рабочих», поскольку они используют один и тот же гипервизор.

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

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

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

Можно даже создавать гибридные решения, где некоторые части выполняются в WebJobs, а другие - в Ролях Рабочих, но это выходит за рамки этого вопроса. (подсказка: SDK WebJobs)

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

Какие причины и в каких ситуациях я могу выбрать один из них?




Некоторые основные сведения:

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

Роли рабочих хороши для более ресурсоемких рабочих нагрузок или если вам нужно изменить среду, в которой они работают (например, конкретная версия .NET framework или что-то, установленное в ОС). Роли рабочих более дороги и немного сложнее настроить и запустить, но они предлагают значительно большую мощность.

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




Что следует помнить при выборе использования веб-задания или роли рабочего:

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

  • Роль рабочего будет масштабироваться независимо, веб-задание будет масштабироваться вместе с контейнером веб-приложения.

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




EDIT 3/3/2013 - обновлен для ссылки на конечные точки UDP, виртуальные машины и другие языки

EDIT 6/6/2013 - обновлен, чтобы отразить прекращение роли виртуальной машины, и обновить базовые ОС ОС для веб-пользователей / рабочих рабочих станций до Windows Server 2012

Хорошая ссылка от Владимира. Еще немного разъяснений: все роли (веб, работник) - это, по сути, Windows Server. Роли Web и Worker почти идентичны:

  • Веб-роли - это виртуальные машины Windows Server с включенным IIS
  • Роли рабочих - это виртуальные машины Windows Server с отключенным IIS (и вы можете вручную включить его)
  • Роли VM - это изображения Windows Server 2008, которые вы создаете локально через Hyper-V и загружаете в Azure (и теперь они прекращены и больше не доступны по состоянию на 31 мая 2013 г.
  • Виртуальные машины - это изображения Windows или Linux, созданные в Azure, хранятся как vhd в вашем собственном хранилище и имеют несколько улучшений в отношении роли VM. Например: поскольку vhd находится в вашей собственной учетной записи хранилища, вы можете легко создать шаблон изображения из своего VHD, скопировать его в новый VHD или даже загрузить в VM Depot (только для Linux).

Чтобы ответить на ваш вопрос о том, что делать с этими ролями: Комплект обучения платформе (см. Ниже) даст вам массу хороших идей и образцов, но вот несколько простых примеров использования:

  • Вы можете запустить любой код, который предоставляет конечную точку tcp, http, https или udp (веб-приложения, службы SOAP / REST и т. Д.). Вам нужно подумать о безгражданном способе делать что-то, хотя - если у вас более одного экземпляра виртуальной машины, пользовательский трафик распределяется по этим экземплярам. Учебный комплект платформы покажет вам, как использовать хранилище или кеш, чтобы справиться с этим.
  • Вы можете запускать код, который живет в очереди или таймере. Возможно, у вас есть задачи по требованию, такие как создание миниатюр фотографий, или расчеты на основе ввода пользователем. Им не нужны внешние конечные точки. Вы можете отправить свои запросы в очередь, а затем запустить задание, которое просто отпишет эту очередь (и вы можете масштабировать этот процесс на нескольких экземплярах, причем сообщения в очереди потребляются всеми экземплярами).
  • Вы можете запускать .NET, Java, php, python, node, ruby ​​и т. Д. Вам просто нужно распределить соответствующий код времени выполнения вместе с кодом проекта. Все языки могут совершать REST-вызовы API Azure, и на нескольких языках (включая упомянутые выше) есть SDK, которые позаботятся об этом для вас. Все языковые SDK here , с исходным кодом на github, here .
  • С ролью VM вы можете устанавливать и запускать программное обеспечение с очень сложными / трудоемкими установками, установками, требующими ручного вмешательства, и установками, которые невозможно надежно автоматизировать. В этом случае вы должны иметь дело с обслуживанием ОС. Помимо роли VM, в настоящее время существуют виртуальные машины, предоставляющие облачную конструкцию VM, а также поддержку Windows и Linux. Я бы предложил виртуальные машины по роли VM.

С ролями Web и Worker ОС и связанные с ними исправления заботятся о вас; вы создаете компоненты своего приложения без необходимости управления виртуальной машиной.

С ролями VM вы создаете полный образ Windows Server, добавляете к нему крючки Azure и вставляете всю виртуальную машину в облако (а затем сохраняете образ VM во времени).

С помощью Virtual Machines вы просто выбираете образ ОС из галереи, которая создается для вас и хранится как VHD в хранилище blob. Затем вы RDP / ssh и настроите его как хотите.

Нося шляпу архитектора, это то, где она становится интересной и интересной. Вы можете запускать веб-службы в роли веб-роли или рабочей роли (и иметь возможность открывать порты в любом из них); Вы можете разместить Tomcat или другие веб-серверы в роли «Рабочий». вы можете выбрать объединение веб-сайта плюс услуги в одной роли или разделить их на несколько ролей для различных потребностей масштабируемости.

Для хорошего начала взгляните на комплект тренировки платформы и начните выполнять упражнения.







azure azure-worker-roles azure-webjobs