首页 文章

在Windows Azure中:什么是Web角色,辅助角色和VM角色?

提问于
浏览
108

我工作的应用程序包含一个Web角色:它是一个简单的Web应用程序 . 我需要在Windows Azure中托管应用程序,因此我创建了一个Web角色 . 我其实想知道这些角色是什么 . 他们的编码明智或存储方面的意义是什么?

4 回答

  • 3

    EDIT 3/3/2013 - updated to reference UDP endpoints, Virtual Machines, and more languages

    EDIT 6/6/2013 - updated to reflect the discontinuation of VM Role, and update to web/worker role baseline OS images to Windows Server 2012

    @Vladimir的良好链接 . 更一点澄清:所有角色(web,worker)本质上都是Windows Server . Web和Worker角色几乎完全相同:

    • Web角色是启用了IIS的Windows Server VM

    • 辅助角色是禁用IIS的Windows Server VM(您可以手动启用它)

    • VM角色是您通过Hyper-V在本地构建并上载到Azure的Windows Server 2008映像 (and are now discontinued and no longer available as of May 31, 2013

    • 虚拟机是在Azure中创建的Windows或Linux映像,在您自己的存储中存储为vhd,并且具有多个VM角色增强功能 . 例如:由于vhd位于您自己的存储帐户中,您可以轻松地从vhd创建映像模板,将其复制到新的vhd,或者甚至将其上载到VM Depot(仅限Linux) .

    要回答有关如何处理这些角色的问题:平台培训工具包(如下所述)将为您提供许多好的想法和示例,但这里有一些简单的用例:

    • 您可以运行任何公开tcp,http,https或udp endpoints 的代码(Web应用程序,SOAP / REST服务等) . 您需要考虑无状态的处理方式 - 如果您运行多个VM实例,则会在这些实例之间分配用户流量 . 平台培训套件将向您展示如何使用存储或缓存来处理此问题 .

    • 您可以运行生效于队列或计时器的代码 . 也许您有按需创建的任务,例如缩略图生成照片或基于用户输入的计算 . 这些不需要外部可用的 endpoints . 您可以将请求推送到队列,然后运行一个简单地从此队列中提取的任务(您可以跨多个实例扩展此过程,并且所有实例都会使用队列消息) .

    • 您可以运行.NET,Java,php,python,node,ruby等 . 您只需要将适当的运行时代码与项目代码一起分发 . 所有语言都可以对Azure API进行REST调用,并且多种语言(包括上面提到的语言)都有SDK来为您处理这些问题 . 所有语言SDK均为here,源代码位于github,here .

    • 使用VM角色,您可以安装和运行具有非常复杂/耗时的安装,需要手动干预的安装以及无法可靠自动化的安装的软件 . 在这种情况下,您必须处理操作系统维护 . 超越虚拟机角色,现在有虚拟机,提供基于 Cloud 的虚拟机构建以及Windows和Linux支持 . 我建议虚拟机通过虚拟机角色 .

    通过Web和Worker角色,操作系统和相关补丁可以为您处理;您无需管理VM即可构建应用程序的组件 .

    使用VM角色,您可以构建完整的Windows Server映像,向其添加Azure挂钩,并将整个VM推送到 Cloud 中(然后随着时间的推移维护VM映像) .

    使用虚拟机,您只需从库中选择一个操作系统映像,该映像将为您创建并存储为blob存储中的vhd . 然后你RDP / ssh并按你喜欢的方式设置它 .

    戴着建筑师的帽子,这是它变得有趣和有趣的地方 . 您可以在Web角色或辅助角色中运行Web服务(并且可以在其中打开端口);您可以使用Worker角色托管Tomcat或其他Web服务器 . 您可以选择将网站和服务组合在一个角色中,也可以将它们分成多个角色以满足不同的可扩展性需求 .

    为了一个好的开始,看看Platform Training Kit并开始练习 .

  • 30
    • Web角色是IIS中托管的Web应用程序 .

    • 工作者角色是可以完成某些工作的进程(即自动压缩上传的图像,在数据库中发生更改时执行操作,从队列和进程获取新消息,您将其命名)

    • VM角色托管VM

  • 99

    几天前我遇到了这个问题/答案,我发现答案提供了一点点(我是Azure和Web的新手) . 我在今晚的Azure基础知识中找到了这个摘要,我认为这是对工作者和Web角色之间核心差异的良好高级概述:

    两者的主要区别是一个Web角色的实例运行IIS,而一个worker角色的实例不运行IIS . 但是,两者都以相同的方式进行管理,并且应用程序通常使用它们 . 例如,Web角色实例可能接受来自用户的请求,然后将它们传递给辅助角色实例进行处理 . 要向上或向下扩展应用程序,可以请求Windows Azure创建更多任一角色的实例或关闭现有实例 . 与Windows Azure虚拟机类似,仅向每个Web或辅助角色实例运行的时间收取费用 .

    如果您是Azure开发的新手,我强烈建议您阅读完整文章:Intro to Windows Azure

    我希望这可以帮助别人,因为它帮助我打开灯泡 .

  • 21

    Windows Azure中的Web角色是特殊用途,并提供用于托管前端Web应用程序的专用Internet信息服务(IIS)Web服务器 . 您可以快速轻松地将Web应用程序部署到Web角色,然后向上或向下扩展Compute功能以满足需求 .

相关问题