【每天5分钟,了解一个知识点】
在软件行业中,“配置管理”这个概念在不同场景下有着不同的含义。在软件生命周期管理中,它与版本控制和基线管理相近;而在环境准备与应用部署时,又与运维领域的配置管理数据库紧密相关。本文将深入探讨软件配置管理的目标、范围和原则,帮助大家更好地理解和应用这一重要概念。
一、配置管理目标
软件配置管理的目标是在整个软件生命周期中,对生产与运行环节中的相关产物进行管理。这包括产物自身及其唯一标识和修订历史,以及不同产物之间的关联关系等。通过软件配置管理,我们希望获得可追溯性和可重现性这两种基本能力,从而提升软件整个生命周期管理的安全性,并提高团队协作效率。
可追溯性意味着任何人在获得授权的前提下,都能够找到该软件的任何变更历史。对于任何一次软件变更,我们都可以准确地回答 5W1H,即谁(who)、什么时间(when)、做了什么(what)、为什么做(why)、在哪里做(where)以及如何做(how)。
二、软件配置管理的范围
软件配置管理的范围不仅仅局限于软件源代码以及特定的几个层次的软件、配置文件和数据。除了对生产环境中的软件正常运行所需内容进行管理以外,还需要对生产软件过程中的相关内容进行管理,这些内容包括软件测试工具包或测试用类库、测试相关的代码、测试运行所需的测试数据,以及测试相关的一些脚本。
三、软件配置管理原则
一切皆有版本
对应用软件的源代码和发布上线的软件包进行版本管理是软件行业的共识。但当需要更快地发布软件时,这种程度的版本管理并不充分和全面。
例如,为某业务软件服务创建一套全新的测试环境,开发人员准备可能需要两个小时,而测试人员按照开发人员撰写的部署文档进行手工操作,在开发人员指导下可能需要一天的时间。
为运行某个业务服务需要准备的内容基本可分为三个层次:操作系统层、标准软件层和应用软件层,其变更频率自底向上逐渐增加。此外,还需要软件能够正确启动并运行所需的软件配置信息和相关数据。
综上所述,除产品源代码以外,我们还需要对软件测试工具包、测试用类库、测试相关代码等所有内容进行管理,对其中任何一次变更都应进行版本变更管理。
共享唯一受信源
为掌握任意时刻的软件状态并确保所有人获取的信息一致,整个组织需要管理唯一受信源,即保存业务需求/缺陷、源代码和软件包的所有仓库。
需求仓库保存产品的所有版本需求描述和验收条件,以及每一次团队对需求达成共识后的版本变更记录。
代码仓库保存所有源代码的变更历史,包括测试代码、自动化脚本等。
软件包仓库分为临时产物仓库、正式发布包仓库和外部软件私服仓库。临时产物仓库应作为研发团队内部协作沟通的唯一软件包受信源;正式发布包仓库用于保存通过质量验证即将上线或已上线的软件包;外部软件私服仓库用于存储内部所有软件所需的外部第三方受信软件包。
标准化与自动化
软件配置管理中的基线管理是对所有仓库在某一时刻的“快照”。为有利于团队协作和版本追溯,应制订相应的标准与规范,如分支策略、分支命名等。
当具有标准规范后,很多日常事务性操作可以被自动化,从而释放人力资源。但规范化和标准化并不等于僵化,应不断优化管理规范。
【关联阅读】
关注公众号,回复【Java面试】,获取更多面试资料




