导航:首页 > 编程大全 > 什么是配置管理工具

什么是配置管理工具

发布时间:2025-02-28 17:55:08

㈠ 什么是软件配置管理工具

配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具。
软件配置管理工具的功能
(1)配置支持。配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。

(2)版本控制。版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助,版本控制也是支持并行开发的基石出。
(3)变更控制。变更控制是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。
(4)构造支持。软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。
(5)过程支持。过程详细描述了各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,现在软件配置管理也开始提供这部分功能。目前的软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。
(6)团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。
工作区管理是指为每个开发人员提供独立的工作区,开发人员可以互不干扰地进行工作,也可以选择某个时机向其他开发人员提供自己的最新修改结果或接受其他开发人员的修改结果。
并行管理是指多个开发人员同时进行的修改可以进行合并,并行开发管理可以尽可能地自动解决合并中可能出现的冲突。
远程开发管理是并行开发管理的特例,是指在广域网上并行开发的管理,许多适合于局域网的方法可能不适合广域网。
团队支持的基础是版本控制和版本合并。
(7)报告/查询。软件配置管理可以向用户提供配置库的各种查询信息,主要包括依赖关系报告、变化影响报告、Build报告、版本差异报告、历史报告、访问控制报告、冲突检测报告。实际上许多软件配置管理工具的此项功能是分散在各种相应的功能中的。
(8)审计控制。软件配置管理通过审计控制来验证软件配置管理过程,以保证配置库中所有配置项的完整性。简单的审计控制是记录软件配置管理工具执行的所有命令,复杂的审计控制还包括记录每个配置项的状态变化。
(9)其他功能。除了以上的主要功能外,软件配置管理还可以提供权限控制、人员管理和配置库管理等管理,这些功能主要是为软件配置管理实现以上功能提供保障。
软件配置管理工具的选择
目前配置管理工具可以分为3个级别:
(1)版本控制工具,是入门级的工具,例如:CVS、VSS。
(2)项目级配置管理工具,适合管理中小型的项目,在版本管理的基础上增加变更控制、状态统计的功能,例如:ClearCase、PVCS。
(3)企业级配置管理工具,在实现传统意义的配置管理的基础上又具有比较强的过程管理功能,例如:ALLFUSIONHarvest。在建立自己的配置管理实施方案时,一定要根据自己的管理需要,选择适合自己的工具,从而搭建一个最适合自己的管理平台。如果我们的管理目标是建立组织级配置管理架构,并且要实现配置管理的所有功能,从而为以后的过程管理行为提供基础数据的话,那么我们建议选择专用的配置管理工具。
1.支持的操作系统
这几款工具都支持各种主流的操作系统,如Windows、LINUX、UNIX,都支持分布式开发。CVS、Harvest、VSS、ClearCase的Server都可以安装在Windows、LINUX、UNIX、AIX等操作系统上。
2.版本管理功能
CVS与Harvest、VSS、ClearCase都可以进行版本管理,都支持并行开发。在与开发工具的集成方面,CVS可以与各种Java开发工具集成,而Harvest支持SCC接口,可与VB、VC等集成,此外支持与IBM的WSAD集成。
3.变更控制功能
Harvest、ClearCase支持并提供了邮件通知、表单(类似任务说明书或变更通知)等手段来加强团队的信息沟通,而且提供审批、晋升等手段来方便管理项目。Harvest是基于过程的变更,可有效的进行变更控制,它在进行配置管理时更注重软件开发的过程与生命周期的概念;ClearCase相比HarVest则更强调赋予发人员更大的发挥空间,通过集成ClearQuest可以有效地进行变更的跟踪与监控。CVS是基于文件的变更处理,不能跟踪、监控项目的变更,但是结合开放源码的BugTrackI具也能进行变更管理。
4.状态统计功能
CVS、Harvest、ClearCase均提供了强大的统计信息功能。
5.数据的安全性
Harvest提供了全面的权限控制,所有的软件资产存放在Oracle数据库中,利用Oracle的特性来保障数据的完整性与安全,并可以定时备份,在权限控制和安全性方面是这三个工具中是最好的;而CVS、ClearCase主要依赖操作系统的权限设置;但ClearCase采用自己的文件系统,在安全性方面也有严格的控制,而CVS的安全性与备份功能需要通过设置操作系统权限来实现。在配置管理的基本功能的实现上,CVS提供了版本管理和部分变更管理的功能,Harvest、ClearCase完成配置管理的功能的同时还可以帮助软件开发组织积累项目中的数据提升软件开发过程能力。
软件配置管理工具的简单应用
应用软件的规模及复杂程度日趋大型化、复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化、工厂流水线式的团队协作开发方式。在这种开发模式中会遇到一些问题,例如:

●需要将整个软件版本恢复到以前某一时间的状态;
●控制某一程序在同一时间内只能由一个开发人员进行修改;
●限制随意修改程序;
●对每个开发人员编写的程序质量进行评估。
如何解决上述问题,管理好项目的每一步运作,成为每一位项目主管需要解决的课题。目前,许多配置管理工具能够与各种流行的开发软件进行无缝的连接,它们有机地结合在一起,能够完整地保存开发中对应用程序每一个源文件所有的修改记录,因此充分地利用配置管理工具能够对软件开发进行有效的管理,其具体表现有以下几个方面:
(1)随时将程序恢复到以前某一时间点。配置管理工具可以将某一程序恢复到以前某一时间的状态,甚至将整个软件版本恢复到以前某一时间的状态。它能比较程序的不同版本,方便地识别出被修改,删除或插入的具体行,可以将两个不同版本的修改合并到一个新文件中,如果一段重要的代码被删除了,它可以迅速恢复这段代码。
(2)实现代序的互序性修改。配置管理工具能够实现某一程序在同一时间只能由一个开发人员进行修改。其具体实现方式是:开发人员从源文件存放处检出(Cherk out)一个程序,这时其他开发人员就不可以再检出同一个程序了,只有当第一个开发人员修改测试完成后,将更新版本的代码做检入(Check in)操作,其他开发人员才能检出同一个程序-当然,现在有些配置管理工具也可以配置成允许多入修改,即同时检出同一个程序.最后可以将不同版本的修改合并到一个新程序中。
(3)对程序修改进行有效的管理。在配置管理工具中可以将用户分为管理员和程序员两种角色,只有管理员可以将程序冻结(Freeze)和解冻(Unfreeze),被冻结的程序是下允许修改的。修改程序的流程为:
①用户提交需求书,程序员提交程序设计说明书,项目主管审核通过后,配置管理员(CMO)将程序解冻;
②由程序员检出程序;
③程序员修改程序;
④修改完成后程序员提交测试请求给测试小组,测试小组进行测试,如果测试不通过,转向第③步;
⑤测试通过以后程序员填写本次修改记录,然后检入程序;
⑥配置管理员将程序冻结。
至此完成一次程序的修改。在软件开发后期或者软件正式投入使用时,这种方式对保证软件的稳定运行能起列非常重要的作用。
(4)将开发环境与测试环境、运行环境进行有效的隔离:比较大型的软件开发项目部有专门的测试小组;采用配置管理工具后,开发人员有自己单独的开发环境,测试人员有自己的测试环境-测试人员测试无误后才检入程序,可避免错误的程序影响其他人员使用和测试幢用系统;项目进行到一定阶段,可随时用配置管理工具生成一个新的版本,投入运行—生成运行版本时可以选择以前所有的修改记录。
(5)评估开发人员编写的程序质量,控制开发进度。配置管理工具完整地保存在开发中对应用程序的每一个源文件所有的修改汜录-这些记录包括完成修改程序的开发人员、修改的时间、所进行的具体修改以及对本次修改的解释。项目主管通过调阅这些记录,对程序修改的次数、修改原因和修改情况进行统计,就能够对每一个程序员编写的程序质量进行综合评估,这些记录还能使项目主管对整个项目的进度、程序的编写修改情况有一个整体的了解。
(6)管理文档。配置管理工具不仅为各种开发软件提供了存放对象的接口,还能存放任意类型的文件.这样可以在配置管理工具中建立专门的文件夹,用来仃放软件廾发过程中牛成的各种文档,对于每个文档可以存放它的多个版本,供随时查阅。
注意:配置管理软件的安全性一般,为确保软件开发过程中源代码与文档的安全,制定一个合理的系统备份策略是必要的。
总之,在一个项目小组开发环境中,配置管理工具的采用是非常必要的。它就好像建立一部软件开发的编年史,不仅仅对软件的版本进行了控制,还能够协调多个外发人员的工作,对整个软件的开发过程进行有效的管理,大大提高了软件开发的效率,收到事半功倍的效果。
软件配置管理工具的使用要求
使用软件配置管理工具必须注意:
(1)始终保持每个软件配置管理项的正确性,即始终正确反映软件需求;
(2)确保每个软件配置管理项之间均“文实相符,文文一致”;
(3)确保每个软件配置管理项的安全。
软件配置管理工具评估
对工具的评估应侧重于功能的适用性,而不应一味强调功能的全面性;产品评估应了解如下问题:
●该产品的哪一方面功能可解决目标组织的当前问题,满足该组织在软件配置管理上的需求;
●该产品在目标机构的峰值负荷下的运行效率将如何;
●该产品对并发使用的支持情况如何;

●该产品与现有系统、工具、流程、环境的兼容性如何;
●该产品的成熟性和稳定性如何(选择成熟的产品是降低软件开发成本、提高软件可靠性的重要手段),应尽可能选择市场占有率高的工具;
●该产品是否易学易用;
●该产品的购买、安装、实施、维护费用是否可以接受。

㈡ 配置管理工具有哪些五大最流行的配置管理工具

了解一下配置管理工具,以找出哪个最适合你的 DevOps 组织。
-- Marco Bravo
DevOps 正因为有提高产品质量、缩短产品开发时间等优势,目前备受业界关注,同时也在长足发展当中。
DevOps 的核心价值观 是 团队文化(Culture)、 自动化(Automation)、 评估(Measurement)和 分享(Sharing)(CAMS),同时,团队对 DevOps 的执行力也是 DevOps 能否成功的重要因素。
团队文化让大家团结一致;自动化是 DevOps 的基础;评估保证了及时的改进;分享让 CAMS 成为一个完整的循环过程。
DevOps 的另一个思想是任何东西,包括服务器、数据库、网络、日志文件、应用配置、文档、自动化测试、部署流程等,都可以通过代码来管理。
在本文中,我主要介绍配置管理的自动化。配置管理工具作为 基础架构即代码(Infrastructure as Code)(IaC)的一部分,支持使用经过测试和验证的软件开发实践,通过明文定义文件管理和配置数据中心。
DevOps 团队只需要通过操作简单的配置文件,就可以实现应用开发中包括版本控制、测试、小型部署、设计模式在内的这些最佳实践。总而言之,配置管理工具实现了通过编写代码来使基础架构的配置和管理变得自动化。
为什么要使用配置管理工具?
配置管理工具可以提高应用部署和变更的效率,还可以让这些流程变得可重用、可扩展、可预测,甚至让它们维持在期望的状态,从而让资产的可控性提高。
使用配置管理工具的优势还包括:
让代码遵守编码规范,提高代码可读性;具有 幂等性(Idempotency),也就是说,无论执行多少次重复的配置管理操作,得到的结果都是一致的;分布式的设计可以方便地管理大量的远程服务器。
配置管理工具主要分为 拉取(pull)模式和 推送(push)模式。拉取模式是指安装在各台服务器上的 代理(agent)定期从 中央存储库(central repository)拉取最新的配置并应用到对应的服务器上;而推送模式则由 中央服务器(central server)的中央服务器会触发其它受管服务器的更新。
五大最流行的配置管理工具
目前配置管理工具有很多,不同的配置管理工具都有自己最适合的使用场景。而对于下面五个我按照字母顺序列出的配置管理工具,都对 DevOps 有明显的帮助:全都具有开源许可证、使用外部配置文件、支持无人值守运行、可以通过脚本自定义运行。下面对它们的介绍都来源于它们的软件库和官网内容。
Ansible
“Ansible 是一个极其简洁的 IT 自动化平台,可以让你的应用和系统以更简单的方式部署。不需要安装任何代理,只需要使用 SSH 的方式和简单的语言,就可以免去脚本或代码部署应用的过程。”—— GitHub Ansible 代码库
官网文档社区
Ansible 是我最喜欢的工具之一,我在几年前就开始使用了。你可以使用 Ansible 在命令行中让多个服务器执行同一个命令,也可以使用 YAML 格式的 剧本(playbook)来让它自动执行特定的操作,这促进了技术团队和非技术团队之间的沟通。简洁、无代理、配置文件对非技术人员友好是它的几个主要优点。
由于 Ansible 不需要代理,因此对服务器的资源消耗会很少。Ansible 默认使用的推送模式需要借助 SSH 连接,但 Ansible 也支持拉取模式。 剧本 可以使用最少的命令集编写,当然也可以扩展为更加精细的自动化任务,包括引入角色、变量和其它人写的模块。
你可以将 Ansible 和其它工具(包括 Ansible Works、Jenkins、RunDeck、 ARA 等)结合起来使用,因为这些工具 提供了运行剧本时的可追溯性 ,这样就可以创建控制流程的中央控制台。
CFEngine
“CFEngine 3 是一个流行的开源配置管理系统,它主要用于为大规模的系统提供自动化配置和维护。”—— GitHub CFEngine 代码库
官网文档社区
CFEngine 最早在 1993 年由 Mark Burgess 作为自动配置管理的科学方法提出,目的是降低计算机系统配置中的熵,最终收敛到期望的配置状态,同时还阐述了幂等性是让系统达到期望状态的能力。Burgess 在 2004 年又提出了 承诺理论 (Promise Theory),这个理论描述了代理之间自发合作的模型。
CFEngine 的最新版本已经用到了承诺理论,在各个服务器上的代理程序会从中央存储库拉取配置。CFEngine 的配置对专业技能要求较高,因此它比较适合技术团队使用。
Chef
“为整个基础架构在配置管理上带来便利的一个系统集成框架。”—— GitHub Chef 代码库
官网文档社区
Chef 通过由 Ruby 编写的“ 菜谱(recipe)”来让你的基础架构保持在最新、最兼容的状态,这些“菜谱”描述了一系列应处于某种状态的资源。Chef 既可以通过客户端-服务端的模式运行,也可以在 chef-solo 这种独立配置的模式下运行。大部分云提供商都很好地集成了 Chef,因此可以使用它为新机器做自动配置。
Chef 有广泛的用户基础,同时也提供了完备的工具包,让不同技术背景的团队可以通过“菜谱”进行沟通。尽管如此,它仍然算是一个技术导向的工具。
Puppet
“Puppet 是一个可以在 Linux、Unix 和 Windows 系统上运行的自动化管理引擎,它可以根据集中的规范来执行诸如添加用户、安装软件包、更新服务器配置等等管理任务。”—— GitHub Puppet 代码库
官网文档社区
Puppet 作为一款面向运维工程师和系统管理员的工具,在更多情况下是作为配置管理工具来使用。它通过客户端-服务端的模式工作,使用代理从主服务器获取配置指令。
Puppet 使用 声明式语言(declarative language)或 Ruby 来描述系统配置。它包含了不同的模块,并使用 清单文件(manifest files)记录期望达到的目标状态。Puppet 默认使用推送模式,但也支持拉取模式。
Salt
“为大规模基础结构或应用程序实现自动化管理的软件。”—— GitHub Salt 代码库
官网文档社区
Salt 的专长就是快速收集数据,即使是上万台服务器也能够轻松完成任务。它使用 Python 模块来管理配置信息和执行特定的操作,这些模块可以让 Salt 实现所有远程操作和状态管理。但配置 Salt 模块对技术水平有一定的要求。
Salt 使用客户端-服务端的结构(Salt minions 是客户端,而 Salt master 是服务端),并以 Salt 状态文件记录需要达到的目标状态。
总结
DevOps 工具领域一直在发展,因此必须时刻关注其中的最新动态。希望这篇文章能够鼓励读者进一步探索相关的概念和工具。为此, 云原生计算基金会(Cloud Native Computing Foundation)(CNCF)在 Cloud Native Landscape Project 中也提供了很好的参考案例。

㈢ 什么是软件工具

使用软件工具能节省软件生产开发时间和费用,提高软件生产率和质量。 从软件工程的观点来看,软件工具能够支持软件生存期的各个阶段⒛芑ハ嘟岷瞎钩晒ぞ呦低场?/SPAN 软件工具的种类繁多,从软件过程的观点通常可以分为:项目管理工具、配置管理工具、分析和设计工具、程序设计工具、测试工具以及维护工具等。 (1)项目管理工具:支持项目管理活动的工具。通常,这类工具把重点放在特定的管理环节上,例如工作量、成本和工期估算以及项目调度计划等。 (2)配置管理工具:支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具。 (3)分析和设计工具:辅助建立软件的系统模型和设计的工具。分析和设计引擎将成为新一代分析设计工具,该工具可以对任何分析和设计方法进行定制,根据需要,支持特定的分析和设计方法。 (4)程序设计工具:包括常规的编码工具编译程序、编辑程序、排错程序及第四代语言、应用程序生成器、数据库查询语言和面向对象(OO)程序设计环境等。 (5)测试工具:可以分为数据获取工具、静态分析工具、动态分析工具、模拟工具以及测试管理工具等。其中,静态分析工具通过对源程序的程序结构、数据流和控制流进行分析,得出程序中函数(过程)的调用与被调用关系、分支和路径、变量定义和引用等情况,发现语义错误。动态分析工具通过执行程序,检查语句、分支和路径覆盖,测试有关变量值的断点,即对程序的执行流行探测。另一类动态分析工具称为截获/播放工具。测试管理工具用以控制并协调软件测试的每一个主要步骤,进行回归测试,比较运行结果和期望输出之间的差异,并可实施程序的成批测试。 (6)维护工具:支持软件维护的工具。大致可分为逆向工程工具和再生工程工具。逆向工程工具对已经开发完成的源程序进行分析,抽取程序的系统结构、控制结构、逻辑流程、数据结构和数据流等信息,并生成分析和设计模型以及其它设计信息。再生工程工具用来支持重构一个功能和性能更为完善的、改进的软件系统。

阅读全文

与什么是配置管理工具相关的资料

热点内容
maya粒子表达式教程 浏览:84
抖音小视频如何挂app 浏览:283
cad怎么设置替补文件 浏览:790
win10启动文件是空的 浏览:397
jk网站有哪些 浏览:134
学编程和3d哪个更好 浏览:932
win10移动硬盘文件无法打开 浏览:385
文件名是乱码还删不掉 浏览:643
苹果键盘怎么打开任务管理器 浏览:437
手机桌面文件名字大全 浏览:334
tplink默认无线密码是多少 浏览:33
ipaddgm文件 浏览:99
lua语言编程用哪个平台 浏览:272
政采云如何导出pdf投标文件 浏览:529
php获取postjson数据 浏览:551
javatimetask 浏览:16
编程的话要什么证件 浏览:94
钱脉通微信多开 浏览:878
中学生学编程哪个培训机构好 浏览:852
荣耀路由TV设置文件共享错误 浏览:525

友情链接