2.2 几种常见的部署模型
下面介绍了在On-Promises环境中部署Web服务器的三种常见方式,并比较了三种部署方式的异同以及保障部署一致性的相关工具。
2.2.1 负载平衡器和Web服务器方式
如图2.1所示,这种模型是客户服务现场最常见的部署模型。Web服务器没有加入域,访问数据库无法使用Windows集成安全验证,配置文件和Web站点目录依靠管理员手工复制。
图2.1 负载平衡器和Web服务器部署示意图
在这种部署模式下,网络管理员往往自己通过文件复制的方式部署Web网站的内容。其实,这种部署模式笔者不推荐使用。因为在笔者支持过的客户中,这种部署方式很普遍,所以有必要在此特别说明。这种部署模式的缺陷主要有:
(1)Web服务器不在域内,因此无法使用更安全的验证方式也无法有效地对权限进行集中管控。
(2)对于单台Web服务器的部署,基本上是通过管理员手工部署实现的,极容易产生不一致性。
(3)在后续的网站程序版本迭代过程中,Web服务器极容易出现不一致性。例如某些服务器丢失文件或者文件版本不一致,又或者配置项不一致,等等。
为了规避Web内容的不一致问题,可以采用Web Deploy工具、Robocopy或Git等源代码管理工具客户端等来帮助检测差异性和执行内容复制。
2.2.2 负载平衡加Web服务器和DFS服务器方式
Windows Server操作系统带有一个名为分布式文件系统的服务,简称DFS,该服务可以在域内把指定目录下的文件自动且快速地同步到分布式文件系统的其他节点上,借助这个服务,可以实现Web服务器部署内容和配置的一致性,如图2.2所示。
图2.2 使用微软分布式文件系统(DFS)的部署模型
前提条件:
(1)全部Web服务器加入同一个域。
(2)全部Web服务器配置DFS服务。
(3)配置要同步的路径,包括IIS配置文件、Web站点内容路径以及.NET Framework配置文件路径等。
优势:
(1)DFS服务的内置算法保证了文件同步的及时性和一致性。
(2)配置文件和Web内容文件都保存在Web服务器本地。
劣势:
每台Web服务器节点都需要安装和配置DFS服务。
DFS服务的安装和配置较为复杂,超出了本书的范围,有关DFS的配置请自行参考:
https://technet.microsoft.com/en-us/library/cc732863(v=ws.10).aspx
2.2.3 负载平衡加Web服务器和集中存储方式
如图2.3所示的部署方式,可以通过IIS管理控制台界面把IIS配置文件导出到文件共享服务器上,然后让其他的Web服务器节点使用共享服务器路径上的IIS配置文件,达到各个Web服务器节点配置一致的目的。
图2.3 共享文件服务器方式的部署模型
对于Web网站内容,也可以部署在文件共享服务器上,让全部IIS服务访问同一个Web网站内容副本,以保证网站内容的一致性。
前提条件:
(1)有专门的文件共享服务器。
(2)所有Web服务器和文件共享服务器加入同一个域,使用域账户对共享目录进行访问。
优势:能够保证IIS服务器配置和Web网站内容的一致性。
劣势:
(1)不能保证Machine.config配置文件的一致性。
(2)共享目录访问性能不如本地磁盘访问性能好。
(3)文件服务器可能会引起单点故障。
在IIS管理器上有专门的共享配置功能,在这个功能中既可以把当前IIS的配置导出到文件共享服务器,也可以通过设置文件共享服务器路径从共享目录读取配置信息。如图2.4所示。
图2.4 共享配置设置
总结以上三种Web服务的部署方式,可以了解到最理想的是第二种方式。对于已经按照第一种方式部署的Web服务器,也不宜做出重大调整,建议IIS管理员在维护窗口时间使用文本比较工具检查Web服务器的配置一致性,并改用Web Deploy等工具部署的Web网站内容。