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

时间:2012-06-08 00:01:14

标签: azure azure-web-roles azure-web-sites

新的Azure Web Sites与ASP.NET MVC应用程序的传统Azure Web角色之间有哪些重大差异?我选择“网站”而不是“网络角色”的原因是什么?反之亦然?

让我们假设在任何一种情况下我都需要相同的容量(例如2个小实例)。除了网站在预览期间有33%的临时折扣这一事实外,价格似乎具有可比性。

对于使用网络角色有困难或不可能的“网站”,我能做些什么吗?例如,使用“网站”将多个网站放在一组虚拟机中变得容易吗?我是否会因“网站”与“网络角色”而失去任何东西?能够微调IIS吗?能否在本地使用缓存服务?

10 个答案:

答案 0 :(得分:209)

Web角色为您提供Web应用程序(以前称为Web站点)以外的一些功能:

  • 能够运行提升的启动脚本来安装应用程序,修改注册表设置,安装性能计数器,微调IIS等。
  • 能够将应用程序拆分为层(可能是前端的Web角色,后端处理的工作者角色)和独立扩展
  • 能够将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角色并根据需要进行扩展。

答案 1 :(得分:43)

EDIT 2014:对于它的价值,这个答案中的很多信息都不再正确 - 请参阅评论。

向@David回复添加更多内容:

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

网站共享和Azure网络角色之间的最大区别在于,当角色是虚拟机绑定时,网站被视为进程绑定。

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

Windows Azure网站不能拥有自己的主机名,而只能使用 websitename .azurewebsites.net,您确定可以在DNS提供程序中使用CNAME设置来路由您的请求与以前的Windows完全相同Azure角色仅在它们以保留模式运行时。共享网站不支持CNAME设置。

答案 2 :(得分:34)

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

摘自我的结论:如果您需要大规模的SSL,亚洲或美国西部数据中心,非标准配置(IIS,端口,诊断,安全证书或启动脚本),RDP或具有成本效益工作者角色(与您的Web角色相结合)然后您将不得不坚持Web角色。

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

答案 3 :(得分:14)

Azure Web Role就像一个虚拟私有主机。您将获得充当Web服务器的VM,并拥有该VM实例。

Azure网站就像一个弹性共享托管服务。您将应用程序部署到不受您控制的Web服务器,并且还为其他用户的站点提供服务。您可以上下调整您的网站(需要额外收费),以便在您的资源需求发生变化时使其更具弹性。

答案 4 :(得分:6)

还有一个场景即将播出:在消除了这500个例外之后,他们还没有说明Azure网站处理通配符CNAME的能力。我们中的一些人正在云服务中使用Nate的Web角色加速器,因为在Nate的软件中提供了单行黑客提供的通配符子域功能。在我们知道Azure网站能够处理它们之前,我们无法移动这些通配符子域应用程序。如果它永远无法做到这一点,那么它就会在Web角色方​​面作为积极因素下降。另外值得注意的是,由于定价完全相同(在预览折扣到期后),我不确定是否要放弃访问RDC和事件查看器(仅提及两件事)。

答案 5 :(得分:6)

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

云服务使您能够在丰富的平台即服务(PaaS)环境中创建高度可用,可扩展的Web应用程序。与Web站点不同,在部署到Azure之前,首先在开发环境(如Visual Studio)中创建云服务。框架(如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/

答案 6 :(得分:4)

Azure网站,Web工作者和虚拟机是Windows Azure上可用的三种不同的计算方法。他们在控制和责任方面有所不同:

  • Azure网站具有最低级别的控制权,但您不关心保留运行状况虚拟机和IIS,因为Azure的内容为您执行此操作
  • 网络角色为您提供更多控制权(流量管理器,远程桌面),但您可以进行更多管理,这意味着您可以通过远程桌面破解某些内容,例如
  • 虚拟机可让您完全控制VM,因此需要进行大量管理工作。

没有一个最佳选择,因为它取决于您需要什么级别的控制,您需要哪些功能以及您希望保留Azure内容。这是一个很大的话题..

请查看这些文章以获取更多信息,以便做出更明智的选择:

归结为在易用性和功能之间进行权衡。

答案 7 :(得分:3)

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

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

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

对于多租户网站退房 Multi-tenant Azure dynamic wildcard CName

答案 8 :(得分:1)

Web角色是托管多个网站的虚拟机

答案 9 :(得分:0)

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

访问缓存,服务总线,存储,SQL Azure数据库等服务 - WebSite:是WebRole:是

支持ASP.NET,经典ASP,Node.js,PHP- WebSite:是WebRole:是

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

使用GIT,FTP-WebSite部署代码:是WebRole:否

近即时部署 - 网站:是WebRole:否

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

多个部署环境(生产和登台)-WebSite:No WebRole:是

网络隔离 - 网站:没有WebRole:是

远程桌面访问服务器-WebSite:否WebRole:是

能够使用提升的权限运行程序 - WebSite:没有WebRole:是

定义/执行启动任务的能力-WebSite:No WebRole:是

能够使用不受支持的框架或库 - WebSite:没有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