it-swarm.com.ru

В Windows Azure: что такое веб-роль, рабочая роль и VM роль?

Приложение, над которым я работаю, содержит веб-роль: это простое веб-приложение. Мне нужно было разместить приложение в Windows Azure, поэтому я создал веб-роль. Я действительно хочу знать, для чего эти роли. Какое значение имеет их кодирование или хранение?

110
Kuntady Nithesh

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

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

Хорошая ссылка @Vladimir. Немного уточнения: все роли (веб, рабочие) по сути являются Windows Server. Роли Web и Worker практически идентичны:

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

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

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

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

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

С Виртуальными машинами вы просто выбираете образ ОС из галереи, которая создается для вас и сохраняется как VHD в хранилище BLOB-объектов. Затем вы RDP/SSH и настроить его, как вам нравится.

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

Для хорошего начала посмотрите на Platform Training Kit и начните проходить упражнения.

99
David Makogon
  • Веб-роли - это веб-приложения, размещенные в IIS.
  • Рабочие роли - это процессы, которые могут выполнять некоторую работу (т.е. автоматически сжимать загруженные изображения, делать вещи, когда что-то меняется в вашей базе данных, получать новые сообщения из очереди и процесса, вы называете это)
  • Роли ВМ Хост ВМ
30
Dennis Traub

Я наткнулся на этот SO вопрос/ответ несколько дней назад и обнаружил, что ответы немного выше моего понимания (я новичок в Azure и в Интернете). Сегодня вечером я нашел это резюме в основных принципах Azure, которое, как мне показалось, было хорошим общим обзором основных различий между рабочей и веб-ролями:

Основное различие между ними заключается в том, что экземпляр веб-роли запускает IIS, а экземпляр рабочей роли - нет. Тем не менее, оба управляются одинаково, и приложение обычно использует оба. Например, экземпляр веб-роли может принимать запросы от пользователей, а затем передавать их экземпляру рабочей роли для обработки. Чтобы увеличить или уменьшить масштаб приложения, вы можете попросить Windows Azure создать больше экземпляров роли или закрыть существующие экземпляры. Как и в случае с виртуальными машинами Windows Azure, с вас взимается плата только за время работы каждого экземпляра веб-роли или рабочей роли.

Если вы новичок в разработке Azure, я настоятельно рекомендую прочитать полную статью здесь: Введение в Windows Azure

Я надеюсь, что это поможет кому-то так же, как помогло мне включить лампочку.

21
BrianLegg

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

3
Sufy Khan