版权归原作者所有,如有侵权,请联系我们

[科普中国]-软件部署

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

软件部署环节是指将软件项目本身,包括配置文件、用户手册、帮助文档等进行收集、打包、安装、配置、发布的过程。在信息产业高速发展的时代,软件部署工作越来越重要。1

简介传统的软件工程不包括软件部署,但不断增长的软件复杂度和部署所面临的风险,迫使人们开始关注软件部署。软件部署是一个复杂过程,包括从开发商发放产品,到应用者在他们的计算机上实际安装并维护应用的所有活动。这些活动包括开发商的软件打包,企业及用户对软件的安装、配置、测试、集成和更新等。

据Standish Group的统计,软件的缺陷所造成的损失,相当大的部分是由于部署的失败所引起的,可见软件部署工作的重要意义。

软件部署存在着风险,这是由于以下原因造成的:应用软件越来越复杂,包括许多构件、版本和变种;应用发展很快,相继两个版本的间隔很短(可能只有几个月);环境的不确定性;构件的来源多样性等。

软件部署过程的主要特征有:过程覆盖度、过程可变更性、过程间协调和模型抽象。已经提出一些抽象的软件部署模型,用于有效地指导部署过程,包括应用模型、企业模型、站点模型、产品模型、策略模型和部署模型。

软件部署过程中需要关注的问题有:安装和系统运行的变更管理、构件之间的相依、协调、内容发放、管理异构平台、部署过程的可变更性、与互联网的集成和安全性。2

内容可以通过组策略来为域内的用户与计算机部署软件。软件的部署分为“指派”与“发布”两种,可让用户很容易地拥有这些软件。一般来说,这些软件应为“Windows InstallerPackage”,也就是这些软件内包含着一个扩展名为.msi的文件。

1.将软件指派给用户

当将一个软件通过组策略的GPO指派给域内的用户后,则用户在域内的任何一台计算机登录时,这个软件都会被“通告”给该用户。但是,这个软件还没有真正地被安装,而只是安装了与这个软件有关的部分信息,例如,可能会在任务栏的“开始”菜单中的“所有程序”中自动建立该软件的快捷方式。只有在用户打开任务栏的“开始”菜单,指向“所有程序”,单击该软件的快捷方式,或是双击桌面上的快捷方式后,才会自动安装此软件。

2.将软件指派给计算机 ’

在将一个软件通过组策略的GPO指派给域内的计算机后,启动这些计算机时,这个软件就会自动安装在这些计算机里,而且是安装到公用程序组内,也就是安装到Documents andSettings\Users文件夹内。任何用户登录后,都可以使用此软件。

3.将软件发布给用户

在将一个软件通过组策略的GPO发布给域内的用户后,该软件不会自动安装到用户的计算机内,用户需要通过以下方式来安装这个软件(假设用户所使用的操作系统为Windows XP Professional):打开“控制面板”,启动“添加或删除程序”,单击“添加程序”,然后进行安装。

4.自动修复软件

一个被发布或指派的软件在安装完成后,如果此软件程序内有关键性的文件损坏、遗失或被用户不小心删除,则系统会自动探测到此不正常的现象,并且自动修复、重新安装此软件。

5.删除软件

一个被发布或指派的软件在安装完成后,程序从GPO内发布或指派的软件清单中删除,将这个软件删除就可以了。3

步骤软件部署的验证和实施的过程一般包括如下步骤。

1、开发试验性系统(构建网络和硬件基础结构、安装和配置相关的软件)。

2、根据测试计划/设计执行安装测试、功能测试、性能测试和负载测试。

3、测试通过后,开始规划原型系统。

4、完成原型系统的网络构建、软硬件的安装和配置。

5、数据备份或做好可以恢复的准备。

6、将数据从现有应用程序迁移到当前解决方案。

7、根据培训规划培训部署的管理员和用户。

8、完成所有的部署。

在这些过程中,保证系统和用户数据的不丢失是非常重要的,大家都知道,数据比系统更为重要。

试验性部署测试和原型部署测试的目的是在测试条件下尽可能确定部署是否既能满足系统要求,又可实现业务目标。理想情况下,功能性测试可以模拟各种部署方案以完成所需要执行的测试用例,并且定义相应的质量标准来衡量其符合性。负载测试衡量在峰值负载下的测量性能,通常使用一系列模拟环境和负载发生器来衡量数据吞吐量和性能。对于没有明确定义、缺乏原始数据积累的全新系统,功能性测试和负载测试尤其重要。4

注意事项在实现软件部署的过程中需要注意以下事项:

(1)在大规模部署软件前,先把软件包文件分发到一个用户的测试组,然后逐渐分发。这种渐进的部署和测试的方法可以帮助用户在把应用程序部署到整个组织前确定并解决软件包的问题,在确定无误后再实现软件部署。

(2)为软件分发点使用基于域的DFS。利用基于域的DFS可以提供容错和负载均衡的特点,DFS可以为所有的发布和指派提供一个单独的软件分发点。通过在每一个站点创建一个DFS副本,可以为多个用户提供软件安装。而且客户端都试图从自己站点的DFS副本安装部署的软件,减少了慢速广域网连接的网络通信量。

(3)根据软件的功能来组织应用程序。当需要部署的软件非常多时,为软件划分类别将使创建软件策略时查询软件更加容易。

(4)不要使用不同的方法来部署相同的软件。比如除非特殊需要,否则不要把一个软件包既指派给用户,又指派给计算机,这样容易造成管理混乱。5

本词条内容贡献者为:

王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所