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

新的Azure网站和ASP.NET MVC应用程序的传统Azure Web角色之间有什么重大区别? 我有什么理由选择“网站”而不是“网络角色”?反之亦然?

假设在这两种情况下我都需要相同的能力(例如,2个小实例)。 除了预览期间网站临时折扣33%的事实之外,价格似乎可比。

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

Web角色为Web Apps(以前的Web站点)提供了多种功能:

  • 能够运行提升的启动脚本来安装应用程序,修改注册表设置,安装性能计数器,微调IIS等。
  • 能够将应用程序分成多个层(可能是前端的Web角色,后端处理的工作者角色)和独立缩放
  • 能够将RDP加入虚拟机以进行调试
  • 网络隔离
  • 专用虚拟IP地址,允许云服务中的Web角色实例访问受IP限制的虚拟机
  • 限制ACL的端点(在2014年4月的Azure SDK 2.3中添加)
  • 支持任何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
  • 简单而快速地从免费套餐到共享套餐到专属套餐
  • 网络工作
  • 网站内容的备份
  • 内置基于网络的调试工具(简单的cmd / powershell调试控制台,进程管理器,诊断工具,如日志流等)

随着2014年4月和2014年9月的推出,现在有一些Web Apps和Web Roles(和Worker Roles)共有的功能,其中包括:

  • 舞台+制作插槽
  • 通配符DNS,SSL证书
  • Visual Studio集成
  • 流量管理器支持
  • 虚拟网络支持

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

我认为Web应用程序是快速启动和运行的好方法,可以从共享资源转移到保留资源。 一旦你长大了,你可以移动到Web角色,并根据需要进行扩展。

编辑2014年:为什么这是值得的,这个答案很多信息不再是正确的 – 见评论。

将更多添加到@David响应:

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

网站共享和Azure Web角色之间的巨大差异在于,网站被视为进程绑定,而角色被虚拟机绑定。

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

Windows Azure网站不能拥有自己的主机名,而只能使用websitename .azurewebsites.net,而且您确定可以在您的DNS提供程序中使用CNAME设置,只有当它们以保留模式。 共享网站不支持CNAME设置。

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

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

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

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

Azure网站就像一个弹性的共享托管服务。 您将您的应用程序部署到不受您控制的Web服务器,并且该服务器也服务于其他用户的站点。 您可以调整您的网站上下(额外收费),使其更具弹性,因为您的资源需求转移。

另外还有一个场景是这样的:在消除了这500个异常之后,他们没有提到Azure网站处理通配符CNAME的能力。 在Nate的软件中,我们有几个人在云服务中使用Nate的Web角色加速器,这是因为在Nate软件中提供了一个单行破解的通配符子域功能。 除非我们知道Azure网站能够处理这些通配符子域应用,否则我们无法移动这些通配符子域应用。 如果它永远无法做到这一点,那么它就等同于Web角色方​​面的积极成果。 另外值得注意的是,在定价完全相同的情况下(预览折扣到期后),我不确定我想放弃对RDC和事件查看器的访问(只是提到两件事情)。

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

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

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

请参阅此链接的更新和全面的比较: http : //azure.microsoft.com/en-us/documentation/articles/choose-web-site-cloud-service-vm/

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

  • Azure网站的控制水平最低,但您并不在乎保持虚拟机和IIS的健康状况,因为Azure为您做了这些
  • Web角色为您提供了更多的控制权(流量管理器,远程桌面),但是更多的管理可能在您身边,这意味着您可以通过远程桌面打破某些操作
  • 虚拟机可以完全控制虚拟机,因此需要最多的管理工作。

没有最好的选择,因为它取决于你需要什么级别的控制,你需要什么功能以及你想要保留Azure的东西。 这是一个很大的话题

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

归结为易用性和性能之间的折衷。

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

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

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

对于多租户网站,请查看多租户Azure动态通配符CName

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

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

访问服务,如缓存,服务总线,存储,SQL Azure数据库 – Web站点:是WebRole:是的

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

共享内容和配置 – WebSite:是WebRole:没有

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

即时部署 – 网站:是WebRole:没有

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

多个部署环境(生产和分期) – 网站:没有WebRole:是的

网络隔离 – 网站:否WebRole:是

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

能够使用提升的权限运行程序 – WebSite:否WebRole:是

能够定义/执行启动任务 – WebSite:否WebRole:是

能够使用不受支持的框架或库 – WebSite:否WebRole:是

支持Windows Azure Connect / Windows Azure网络 – Web站点:否WebRole:是

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

Interesting Posts