转载
原文发布于2011年9月
其实,整体上是不需要太深入了解这些东西就可以进行开发的,但我还是觉得,这些概念是应该要知道的。所以刚刚花了一整个晚上,把Windows Azure的底层架构看过一次,所以趁还没忘记的时候,赶快把这些记录下来(我想大概过一阵子我就忘光了吧XDD)。
以下是微软官方白皮书中的图,其实这部分还蛮简单的,简单的说,就是整个应用程序和Data是构建于Windows Azure之上,然后企业、消费者通过网络来访问。
接下来我们针对Windows Azure,进去看它的架构。下面的图来自于wiki,其实数据中心的每一台实体的电脑,都会利用VM的方式,虚拟出许多台的虚拟主机,而每一台实体电脑都一定会有一个装了Windows Azure Host OS的VM,和多个装了Windows Azure Guest OS的VM,其中Windows Azure Host OS是负责管理这台实体电脑上所有的Windows Azure Guest OS,并进行带宽控制等等事情。
虽然单一的实体机有Windows Azure Host OS进行控管,但别忘了数据中心有那么多台实体电脑。所以,由数台机器组成的服务器集群(我们称为“Fabric Controller”),而Fabric Controller就负责管理这些庞大的电脑,如下图。
而Datacenter的量那么大,所以会将Datacenter进行划分,每一区块我们称之为Fault Domain,而Fabric Controller可以控制多个Fault Domain。
最后,Fabric Controller还是要知道每台实体机器里面VM的状况,所以Windows Azure Host OS里面会装一个Windows Azure Fabric Agent,Windows Azure Fabric Agent会传回所有的VM状况给Fabric Controller,让Fabric Controller来掌控。
所以整体的Windows Azure底层大致上是这样子,当然还有许多更细的细节,大家可以参考以下网站。