当我们使用VS发布一个Cloud Service或者在Portal上上传发布包后,就能启动和运行一个云服务,可以保护WebRole,WorkerRole的一个或者多个实例。

Windows Azure是怎么实现这一个过程的呢?要了解这个过程,需要首先了解Windows Azure 的云服务角色架构。

总的来说可以用下面一张图来概括,非常经典的一张图,很多问题都可以在这张图上得到答案。Windows Azure 这些年不断更新,对于这张图来说基本没有变化。

首先对这张图上的名称做解释:

A. RDFE / FFE 用来连接用户到Azure的Fabric. RDFE (RedDog Front End) ,RedDog红狗是一种酒的名称,当时负责这个项目的人喜欢这个酒,就以此命名。REFE是一套向外公开的接口,管理网站的API和Service Management的API(ie. Visual Studio, Azure MMC等)。用户所有的请求都会经过RDFE,然后通过FFE传给Fabric。

B. Fabric controller 就像PC及其的操作系统,它管理和监控数据中心(DataCenter)中的所有资源。它与部署在Host OS上的Host Agent通信,Host Agent 与Guest Agent (部署在VM,WebRole,WorkerRole上)通信,收集将Guest OS的版本、服务包、配置和状态 。

C. Host Agent 是Host OS上一个应用,用来部署Gust OS和Gust Agent 通信。通过心跳方式获取Gust Agent状态,如果10分钟没有得到心跳响应,就会重启Gust OS。

C2.  WaAppAgent 负责安装、配置和升级WindowsAzureGuestAgent.exe。

D. WindowsAzureGustAgent 的职责是:

a. 配置Guest OS的防火墙、ACLs、本地存储资源、服务包和服务配置,以及RDP证书。

b. 为Role运行设置用户账户

c. 与fabric 就角色(WebRole,WorkerRole)的状态进行沟通

d. 启动WaHostBootstrapper进程并检视这个进程和保证角色运行在良好的状态

E. WaHostBootstrapper的职责是:

a. 读取角色配置和启动角色所需的所有任务和进程。

b. 监控所有子进程。

c. 发起角色状态检查。

F. IISConfigurator 的职责是:

a. 启动IIS服务。

b. 配置.net module

c. 根据<sites>节点的配置创建AppPool和站点。

d. 配置IIS的日志路径。

e. 配置站点访问权限。

G. Startup tasks 在RoleModel的配置文件中。这些任务需要进程WaHostBootstrapper启动. Startup tasks 能被异步运行(Background startup task )和同步运行(Simple startup task )。

H. DiagnosticsAgent 用来监听和记录诊断信息的代理,这个任务是后台运行任务。RemoteAccessAgent 是用于RDP远程访问,这个任务是简单任务。

I. WaWorkerHost 是worker role的标准宿主进程,宿主了所有关于Role的DLL,执行代码如OnStart和Run方法吗。

J. WaWebHost 是Web Role的标准宿主进程,使用HWC。这个在SDK1.2可以使用,现在的SDK已经不支持了。

K. WaIISHost 是角色的宿主进程。加载角色访问的第一个DLL,入口是实现RoleEntryPoint的类,执行OnStart,Run,OnStop等方法。

L. W3WP 是IIS的工作进程。

 

一下是每个虚机VM和节点(Node)以及FC的内部结构。

Physical Node: 物理节点(Node),就是一个单片机服务器,可以分成多个(一般8个,16个)Guest Partition。

Guest Partition: 包括Guest OS, 角色实例和Guest Agent

 

Reference:http://blogs.msdn.com/b/kwill/archive/2011/05/05/windows-azure-role-architecture.aspx

Windows Azure 云服务角色架构的更多相关文章

  1. Windows Azure云服务价格调整通知

     好消息!由世纪互联运营的 Windows Azure推出优惠啦.我们采纳了多渠道客户的意见和建议,为了更好地服务大家,将降低多种云服务的价格,其中包括我们最受欢迎的服务 -虚拟机和 Block ...

  2. [转]在 Azure 云服务上设计大规模服务的最佳实践

    本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...

  3. 调试 Azure 云服务项目的方法

    调试 Azure 云服务项目 在菜单栏中选择“调试”>“启动调试”(键盘操作:F5). 重要提示 如果未将 Azure 云服务项目设置为启动项目,当你单击按钮以触发断点时,将出现以下错误:“外部 ...

  4. 【Azure 云服务】Azure Cloud Service在发布新部署后遇见不能RDP(远程连接)到实例时如何处理?

    Azure 云服务是PaaS 的一个示例. 与 Azure 应用服务一样,此技术设计用于支持可缩放.可靠且运营成本低廉的应用程序. 同样,应用服务托管在虚拟机 (VM) 上,Azure 云服务也是如此 ...

  5. 玩转Windows Azure存储服务——网盘

    存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...

  6. 微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK

     发布于 2014-02-10 作者 陈 忠岳 为进一步实现连接微软与非微软技术的目标,微软开放技术有限公司开发了适用于 Windows Azure 移动服务的 Android SDK,由Scot ...

  7. 利用VisualVM监测Azure云服务中的Java应用

    在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...

  8. 转载文章:Windows Azure 基础结构服务上的 Microsoft Dynamics NAV 和 Microsoft Dynamics GP!

    Windows Azure 基础结构服务(虚拟机和虚拟网络)可提供按需基础结构,该基础结构可进行伸缩以适应不断变化的业务需求.无论您是在虚拟机中创建新应用程序,还是运行现有应用程序,我们都将按分钟收费 ...

  9. 宣布正式发布 Windows Azure 移动服务、网站及持续的服务创新

    我们努力创新,向开发人员提供多样化平台以构建最好的云应用程序并在第一时间提供给世界各地的客户.许多新应用程序都属于"现代化应用程序",即始终基于 Web,且可以通过各种移动设备进行 ...

随机推荐

  1. H264解码学习-2015.04.16

    今天看了不少,却感觉收获寥寥. 1.H264相关知识 因为RTP协议发过来的数据已经经过了H264编码,所以这边需要解码.补充一下H264的相关知识. 与以往的视频压缩标准相比,H.264 视频压缩标 ...

  2. react native windows开发环境搭建(二)

    上一篇中介绍了本地服务器端环境的安装,使用已经编译好的apk程序,设置ip地址,就可以看到welcome界面,并且可以对程序做出修改以及调试. 为了扩展和发布应用 还需要能编译loader程序,这里介 ...

  3. 烂泥:CentOS命令学习之scp复制

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 由于工作需要,需要把服务器A上的文件弄一份到服务器B上.自己比较懒不打算搭建FTP.Samba服务器,所以就打算使用scp命令,scp命令是通过ssh协 ...

  4. ubuntu14.04下的NVIDIA Tesla K80显卡驱动的安装教程

    搞深度学习如何能够不与浑身是“核”的显卡打交道呢? 人工智能的兴起除了数据量的大量提升,算法的不断改进,计算能力的逐步提高,还离不开软件基础设施的逐步完善.当下的主流的深度学习工具软件无论是Caffe ...

  5. sqlserver 用 RowNumber 分组

    SELECT RECORD.[RECORD_ID] ,RECORD.[WORKFLOW_INFO_ID] ,RECORD.[FORM_CODE] ,RECORD.[APPLY_DATE] ,RECOR ...

  6. 【转载国外好文】代工开发一个iOS应用没有那么容易

    导读:这是来自新加坡的 iOS 开发者 Kent Nguyen 发表在1月底的一篇博文.这篇吐槽文在 iOS 开发圈子里流传甚广,从原文150多个评论就可见一斑,现翻译如下. 让我们开门见山吧:做一个 ...

  7. VMworld 2015 感受:VMware “Ready For Any”

    今年有机会参加在旧金山举行的 VMworld 2015.今天是正式开始的第一天.争取每天写一篇文章分享所见所听所感.第一天的主要活动,包括上午的 General Session,由 VMware 的几 ...

  8. XMLHTTP中setRequestHeader方法和参数

    注意:在FF里面需要将open方法放在setRequestHeader之前 一.为何要用到setRequestHeader 通 常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTT ...

  9. using关键字背后的故事!

    using关键字的作用: 1:可以引入命名空间2:可以释放资源 *****不能使用using语句完全替换掉(try-catch-finally)语句(无法进行异常处理) 在出了using语句的{}后, ...

  10. Android使用Java Mail API发送邮件

    最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...