В Windows Azure: что такое веб-роль, рабочая роль и роль виртуальной машины? - PullRequest
110 голосов
/ 19 августа 2011

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

Ответы [ 4 ]

99 голосов
/ 19 августа 2011

РЕДАКТИРОВАНИЕ 3/3/2013 - обновлено для ссылки на конечные точки UDP, виртуальные машины и другие языки

РЕДАКТИРОВАНИЕ 06.06.2013 - обновлено, чтобы отменить прекращениеРоль виртуальной машины и обновление до базовых образов ОС для веб / рабочей роли до Windows Server 2012

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

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

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

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

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

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

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

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

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

30 голосов
/ 19 августа 2011
  • Веб-роли - это веб-приложения, размещенные в IIS.
  • Рабочие роли - это процессы, которые могут выполнять некоторую работу (например, автоматически сжимать загруженные изображения, делать вещи, когда что-то меняется в вашей базе данных, получать новые сообщенияочередь и процесс, вы называете это)
  • Роли виртуальных машин хост виртуальных машин
21 голосов
/ 17 декабря 2013

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

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

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

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

3 голосов
/ 10 мая 2012

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

...