配置管理

配置管理（Configuration management、CM）也称为组态管理，是系统工程的一部分，应用在专案的完整生命周期中，使产品的性能、功能以及实体属性和其需求、设计、操作资讯可以保持一致。配置管理已普遍使用在军事工程组织中，在复杂系统（例如武器系统、军用车辆及信息系统）的系统发展生命周期中管理其变更。在军事以外的应用中，配置管理也用在IT服务管理中，像是信息技术基础架构库、土木工程的领域模型，或是其他像是道路、桥梁、运河、水坝及建筑物的专案中。

## 简介

配置管理可以应用在系统的整个生命周期中，可以得到有关性能、功能及实体属性的资讯，并且可以管理。配置管理目的是要验证系统的行为符合预期，在专案的生命周期中识别这些特性，并且在文件中有详细的描述，以支持验证的结果。配置管理有助于系统资讯及系统变更的有序管理，目的是为了以下的好处：提升性能、可靠度或是可维护性、延长产品寿命、降低成本、减少风险及责任、修正缺陷。实施配置管理有些成本，不过此成本小于后续因可能发生意故而产生的成本。

配置管理强调元件、子系统及系统之间机能的关系，目的是为有效的控管系统的变更。配置管理有助于验证所提出的变更已用系统性的方式进行考虑，以减少其负面影响。可以用标准化、系统化的方式来提出变更，并且进行评估及实现，以确保其一致性，而提出的变更会以预期对整个系统的影响来进行评估。配置管理会验证变更是依规定的方式进行修改，而且零件及系统的文件可以反应其实际的配置。完整的配置计划可以提供在零件、子系统及系统的基础上，储存、追踪及更新所有资料的所有规定。

结构化的配置管理计划可以确保文件（例如需求、设计、测试及允收文件）准确，和实际的实体设计一致。若没有配置管理，在在许多情形下，文件存在，但和对应的实体不一致。员工及承包商常常为了要进行变更，反而要修改文件以符合实际的实体。这种逆向工程过程在人力以及资源上都是浪费，若使用配置管理，可以减少甚至消除这类的成本。

## 历史

配置管理是在1950年代起源于美国国防部，是针对硬件设备的技术管理规则，目前已几乎是所有产业中的标准作法。1960年代时美国国防部发展一系列的美国军用标准，称为480系列（例如MIL-STD-480, MIL-STD-481 and MIL-STD-483，这些标准在1970年代陆续的发行），此时配置管理也有了的技术规则。480系列在1991年合并为单一的标准，称为MIL–STD–973，后来为了减少军用标准的数量，被MIL–HDBK–61取代。之后，配置管理也渐渐演变为广为使用，受到各领域的认可的标准ANSI–EIA–649–1998。目前配置管理已使用在许多的组织及机构中，配置管理的概念包括系统工程（SE）、综合后勤支持（ILS）、能力成熟度模型集成（CMMI）、ISO 9000、PRINCE2专案管理方法、信息及相关技术控制目标（COBIT）、信息技术基础架构库（ITIL）、产品生命周期（PLM）及软件生命周期管理（ALM）。其中许多的机能和模式已重新定义了配置管理，从传统的整体分析变成技术管理。有些则将配置管理视为类似图书馆活动的事务，将变更控制及变更管理视为一个独立或是个别的学科。

## 简介

配置管理是用系统化的方式管理变更的实务，目的是让系统在不同时间都可以维持系统一致性。在配置管理中包括了政策、程序、技巧以及工具，在系统变化的过程中，可以管理变更、评估要进行的变更、追踪变更状态、维持系统资产及支持文件。配置管理方案以及计划会提供技术以及管理的方向，实现要成功开发及维护复杂系统需要的相关程序、功能、服务、工具、流程以及资源。配置管理中可以进行计划管理，在包括运作及维护在内的整个生命周期中，追踪各项的需求。不可避免的，在过程中会有需求以及设计的变化，这些变化需要核可，也需要记录，以针对系统状态有准确的纪录。理想上，配置管理会在整个系统发展生命周期中使用。有时会将配置管理和资产管理混淆，资产管理是盘点手上的资产。配置管理和资产管理的差异是前者不会由财务的角度来进行管理，而是以系统要提供的服务才进行管理。

在MIL–HDBK–61A中提到，针对硬件及软件的配置管理包括五项不同的知识领域（discipline）

在ANSI/EIA-649中，这些知识领域是建立形态基准及进行标准应变管理时的政策及程序。IEEE 12207程序IEEE 12207.2中也有这些活动，另外再加上“发布管理及交货”（Release management and delivery）。

五个知识领域如下：

- 配置管理计划及管理：配置管理专案的正式文件及计划，包括有以下项目：
- 人员
- 权责及资源
- 训练要求
- 管理会议的指南，其中包括流程及工具的定义
- 基准流程
- 配置控制及配置状态统计（Configuration Status Accounting）
- 命名规范
- 审核和审查
- 分包商/供应商的配置管理需求
- 配置识别（Configuration Identification、CI）：包括设定基准以及维持基准，基准是定义系统及子系统架构、组件，以及在任何时间点的开发。这是识别、纪录以及追踪系统中变更项目的基础，应用在设计、开发、测试及交付阶段。配置识别会渐进式的建立系统以及其配置项目（CI）的配置状态统计（Configuration Status Accounting）的目前状态，并且在系统生命周期中（开发、生产、布署以及运行维护）持续的维护，一直到系统停用为止。
- 配置控制（Configuration Control）：包括变更请求以及变更提案的评估，后续是否核可等。此程序包括系统设计、硬件、软件、固件、文件任何修改的控制程序。
- 配置状态统计（Configuration Status Accounting）：包括纪录配置项目说明（例如硬件、软件、固件）、产出报告、并且纪录在设计或制造阶段，所有不符合基准的部分。若怀疑有问题，透过基准配置验证以及核可修改的验证即可缩小确认范围。
- 配置验证及审核：硬件和软件的独立验证，目的是要针对性能需求、商业或军事标准、性能基准、产品基准，评估是否符合。在核可架构进入架构基线之前，会先进行基础配置审核（Configuration audits），会验证系统及子系统的组态文件是否符合机能以及实体的性能特点。

## 软件

软件配置管理（SCM）是在开发软件专案时，处理变更的方式。此作法会在专案的不同阶段落识别软件的机能属性及实体属性，用系统化的方式来控制变更，目的是为了是在开发周期中维持软件完整并且可追踪。

软件配置管理流程会定义需要追踪变更的项目，并且可以确认最后发布的软件是否有原先预期发布时应该有的更新内容。若要实施软件配置管理流程，需在软件专案中识别出以下四个流程：

- 配置识别（Configuration Identification）
- 配置控制（Configuration Control）
- 配置状态统计（Configuration status accounting）
- 配置审核（Configuration audits）

其名词及定义会随标准而不同，不过在本质上是一様的。

- 配置识别（Configuration identification）是识别配置项目每一个层面的属性。配置项目（configuration item）是一个终端客户会使用的产品（硬件或／及软件）。属性会纪录在组态文件中，并且设定形态基准。设定形态基准的好处是当属性变更时，要透过正式的控制管理流程才能变动。
- 配置变更控制（Configuration change control）是要修改配置项目属性，或是重新订形态基准时需要进行的流程以及核可。
- 配置状态统计（Configuration status accounting）是指可以纪录每一个配置项目的形态基准，并且提供任何时间时的对应形态基准。
- 配置审核（Configuration audits）会分为机能配置审核（function configuration audit）及实体配置审核（physical configuration audit）。可以在交付时进行，也可以在任何变更要实施时进行。机能配置审核确保配置项目可以达到其机能属性以及性能属性，实体配置审核则确认配置项目的安装方式符合细节设计文件中的需求。

### 配置管理数据库

资讯技术基础架构数据库（ITIL）有规范用配置管理系统（Configuration management system、CMS）或配置管理数据库（CMDB）作为产业上配置管理的最佳实务。配置管理数据库用来追踪配置项目，并且追踪彼此之间的相关性，此处的配置项目是指在企业内值得追踪并且管理的项目，包括电脑、软件授权、电脑机架、网络装置、储存设备，甚至是这些设备的零件等。

配置管理系统／配置管理数据库的好处是可以进行像是根本原因分析、影响分析、变更管理等机能，也可以评估目前状态，作为未来策略开发的根据。这类系统（多半会分类为资讯科技服务管理系统）的例子有FreshService、ServiceNow及Samanage。

### 资讯保障

在资讯保障领域中，配置管理是在资讯系统的生命周期中，透过硬件、软件、固件、文件、测试、测试治具、测试文件的变更管理，来管理系统的资料安全特性及保障。资讯保障的配置管理，有时也会简称SCM（Secure Configuration Management），, 需要配合IT平台及产品的性能、功能及实体属性，以及其环境，来决定系统需要的适当安全特点以及保障。例如，同样是防火墙，在组织互联网边界上的防火墙，其组态需求就和在公司内部的防火墙不同。

## 维护系统

配置管理也可以用在维护系统上，可以了解复杂资产的情形，以最低的成本达到最高程度的可用性，其目的是要确保不会因资产（或资产的零件）运作超过计划寿命或是运作在品质水准以下，造成运作的中断。

在军事上，这类活动称为任务准备（mission readiness），要定义可用资产以及要执行的任务。例如航空母舰上的飞机是否配备了用于地面支援的炸弹或防御用的导弹。

### 操作系统配置管理

配置管理可以用来维护操作系统的配置档案。这类的系统中包括Ansible、Bcfg2、CFEngine、Chef、Otter、Puppet、Quattor、SaltStack、Terraform、Pulumi及Vagrant。许多这类的系统用基础架构即代码（IaC）来定义组态以及维护组态

配置管理的承诺理论（Promise theory）是由Mark Burgess开发的，实际的实现是在现今CFEngine软件，可以做实时的修复，也可以做预防性的保养。

### 预防性维护

预防性维护常用在企业资产维护、维修及企业资产管理系统系统中，其核心元素是了解资产及其重要组成当前的状态。

像飞机、船舶、工业设备等复杂的资料，要在其中的各种零件是可服务的状态下才能正常运作。可用性（serviceability）会用许多的资讯定义，包括零件购置后、安装后、维修后的使用情形，以及其他的限制因素。需要了解这些元件还可用多久，以往这类的工作需要大量的人力，一直到有对应的软件后才改善此一问题。

### 预测性维护

许多设备都会有电子感测器搜集资料在运行过程进行状态监测。资料会在设备上或远端的电脑上分析，评估目前的可用性，并且设法预测未来的可用性，会使用预测未来潜在失效的算法，依以往现场的失效案例，以及建模的结果来分析，并且提供提前维护的建议，这称为预测性维护。

可以有准确且及时的可用性资讯，对配置管理可以提供运营价值至关重要，少了这些资讯可能就会造成一些限制。撷取操作资讯，并且分发给各支持组织，本身就形成一个产业。

随着原始设备制造商（OEM）提供的软件越来越多，这些数据的使用也越来越多。这些的目的是让运营商可以保证其可用性，也让资产管理的内容更加复杂，但原始设备制造商仍有责任确保其产品的可用性。

## 标准

有许多标准支持（或是包括）配置管理，例如以下的这些标准：

- ANSI/EIA-649-1998 National Consensus Standard for Configuration Management
- EIA-649-A 2004 National Consensus Standard for Configuration Management
- ANSI EIA-649-C 2019 Configuration Management Standard
- ISO 10007 Quality management systems – Guidelines for configuration management
- 美国联邦标准1037C
- GEIA Standard 836–2002 Configuration Management Data Exchange and Interoperability
- IEEE 829 Standard for Software Test Documentation

- NATO ACMP 2000 Policy on Configuration Management
- NATO ACMP 2009 Guidance on Configuration Management
- NATO ACMP 2100 Configuration Management Contractual Requirements
- CMMI CMMI for Development, Version 1.2 Configuration Management
- CMII-100E CMII Standard for Enterprise Configuration Management
- Extended List of Configuration Management & Related Standards
- ITIL Service Asset and Configuration Management
- ISO 20000:1 2011& 2018 Service Management System.
- ECSS-M-ST-40C Rev.1 Configuration and information management

## 指南

- IEEE 828-2012 Standard for Configuration Management in Systems and Software Engineering，2013年3月16日发布。
- ISO 10007:2017 Quality management – Guidelines for configuration management
- NATO ACMP-2009 – Guidance on configuration management
- ANSI/EIA-632-1998 Processes for Engineering a System
- ANSI/EIA-649-1998 National Consensus Standard for Configuration Management
- GEIA-HB-649 – Implementation Guide for Configuration Management
- EIA-836 Consensus Standard for Configuration Management Data Exchange and Interoperability
- MIL-HDBK-61B Configuration Management Guidance
- MIL-STD-3046 Configuration Management
- Defense Acquisition Guidebook, elements of CM at 4.3.7 SE Processes, attributes of CM at 5.1.7 Lifecycle support
- Systems Engineering Fundamentals, Chapter 10 Configuration Management
- Configuration Management Plan United States Dept. of Defense Acquisition document

## 建筑

近来已经将配置管理用在大型的建筑计划中，多半是非常复杂，有许多的细节及变更需要记录的建筑。像联邦公路管理局（Federal Highway Administration）等建筑机构已将配置管理用于其基础设施项目中。有建筑相关的配置管理工具，可以管理变更通知和工程释疑单（RFI），目的是确保专案不会超过时程以及预算。在建筑完成后，这些软件也可以储存一些维护及修改时需要的资料。在一个美国联邦运输管理局（FTA）赞助的计划中，利用比较洛杉矶县大都会运输局（LACMTA）红线第一阶段及第二阶段，53亿美元的铁路建设案，来评估配置管理的效果。研究的结果是，使用配置管理对专案有正面效果。