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

Erv*_*ter 235 azure azure-web-roles azure-web-sites

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

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

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

Dav*_*gon 210

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

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

Web Apps比Web Roles有优势:

  • 具有部署历史记录/回滚的近乎即时部署
  • 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集成
  • 交通管理员支持
  • 虚拟网络支持

这是我从网站库选择表中获取的一个屏幕抓图: 在此输入图像描述

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

  • 分成层并不是一个区别因素.您可以在Web站点中使用辅助角色. (18认同)
  • 关于层:使用Web站点,您需要通过外部端点连接到Worker,因为Web站点不支持虚拟网络.此外:您必须跨多个部署拆分代码(一个用于Web站点,一个用于Cloud Service w/worker角色).使用Cloud Service,您可以轻松地将代码划分为可扩展的层,然后独立地调整每个层的大小和扩展,同时在所述层之间进行内部通信.这就是我指出层作为云服务(网络/工作者)的区别的意思. (4认同)
  • 使用Web角色,您还可以在相同的VM上执行后台处理 (2认同)

Avk*_*han 44

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

添加更多@David响应:

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

网站共享和Azure Web角色之间的最大区别在于,当角色是VM绑定时,Web站点被视为进程绑定.

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

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

  • 对于它的价值,这个答案中的很多信息不再正确(尽管它是在2012年6月):网站现在可以拥有自定义域.网站可以在"保留"模式下运行,该模式本质上是一个VM,但是完全可以管理. (19认同)

小智 34

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

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

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


Jim*_*mmy 14

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

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


小智 6

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


Jam*_*mil 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/