首页 文章

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

提问于
浏览
219

新的Azure Web Sites与ASP.NET MVC应用程序的传统Azure Web角色之间有什么重大差异?我在"web role"上选择"web site"的原因是什么,反之亦然?

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

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

10 回答

  • 3

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

    • 能够运行提升的启动脚本来安装应用程序,修改注册表设置,安装性能计数器,微调IIS等 .

    • 能够将应用程序拆分为层(可能是前端的Web角色,后端处理的工作者角色)和独立扩展

    • 能够将RDP导入VM以进行调试

    • 网络隔离

    • 专用虚拟IP地址,允许 Cloud 服务中的Web角色实例访问受IP限制的虚拟机

    • ACL限制 endpoints (在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集成

    • 流量管理器支持

    • 虚拟网络支持

    这是我从网站库选择表中获取的一个屏幕抓图:
    enter image description here

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

  • 4

    EDIT 2014: For what it's worth, a lot of the info in this answer is no longer correct - see comments.

    添加更多@David响应:

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

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

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

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

  • 34

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

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

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

  • 6

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

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

  • 0

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

  • 14

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

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

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

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

  • 201

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

    • Azure Website 具有最低级别的控制,但您不关心保留在运行状况虚拟机和IIS中,因为Azure的内容为您执行此操作

    • Web Roles 为您提供更多控制权(流量管理器,远程桌面),但您可以进行更多管理,这意味着您可以通过远程桌面破解某些内容,例如

    • Virtual Machines 使您可以完全控制VM,因此需要最多的管理工作 .

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

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

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

  • 6

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

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

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

    对于多租户网站,请查看Multi-tenant Azure dynamic wildcard CName

  • 43

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

  • 0

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

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

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

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

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

    近乎即时的部署 - 网站:是的WebRole:没有

    集成的MySQL即服务支持 - WebSite:是WebRole:是的

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

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

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

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

    能够定义/执行启动任务 - WebSite:没有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

相关问题