Azure网站和Azure Web角色之间的区别是什么

新的Azure网站和传统的Azure Web角色之间有什么实质性的区别。NET MVC应用程序?我选择“网站”而不是“网络角色”的原因是什么?反之亦然?

让我们假设在两种情况下我都需要相同的容量(例如2个小实例)。除了网站在预览期有33%的临时折扣外,价格似乎是相当的。

我在“网站”上可以做的事情,在网络角色上是困难的或不可能的吗?例如,使用“网站”将多个网站放在一组虚拟机中变得容易吗?我在“网站”和“网络角色”之间失去了什么吗?能够微调IIS?是否能够在本地使用缓存服务?

54822 次浏览

Web角色提供了Web应用程序(以前的Web站点)之外的几个功能:

  • 能够运行提升的启动脚本来安装应用程序,修改注册表设置,安装性能计数器,微调IIS等。
  • 能够将应用程序划分为多个层次(可能Web Role用于前端,Worker Role用于后端处理)并独立扩展
  • 能够RDP到您的VM调试的目的
  • 网络隔离
  • 专用的虚拟IP地址,允许云服务中的web角色实例访问受IP限制的虚拟机
  • acl限制端点(在Azure SDK 2.3中添加,2014年4月)
  • 支持任何TCP/UDP端口(网站仅限于TCP 80/443)

Web应用程序比Web角色有优势:

  • 具有部署历史记录/回滚的近乎即时部署
  • Visual Studio Online, github,本地git, ftp, CodePlex, DropBox, BitBucket部署支持
  • 能够推出众多CMS和框架之一(如WordPress, Joomla, Django, MediaWiki等)
  • 使用SQL数据库或MySQL
  • 简单快速地从免费层扩展到共享层再到专用层
  • 网络工作
  • 网站内容的备份
  • 内置基于web的调试工具(简单的cmd/powershell调试控制台,进程资源管理器,诊断工具,如日志流等)

随着2014年4月和2014年9月的推出,现在有一些Web应用程序和Web角色(以及工作者角色)共同的特性,包括:

  • 登台+生产槽
  • 通配符DNS, SSL证书
  • Visual Studio集成
  • 流量管理器支持
  • 虚拟网络支持
以下是我从网站画廊选择表单中截取的截图: enter image description here

我认为Web应用程序是快速启动和运行的好方法,你可以从共享资源转移到预留资源。一旦你不再局限于此,你就可以升级到Web角色,并根据需要进行扩展。

EDIT 2014:不管怎样,这个答案中的很多信息都不再正确了——请看评论。

在@David的回复中添加更多内容:

使用Windows Azure网站,您无法控制IIS或web服务器,因为您在同一台机器上使用一个资源片以及数百个其他网站,您像其他网站一样共享资源,因此无法控制IIS。

共享网站和Azure web角色之间的最大区别是,网站被认为是进程绑定,而角色被认为是虚拟机绑定。

网站存储在内容共享中,可以从场中的所有“web服务器”访问,因此不需要复制或类似的东西。

Windows Azure网站不能有自己的主机名,而是必须使用websitename.azurewebsites.net,你当然可以在你的DNS提供商中使用CNAME设置来路由你的请求,与之前的Windows Azure角色完全相同,只有当它们在保留模式下运行时。共享网站不支持CNAME设置。

Azure Web角色就像一个虚拟的私有主机。你有一个虚拟机作为你的web服务器,你拥有这个虚拟机实例。

Azure Web站点就像一个弹性共享托管服务。你把你的应用程序部署到一个不受你控制的web服务器上,它也为其他用户的网站提供服务。您可以根据资源需求的变化,上下扩展站点(需要额外付费),使其更具弹性。

我刚刚在http://robdmoore.id.au/blog/2012/06/09/windows-azure-web-sites-vs-web-roles/上发布了一篇关于这个主题的综合博客文章。

我的结论摘录如下:如果你需要巨大的规模,SSL,亚洲或美国西部的数据中心,一个非标准配置(IIS,端口,诊断,安全证书或启动脚本),RDP或具有成本效益的工作者角色(结合你的Web角色),那么你现在将不得不坚持使用Web角色。

否则,网站是一个很好的选择!

还有一种情况是悬而未决的:在这500个异常被消除后,Azure网站没有任何关于处理通配符CNAME的能力。我们中的一些人在云服务中使用Nate的Web角色加速器,因为一行黑客在Nate的软件中提供了通配符子域功能。我们不能移动这些通配符子域应用程序,直到我们知道Azure网站将能够处理它们。如果它永远无法做到这一点,那么它在方程式的Web角色方面就会下降为积极的。同样值得注意的是,定价完全相同(在预览折扣到期后),我不确定我是否想放弃对RDC和事件查看器的访问(仅提两件事)。

web角色是承载多个网站的虚拟机

Azure网站、Web worker和虚拟机是Windows Azure上可用的三种不同的计算方法。他们在控制和责任的水平上有所不同:

  • Azure网站有最低级别的控制,但你不关心保持健康的虚拟机和IIS,因为Azure的东西为你做这些
  • Web角色给你更多的控制(流量管理器,远程桌面),但更多的管理是可能的在你这边,这意味着你可以通过远程桌面打破一些例如
  • 虚拟机让你完全控制VM,所以需要最大的管理努力。

没有最好的选择,因为这取决于你需要什么样的控制级别,你需要什么特性,以及你希望留给Azure哪些东西来维护。这是一个大话题。

请阅读这篇文章,了解更多信息,做出更明智的选择:

这可以归结为易用性和功能之间的权衡。

我发现的另外两件事是为自定义域站点获取SSL的成本和多租户配置。

对于网站,你需要在标准实例的基础上每月支付(小实例是最便宜的选择)。这意味着为了获得自定义域https将花费你~70/月的小实例加上~41/月的SSL支持所有浏览器。

对于WebRole,您可以免费获得XS实例并添加自己的SSL,这意味着每月约15美元 你有一个自定义的SSL域。< / p >

对于多租户网站签出 多租户Azure动态通配符CName < / p >

Azure网站使您能够在Azure上快速构建高度可伸缩的网站。您可以使用Azure Portal或命令行工具使用流行语言(如. net、PHP、Node.js和Python)建立网站。受支持的框架已经部署,不需要更多的安装步骤。Azure Web Sites库包含许多第三方应用程序,如Drupal和WordPress,以及Django和CakePHP等开发框架。创建网站后,您可以迁移现有网站或建立一个全新的网站。Web站点消除了管理物理硬件的需要,并且还提供了几种扩展选项。您可以从共享的多租户模型转移到标准模式,其中专用机器为传入流量提供服务。Web站点还允许您与其他Azure服务集成,例如SQL数据库、服务总线和存储。使用Azure WebJobs SDK预览,您可以添加后台处理。总之,Azure Web站点通过支持广泛的语言、开源应用程序和部署方法(FTP、Git、Web Deploy或TFS),可以更容易地专注于应用程序开发。如果您没有需要云服务或虚拟机的特殊要求,Azure网站很可能是最佳选择。

云服务使您能够在丰富的平台即服务(PaaS)环境中创建高可用性,可扩展的web应用程序。与Web站点不同,云服务首先在开发环境(如Visual Studio)中创建,然后才部署到Azure。框架(如PHP)需要自定义部署步骤或在角色启动时安装框架的任务。云服务的主要优势是能够支持更复杂的多层体系结构。单个云服务可以由前端web角色和一个或多个工作人员角色组成。每一层都可以独立伸缩。对web应用程序基础设施的控制级别也有所提高。例如,您可以将桌面远程到正在运行角色实例的计算机上。您还可以编写脚本,在角色启动时运行更高级的IIS和机器配置更改,包括需要管理员控制的任务。

虚拟机允许你在Azure的虚拟机上运行web应用程序。这种功能也称为基础设施即服务(IaaS)。通过门户创建新的Windows Server或Linux计算机,或上传现有的虚拟机映像。虚拟机为您提供了对操作系统、配置以及已安装软件和服务的最大控制。这是快速将复杂的本地web应用程序迁移到云中的一个很好的选择,因为机器可以作为一个整体移动。使用虚拟网络,您还可以将这些虚拟机连接到内部企业网络。与云服务一样,您可以远程访问这些机器,并能够在管理级别执行配置更改。但是,与Web站点和云服务不同,您必须完全在基础设施级别管理虚拟机映像和应用程序体系结构。一个基本的例子是,您必须将自己的补丁应用到操作系统。

查看更新和全面的比较从这个链接:http://azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/

这是一个常见的问题,我想从msdn中摘录一段。

访问服务,如缓存,服务总线,存储,SQL Azure数据库-网站:是WebRole:是

支持ASP。NET,经典ASP, Node.js, PHP-网站:是WebRole:是

共享的内容和配置-网站:是WebRole:否

使用GIT、FTP部署代码-网站:是WebRole:否

近即时部署-网站:是web brole:否

集成mysql即服务支持-网站:是WebRole:是

多部署环境(生产和登台)-网站:没有WebRole:有

网络隔离-网站:无web brole:有

远程桌面访问服务器-网站:没有WebRole:是

能够以更高的权限运行程序-网站:没有web brole:是

能够定义/执行启动任务-网站:没有web brole:有

能够使用不受支持的框架或库-网站:没有WebRole:有

支持Windows Azure Connect/ Windows Azure Network-WebSite:No WebRole:Yes

要获得更详细的信息,请访问这个链接:http://blogs.msdn.com/b/silverlining/archive/2012/06/27/windows-azure-websites-web-roles-and-vms-when-to-use-which.aspx