Windows Azure 云服务角色架构
当我们使用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 云服务角色架构的更多相关文章
- Windows Azure云服务价格调整通知
好消息!由世纪互联运营的 Windows Azure推出优惠啦.我们采纳了多渠道客户的意见和建议,为了更好地服务大家,将降低多种云服务的价格,其中包括我们最受欢迎的服务 -虚拟机和 Block ...
- [转]在 Azure 云服务上设计大规模服务的最佳实践
本文转自:http://technet.microsoft.com/zh-cn/magazine/jj717232.aspx 英文版:http://msdn.microsoft.com/library ...
- 调试 Azure 云服务项目的方法
调试 Azure 云服务项目 在菜单栏中选择“调试”>“启动调试”(键盘操作:F5). 重要提示 如果未将 Azure 云服务项目设置为启动项目,当你单击按钮以触发断点时,将出现以下错误:“外部 ...
- 【Azure 云服务】Azure Cloud Service在发布新部署后遇见不能RDP(远程连接)到实例时如何处理?
Azure 云服务是PaaS 的一个示例. 与 Azure 应用服务一样,此技术设计用于支持可缩放.可靠且运营成本低廉的应用程序. 同样,应用服务托管在虚拟机 (VM) 上,Azure 云服务也是如此 ...
- 玩转Windows Azure存储服务——网盘
存储服务是除了计算服务之外最重要的云服务之一.说到云存储,大家可以想到很多产品,例如:AWS S3,Google Drive,百度云盘...而在Windows Azure中,存储服务却是在默默无闻的工 ...
- 微软开放技术开发了适用于 Windows Azure 移动服务的开源 Android SDK
发布于 2014-02-10 作者 陈 忠岳 为进一步实现连接微软与非微软技术的目标,微软开放技术有限公司开发了适用于 Windows Azure 移动服务的 Android SDK,由Scot ...
- 利用VisualVM监测Azure云服务中的Java应用
在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...
- 转载文章:Windows Azure 基础结构服务上的 Microsoft Dynamics NAV 和 Microsoft Dynamics GP!
Windows Azure 基础结构服务(虚拟机和虚拟网络)可提供按需基础结构,该基础结构可进行伸缩以适应不断变化的业务需求.无论您是在虚拟机中创建新应用程序,还是运行现有应用程序,我们都将按分钟收费 ...
- 宣布正式发布 Windows Azure 移动服务、网站及持续的服务创新
我们努力创新,向开发人员提供多样化平台以构建最好的云应用程序并在第一时间提供给世界各地的客户.许多新应用程序都属于"现代化应用程序",即始终基于 Web,且可以通过各种移动设备进行 ...
随机推荐
- 《java JDK7学习笔记》之跨平台与路径设置
Platforms表示Solaris.Linux.Windows各种操作系统平台,在这些平台上架构了java Virtaul Machine,简称JVM,Java虚拟机. Java虚拟机可以让java ...
- MongoDB Sharding、库、collection设计学习汇总
sharding设计须考虑的几个因素 Sharding Key的选择 在片键的选择上,最好是能够在字段中选择混合型的片键,大范围的递增健.和随机分布的健组合,如按月份递增.按用户名 ...
- Java api 入门教程 之 JAVA的文件操作
I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程的一个基本 ...
- 设计模式C#实现(十二)——装饰模式
意图 0 适用性 1 结构 2 实现 3 效果 4 参考 5 意图 动态的给一个对象添加一些额外的职责. 适用性 动态的为单个对象添加职责而不影响其他对象 处理那些可以撤销的职责(? 在某些功能不需要 ...
- Windows10 利用 Docker 配置 TensofFlow 深度学习工具
TensorFlow 这个不用多介绍了吧,大家都知道,Google的开源深度学习软件库,官网点这里:https://www.tensorflow.org/ 当然这个工具官方支持装在 Ubuntu 和 ...
- Can't load AMD 64-bit .dll on a IA 32-bit platform
主要谈谈在win8.1(64bit)下搭建环境的经历. 安装win8.1(64bit)后,配置java环境是费了我一番心思的,所以想记录下来,成为经验.64位系统下比较理想的配置应该是 64位jdk ...
- Python定时任务框架APScheduler 3.0.3 Cron示例
APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务.基 ...
- Scala编程第二课
函数式编程 函数式编程,结构化编程,OO编程都是编程的方法论. 函数式编程主要思想是把运算过程尽量写成一系列嵌套的函数调用. 特点如下: 1.函数可以像其他数据类型一样使用 可以可以赋值给其他变量,可 ...
- [译] 企业级 OpenStack 的六大需求(第 1 部分):API 高可用、管理和安全
全文包括三部分: 第一部分:API 高可用和管理以及安全模型 第二部分:开放架构和混合云兼容 第三部分:弹性架构和全球交付 引言 OpenStack 是构造企业级私有云的非常理想的基础.它立志成为新一 ...
- [Computer structure] Written Notes
To some extent, taking notes using my pen and pencil is also an interesting thing! bingo! ~ 2016-03- ...