任何人都可以简单地解释配置管理和版本控制之间的区别吗?从我在各种网站上找到的描述来看,配置管理似乎只是一个花哨的术语,用于将您的配置文件放在源代码控制存储库中。但其他人让我相信有一个更复杂的解释。
9 回答
版本控制对于配置管理是必要的,但还不够。版本控制发生在一些中央或分布式存储库中,但没有说明任何特定版本的部署或使用位置。
配置管理担心如何获取版本控制中的内容并将其一致地部署到适当的地方,主要是 QA 和生产,但在足够大的开发操作开发人员中也是如此。
例如,您可以将所有 SQL 查询保留在版本控制中,包括您的表修改脚本,但这无法控制这些脚本何时部署到适当的数据库服务器并与任何其他依赖的代码的部署保持同步在那个数据库结构上。
版本控制是保存文件并保留它们的不同版本,因此您可以看到随时间的变化。
配置管理通常被称为一个整体过程,它跟踪哪个服务器上的代码版本、服务器的设置方式(以及在许多地方执行此操作的安装脚本)。这是代码进入源代码控制后发生的过程以及如何部署到服务器/桌面等。
配置管理是一个模糊的术语。
在软件中,它往往是版本控制的超集,强调以可重复和可预测的方式产生结果的整个过程。
在计算维护中,它涉及到整个网络和一组附属计算机(包括服务器、客户端、路由器……)的配置设置和硬件/固件/软件版本的维护。
在硬件制造中,它甚至代表上述两者的超集,包括获得产品所需的硬件和软件模块,以及制造它们的过程的描述,有时甚至是生产线本身的整个架构和配置.
版本控制是对可交付成果的控制,而配置管理是管理导致产生可交付成果的整个过程。配置管理涉及变更管理、项目管理等,一般不通过简单的版本控制来管理。
除了上面所说的一切,我想推荐 Bob Aiello 的书,名为“配置管理最佳实践” - http://www.amazon.com/dp/0321685865。它涵盖了软件配置管理的所有方面,包括版本控制。
粗略地说,版本控制意味着您可以查看任何特定版本的源代码。配置管理意味着您可以构建和部署并可能测试任何特定版本。
这可能会有所帮助。
版本和配置
版本:
能够维护对象的多个版本。
常见于许多软件工程和并发工程环境中。
各种版本的合并和协调留给应用程序
一些系统维护一个版本图
配置:
- 配置是软件系统的模块的兼容版本的集合(每个模块的版本)
版本控制是 SCM 系统的功能之一。
来自颠覆用户指南: http ://svnbook.red-bean.com/en/1.7/svn-book.html
“一些版本控制系统也是软件配置管理 (SCM) 系统。这些系统是专门为管理源代码树而量身定制的,并且具有许多特定于软件开发的功能——例如本机理解编程语言,或提供用于构建软件的工具. 但是,Subversion 不是这些系统之一。它是一个通用系统,可用于管理任何文件集合。对你来说,这些文件可能是源代码——对其他人来说,从杂货店购物清单到数字视频混音等任何东西超越。”