В чем разница между веб-сайтом Azure и веб-ролью Azure

241

Каковы существенные различия между новыми веб-сайтами Azure и традиционными веб-ролями Azure для приложения ASP.NET MVC? По какой причине я бы выбрал «веб-сайт» вместо «веб-роли» или наоборот?

Давайте предположим, что мне понадобится равная емкость в любом случае (например, 2 небольших экземпляра). Цены кажутся сопоставимыми, за исключением того факта, что существует 33% временная скидка для веб-сайтов, пока они находятся в период предварительного просмотра.

Есть ли вещи, которые я могу сделать с «веб-сайтом», которые сложны или невозможны с веб-ролью? Например, становится ли легко разместить несколько веб-сайтов в одном наборе виртуальных машин, используя «веб-сайты»? Потеряю ли я что-нибудь с «веб-сайтом» против «веб-роли»? Возможность тонкой настройки IIS? Возможность использовать сервис Cache локально?

Эрв Уолтер
источник
был такой же QS. они должны действительно дать понять в своих документах.
90abyss

Ответы:

213

Веб-роли предоставляют вам несколько функций, помимо веб-приложений (ранее веб-сайтов):

  • Возможность запуска расширенных сценариев запуска для установки приложений, изменения параметров реестра, установки счетчиков производительности, точной настройки IIS и т. Д.
  • Возможность разбить приложение на уровни (например, веб-роль для внешнего интерфейса, рабочая роль для серверной обработки) и независимо масштабировать
  • Возможность RDP в вашу виртуальную машину для целей отладки
  • Сетевая изоляция
  • Выделенный виртуальный IP-адрес, который позволяет экземплярам веб-ролей в облачной службе получать доступ к виртуальным машинам с ограниченным IP-адресом.
  • Конечные точки с ограничением ACL (добавлено в Azure SDK 2.3, апрель 2014 г.)
  • Поддержка любых портов TCP / UDP (веб-сайты ограничены TCP 80/443)

Веб-приложения имеют преимущества перед веб-ролями:

  • Практически мгновенное развертывание с историей развертывания / откатами
  • Visual Studio Online, поддержка github, локальный git, ftp, CodePlex, DropBox, BitBucket
  • Возможность развертывания одного из многочисленных CMS и фреймворков (таких как WordPress, Joomla, Django, MediaWiki и т. Д.)
  • Использование базы данных SQL или MySQL
  • Простое и быстрое масштабирование от бесплатного уровня к общему уровню к выделенному уровню
  • Веб-работа
  • Резервное копирование содержимого веб-сайта
  • Встроенные веб-средства отладки (простая консоль отладки cmd / powershell, проводник процессов, средства диагностики, такие как потоковая передача журналов и т. Д.)

С выпуском в апреле 2014 и сентябре 2014 года теперь есть некоторые функции, общие как для веб-приложений, так и для веб-ролей (и рабочих ролей), в том числе:

  • Постановка + производство слотов
  • Подстановочный знак DNS, SSL-сертификаты
  • Интеграция с Visual Studio
  • Поддержка Traffic Manager
  • Поддержка виртуальной сети

Вот скриншот, который я взял из формы выбора галереи веб-сайтов: введите описание изображения здесь

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

Дэвид Макогон
источник
Помимо Git + ftp, еще одним замечательным примером является PublishSettings (также может использоваться, например, в WebMatrix 2)
Крис ван дер Маст
18
Разделение на уровни не является дифференцирующим фактором. Вы можете использовать рабочие роли с веб-сайтами.
RickAndMSFT
4
Что касается уровней: с веб-сайтами вам необходимо подключиться к рабочему через внешнюю конечную точку, так как веб-сайты не поддерживают виртуальные сети. Далее: вам придется разделить код по нескольким развертываниям (один для веб-сайтов, один для облачной службы с рабочей ролью). Облачная служба позволяет легко разбивать код на масштабируемые уровни, а затем независимо масштабировать и масштабировать каждый уровень, сохраняя при этом внутреннюю связь между этими уровнями. Это то, что я имел в виду, когда указывал уровни в качестве дифференциатора облачных сервисов (веб / рабочий).
Дэвид Макогон
1
Разве это не устарело по сравнению со stackoverflow.com/a/10960755/56145 ?
Мэтт Коджан
2
С помощью веб-роли вы также можете выполнять фоновую обработку на тех же виртуальных машинах
Борис Липшиц,
44

РЕДАКТИРОВАТЬ 2014: Для чего это стоит, большая часть информации в этом ответе больше не верна - см. Комментарии.

Добавьте больше к ответу @David:

С веб-сайтами Windows Azure у вас нет контроля над IIS или веб-сервером, поскольку вы используете раздел ресурсов вместе с сотнями других веб-сайтов на том же компьютере, вы делитесь ресурсами, как и любой другой, поэтому контроль над IIS отсутствует.

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

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

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

AvkashChauhan
источник
AFAIK WebRoles тоже не получают своего собственного имени хоста - все они rolename.cloudapp.net. Разве есть какая-то особенность, о которой я не знаю?
Брайан Рейшл
Не можете ли вы использовать DNS для создания псевдонима CNAME, указывающего с www.yourdomain.com на websitename.azurewebsites.net?
Бернард Вандер Бекен
Я считаю, что для веб-сайтов WA только приложения, работающие с зарезервированными экземплярами (выделенными виртуальными машинами), могут иметь привязанные к ним пользовательские домены.
user94559
Я думаю, что Скотту недавно упомянул, что они также хотят поддерживать собственные домены в общих экземплярах.
Джереми
19
Как ни крути, большая часть информации в этом ответе больше не верна (хотя это было в июне 2012 года): веб-сайты теперь могут иметь собственные домены. Веб-сайты могут работать в «зарезервированном» режиме, который по сути является виртуальной машиной, но полностью управляемый.
Джей Керидо
34

Я только что опубликовал подробное сообщение в блоге на эту тему на http://robdmoore.id.au/blog/2012/06/09/windows-azure-web-sites-vs-web-roles/ .

Выдержка из моего заключения: Если вам нужны огромные масштабы, центры обработки данных SSL, азиатских или западных штатов США, нестандартная конфигурация (IIS, порты, диагностика, сертификаты безопасности или сценарии запуска), RDP или экономически эффективные рабочие роли ( в сочетании с вашей веб-ролью), вам придется придерживаться веб-роли на данный момент.

В противном случае, веб-сайты отличный вариант!

Роберт Мур
источник
14

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

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

Джимми
источник
6

Есть еще один сценарий, который обсуждается: после того, как эти 500 исключений были устранены, они ничего не сказали о способности веб-сайтов Azure обрабатывать подстановочные знаки CNAME. Некоторые из нас используют Nate Web Role Accelerator в облачных сервисах, потому что взлом одной строкой предоставил возможность подстановочного субдомена в программном обеспечении Nate. Мы не сможем переместить эти подстановочные субдоменные приложения, пока не узнаем, что веб-сайты Azure смогут с ними справиться. Если он никогда не сможет этого сделать, то это отрицательно скажется на стороне веб-роли в уравнении. Также следует отметить, что при одинаковом уровне цен (после истечения срока действия скидки на предварительный просмотр) я не уверен, что хочу отказаться от доступа к RDC и Event Viewer (упомяну только две вещи).

Люк Латам
источник
6

Веб-сайты Azureпозволяет быстро создавать масштабируемые веб-сайты в Azure. Вы можете использовать портал Azure или инструменты командной строки для настройки веб-сайта с такими популярными языками, как .NET, PHP, Node.js и Python. Поддерживаемые платформы уже развернуты и не требуют дополнительных шагов установки. Галерея веб-сайтов Azure содержит множество сторонних приложений, таких как Drupal и WordPress, а также среды разработки, такие как Django и CakePHP. После создания сайта вы можете либо перенести существующий веб-сайт, либо создать совершенно новый веб-сайт. Веб-сайты устраняют необходимость в управлении физическим оборудованием, а также предоставляют несколько вариантов масштабирования. Вы можете перейти от общей мультитенантной модели к стандартному режиму, когда выделенные машины обслуживают входящий трафик. Веб-сайты также позволяют вам интегрироваться с другими службами Azure, такие как база данных SQL, служебная шина и хранилище. Используя предварительный просмотр Azure WebJobs SDK, вы можете добавить фоновую обработку. Таким образом, веб-сайты Azure позволяют сосредоточиться на разработке приложений, поддерживая широкий спектр языков, приложений с открытым исходным кодом и методологий развертывания (FTP, Git, Web Deploy или TFS). Если у вас нет специальных требований, требующих облачных служб или виртуальных машин, веб-сайт Azure, скорее всего, является лучшим выбором.

Облачные сервисыпозволяют создавать высокодоступные, масштабируемые веб-приложения в богатой среде платформы как услуги (PaaS). В отличие от веб-сайтов, облачная служба сначала создается в среде разработки, такой как Visual Studio, перед развертыванием в Azure. Фреймворки, такие как PHP, требуют пользовательских шагов развертывания или задач, которые устанавливают фреймворк при запуске роли. Основным преимуществом облачных сервисов является возможность поддержки более сложных многоуровневых архитектур. Одна облачная служба может состоять из веб-роли веб-интерфейса и одной или нескольких рабочих ролей. Каждый уровень можно масштабировать независимо. Также повышен уровень контроля над инфраструктурой веб-приложений. Например, вы можете использовать удаленный рабочий стол на компьютерах, на которых выполняются экземпляры роли.

Виртуальные машиныпозволяет запускать веб-приложения на виртуальных машинах в Azure. Эта возможность также известна как инфраструктура как услуга (IaaS). Создайте новые машины под управлением Windows Server или Linux через портал или загрузите существующий образ виртуальной машины. Виртуальные машины дают вам максимальный контроль над операционной системой, конфигурацией и установленным программным обеспечением и службами. Это хороший вариант для быстрой миграции сложных локальных веб-приложений в облако, поскольку машины можно перемещать целиком. С помощью виртуальных сетей вы также можете подключить эти виртуальные машины к локальным корпоративным сетям. Как и в случае с облачными службами, у вас есть удаленный доступ к этим машинам и возможность вносить изменения в конфигурацию на административном уровне. Однако, в отличие от веб-сайтов и облачных сервисов, вы должны полностью управлять образами виртуальной машины и архитектурой приложения на уровне инфраструктуры. Одним из основных примеров является то, что вы должны применять свои собственные исправления к операционной системе.

Смотрите обновленное и подробное сравнение по этой ссылке: http://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/

Джамиль
источник
4

Веб-сайты Azure, веб-работники и виртуальные машины - это три различных компьютерных подхода, доступных в Windows Azure. Они различаются по уровню контроля и ответственности:

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

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

Пожалуйста, просмотрите эту статью для получения дополнительной информации, чтобы сделать более осознанный выбор:

Это сводится к компромиссу между простотой использования и возможностями.

johnnyno
источник
3

Еще две вещи, которые я обнаружил, это стоимость получения SSL для сайта с пользовательским доменом и мультитенантных конфигураций.

Для веб-сайта вы должны платить ежемесячно в дополнение к стандартному экземпляру (маленький экземпляр - самый дешевый вариант). Это означает, что для получения пользовательского домена https будет стоить ~ 70 / месяц для небольшого экземпляра плюс ~ 41 / месяц для SSL, который поддерживает все браузеры.

Для WebRole вы можете бесплатно получить экземпляр XS и добавить свой собственный SSL, что означает ~ 15 долларов в месяц, и у вас есть собственный домен с SSL.

Для мультитенантного веб-сайта ознакомьтесь с динамическим подстановочным знаком CName с несколькими арендаторами

Farnam
источник
1

Веб-роль - это виртуальная машина с несколькими веб-сайтами.

MLAR
источник
2
Не совсем точно. Вы можете разместить несколько веб-сайтов в одной веб-роли, но веб-роли выходят далеко за рамки этого, поскольку они являются виртуальными машинами Windows Server. Вы можете выбрать , чтобы не запускать любые веб - сайты , на всех, а просто выполнять фоновые задачи, REST конечных точек, серверов баз данных и т.д. (нет требования использовать IIS, и вы можете даже отключить его). И не забывайте, что они не имеют состояния, что делает их очень легко масштабировать.
Дэвид Макогон
@DavidMakogon Так что я также могу сказать, что веб-роли на самом деле выполняют некоторые задачи, но поскольку он использует протокол HTTP, он называется ролью «WEB», и поскольку он поддерживает этот протокол, он также поддерживает веб-сайты, но это не является его главной целью. в качестве таких?
Адитья Бокаде
@AdityaBokade Не пытайтесь читать дальше: это название является реликтовым с момента первого запуска Azure, где веб-роли были единственным способом размещения приложения, обращенного к внешней стороне (у рабочих ролей не было внешних конечных точек, и больше ничего не существовало - не виртуальные машины, не веб-приложения). Веб (и рабочие) роли - это виртуальные машины Windows без состояния со специальной упаковкой для вашего кода и сценариев запуска. Он не определяется поддержкой http: вы можете общаться с внешними ресурсами через http (s), tcp, udp или даже вообще ничего. Это действительно все, что нужно сделать.
Давид Макогон
0

Это общий вопрос, и я хотел бы выдать выдержку из MSDN.

Доступ к таким службам, как кэширование, служебная шина, хранилище, база данных SQL Azure - веб-сайт: да веб-роль: да

Поддержка ASP.NET, классического ASP, Node.js, PHP-веб-сайта: да. WebRole: да

Общий контент и конфигурация. Сайт: Да. WebRole: Нет.

Развертывание кода с помощью GIT, FTP-WebSite: да WebRole: нет

Практически мгновенное развертывание: веб-сайт: да веб-роль: нет

Веб-сайт поддержки MySQL-как-услуга: да WebRole: да

Несколько сред развертывания (производственная и промежуточная) -WebSite: нет WebRole: да

Сетевая изоляция - веб-сайт: нет веб-роль: да

Удаленный доступ к рабочему столу серверов-WebSite: Нет WebRole: Да

Возможность запуска программ с повышенными правами доступа. Веб-сайт: Нет. Веб-роль: Да.

Возможность определять / выполнять задачи запуска-WebSite: Нет WebRole: Да

Возможность использования неподдерживаемых фреймворков или библиотек. Сайт: Нет. WebRole: Да.

Поддержка Windows Azure Connect / Windows Azure Network-WebSite: Нет WebRole: Да

Чтобы получить более подробную информацию, перейдите по этой ссылке: http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to -use-which.aspx

Адитья Кумаранчат
источник