Azure网站的顶层架构
微软在每个数据中心都部署有Azure网站系统。根据用户数量,数据中心可用机器容量等,在每个数据中心部署有不同数量的部署单元。每个部署单元都是包含完整Azure网站功能的独立系统,每个部署单元之间是相互独立的。下图描述了Azure网站的顶层架构。

同一个Azure订阅下的,属于同一个数据中心的所有网站都在一个部署单元中,不会分散到不同的部署单元。比如,Sky在香港数据中心创建了10个网站,那么这10个网站都会被创建在一个部署单元中(比如HK001部署单元),而不会分散到几个不同的部署单元。

Azure网站顶层架构
部署单元架构
Azure部署单元架构借鉴了Microsoft Web Farm Framework的设计,如下图所示,它有5个最基本的核心组件构成。

Azure网站部署单元架构

Azure网站部署单元架构

网站工作服务器(Web Worker)
客户的网站运行在网站工作服务器。每个部署单元通常有上千台网站工作服务器。可以简单的认为一台网站工作服务器就是一台IIS服务器。每台服务器上可能同时运行很多客户的网站.客户也可以要求自己的网站同时运行几个实例,Azure网站提供负载均衡服务。工作服务器上安装有运行客户网站必需的语言环境和各种框架。包括:

  • IIS
  • .Net Framework
  • PHP
  • Node.js
  • Python
  • WebDeploy/GIT
  • 数据访问组件,比如Microsoft Data Access Component和MySQL的数据驱动程序

前端服务器(Frontend)
前端服务器是Azure网站系统的入口服务器。每个部署单元通常有多台前端服务器。Azure负载均衡设备负责把客户的请求分发到前端服务器。前端服务器上安装有扩展的IIS Application Request Routing(ARR)。IIS ARR是一个工作在HTTP层的负载均衡组件,它是前端服务器的最重要的组件。建议您阅读下面的文章帮助您更好的理解前端服务器的工作原理。

http://www.iis.net/downloads/microsoft/application-request-routing

前端服务器主要提供三个功能:

  • 请求转发功能。将客户的请求转发到对应的工作服务器,并将工作服务器的响应转发给客户端。
  • 负载均衡功能。如果客户网站有多个实例在运行,前端服务器根据配置的负载均衡算法将客户请求分发到各个网站实例。
  • 分配工作服务器。当第一个请求到达时,前端服务器根据工作服务器的负载情况选择当前负载最低的工作服务器分配给客户。

部署服务器(Publishing Server)
Azure网站提供多种部署方式,比如GIT,WebDeploy,FTP等。只有FTP部署通过部署服务器完成。同时,FTP提供了诊断日志下载功能。GIT和WebDeploy直接通过客户网站本身完成部署任务。
文件服务器(File Server)
文件服务器通过Microsoft Azure云存储提供文件服务,包括客户网站文件,配置文件,诊断日志和临时文件等。客户的网站文件保存在文件服务器,工作服务器通过UNC共享路径的方式访问网站文件。
运行时数据库(Runtime Database)
运行时数据库存储有客户网站数据,配置等信息,同时保存客户资源使用情况。
延伸阅读
该架构与Microsoft Web Farm Framework有些类似,您可以参考下面的文章来更好的了解该架构。

http://www.iis.net/learn/web-hosting/microsoft-web-farm-framework-20-for-iis-7


Leave a comment

电子邮件地址不会被公开。 必填项已用*标注

2 thoughts on “Microsoft Azure网站架构