SCM:软件配置管理

GitOps:以Git为核心的现代软件配置管理(SCM)实践 本文深入探讨了GitOps作为现代软件配置管理(SCM)的核心实践,通过Git仓库实现自动化部署和环境一致性。文章详细介绍了GitOps的核心组件如声明式基础设施即代码(IaC)、自动化同步引擎(如Argo CD)以及不可变部署的最佳实践,并提供了企业级实施指南和常见问题解决方案。GitOps不仅提升了部署效率和可追溯性,还推动了团队协作和文化变革。 阅读详情
 1、什么是软件配置管理(SCM)
  软件配置管理是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。 (Software configuration management (SCM, or just plain CM) is an organizational framework — that is, a discipline — for managing the evolution of computer systems throughout all stages of systems development.)
  2、为什么需要配置管理
  如果没有软件配置管理,最大的麻烦是工作成果无法回溯。随着工作的进展新的程序覆盖了老的程序,当突然发现新程序有问题而老程序正确时怎么办?那只能重写老的程序来覆盖新的程序。过一段时间又发现原来的老程序有问题,而解决方法在原来的新程序中……您是不是快要发疯了。
  为了避免成果被覆盖,包括我自己在内的很多人早期采用手工管理版本的方式,例如当一个新版本产生时用当时的日期来命名文件夹,然后再复制一下以后的修改在复制的文件夹内进行,这样上一个版本就被保存下来了,周而复始不同的版本不会被覆盖。虽然这种方式可以从某种程度上解决版本的回溯问题,但他存在的缺点是显而易见的:第一点如果保留结果过于频繁,将会导致产生大量的有着重复内容的文件夹,庞大的物理空间,管理起来很麻烦;如果保留旧版本的时间间隔太长,可能产生某些有用的老程序无法回溯。拿我最近开发的一个程序来说程序只有几十兆,经过一年的开发各版本累计到1G。第二容易产生版本的混乱,如果是团队开发软件,这种简单的方法更难解决问题的本质了。
  3、人的问题
  配置管理的方法是成熟的,而且相应的软件工具也是成熟的,基本上不存在看不懂、不会用的问题。配置管理的执行效果如何,完全是事在人为。妨碍配置管理的主要问题是人们嫌麻烦和侥幸心理作怪。
  在没出乱子的情况下,执行版本控制看起来有些麻烦。每次修改工作的时候总是要Get Latest Version,接着Check Out,修改完后又要Check In,多做了三步。其实这三步加起来也就十几秒钟,而且不费脑子,根本没有添加多少麻烦,仅仅是个人感觉不爽而以。然而不执行版本控制的话,万一发生工作成果被覆盖或丢失等问题,麻烦就大了。
   4、软件配置管理规范
  软件研发和管理过程中会产生许许多多的工作成果,例如文档、程序和数据等,他们都应当妥善地保管起来,以便查阅和修改。如果把所有文件一股脑的塞进计算机里,那么使用起来很麻烦。
  凡是纳入配置管理范畴的工作成果统称为配置项配置项主要有两大类:一类是属于产品的组成部分,例如需求文档、设计文档、源代码、测试用例等等;另一类是在管理过程中产生的文档,例如各种计划、报告等。
  每个配置项的主要属性有名称、标识符、文件状态、版本、作者、日期等。配置项及历史纪录反映了软件的演化过程。
  基线由一组配置项组成,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置项被冻结后,不能在被任何人随意更改。基线通常对应于开发过程中的里程碑。通常将交付该客户的基线称为一个Release,为内部开发用的基线称为一个Build。
  版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混乱等现象。配置项的状态有三种:“草稿”、“正式发布”和“正在修改” 。
  配置项的版本号与配置项的状态紧密相关:
  (1) 处于“草稿”状态的配置项的版本号格式为:0.YZ
  (2) 处于“正式发布”状态的配置项的版本号格式为:X.Y。
  一般只是Y值递增,当Y值到达一定的范围时X值才发生变化。
  (3) 处于“正在修改”状态的配置项的版本号格式为:X.YZ。
  一般只增大Z值,当配置项修改完毕,状态重新变成“正式发布”时,将Z值变为0,增加X.Y值。
   5、常用的配置管理软件
  自从20世纪80年代后期研制并完善了“增量存储算法”后配置管理工具的春天便开始了,目前国内常用的配置管理工具大概有SourceSafe、CVS和ClearCase。
  SCM(Software Configuration Management,软件配置管理)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
  软件配置管理(Software Configuration Management,SCM)作为CMM 2级的一个关键域(Key Practice Area,KPA),在整个软件的开发活动中占有很重要的位置。正如Pressman所说的:“软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计来(1)标识变化,(2)控制变化,(3)保证变化被适当的发现,以及(4)向其他可能有兴趣的人员报告变化。” 所以,我们必须为软件配置管理活动设计一个能够融合于现有的软件开发流程的管理过程,甚至直接以这个软件配置管理过程为框架,来再造组织的软件开发流程。
   一、迅速发展的软件配置管理
  配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准“AFSCM375-1,CM During the Development & Acquisition Phases”。
  而软件配置管理概念的提出则在20世纪60年代末70年代初。当时加利福利亚大学圣巴巴拉分校的Leon Presser教授在承担美国海军的航空发动机研制合同期间,撰写了一篇名为“Change and Configuration Control”的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近一千四百万次修改)的一个经验总结。
  Leon Presser在1975年成立了一家名为SoftTool的公司,开发了配置管理工具:Change and Configuration Control(CCC),这是最早的配置管理工具之一。
  随着软件工程的发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到现在的提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批的产品,如:最著名的ClearCase;开源产品CVS;入门级工具Microsoft VSS;新秀Hansky Firefly。
  在国外已经有30多年历史的软件配置管理,但在国内的发展却是在21世
从空调温控到信号降噪:一阶RC低通滤波器在Arduino和STM32上的C语言实现指南 本文详细介绍了如何在Arduino和STM32平台上使用C语言实现一阶RC低通滤波器,涵盖从基础理论到实际应用的完整流程。通过具体代码示例和优化技巧,帮助开发者有效处理传感器噪声、信号平滑等问题,提升嵌入式系统的信号处理能力。 阅读详情

相关推荐

AXI4协议之AXI4-Lite接口详解及实战

本文首先对AXI4总线协议进行了一个简单的介绍,然后使用vivado提供的模板创建了一个AXI4-Lite Master的接口,并生成了一个具有Master和Slave的代码实例,阅读该示例代码,进行修改后用于自己的项目。

高阶近似的博客 2万+

VMware虚拟机安装MS-DOS 7.10教程

dos安装教程dos版本7.10附下载链接。

Minecraft_xiaole的博客 1万+

保姆级教程:用Jetson Orin Nano和ROS2 Humble搞定PIXhawk 4飞控通信(含配置文件详解)

本文提供了一份详细的Jetson Orin Nano与PIXhawk 4飞控通信配置指南,涵盖硬件连接、ROS2 Humble环境搭建、MAVROS2配置及通信调试全流程。通过实战案例和配置文件详解,帮助开发者快速实现无人机上位机与飞控的稳定通信,适用于无人机开发与自动化控制场景。

weixin_33670786的博客 475

UG NX与PLC-1500的在环虚拟测试

TIA、PLCSIM、NetToPLCsim、KEPServerEX以及UG NX的在环虚拟测试

lvtlvtlvtlvt的博客 4220

nRF52840开发环境搭建:从零开始配置Keil与SDK

本文详细介绍了nRF52840开发环境搭建的全过程,包括硬件准备、Keil MDK与nRF5 SDK的安装配置、常见问题解决方案及蓝牙功能开发进阶。特别强调了J-Link调试器的使用和SDK版本匹配的重要性,帮助开发者快速上手nRF52840开发。

weixin_29176179的博客 882

17、扩展景深成像的瞳孔函数工程技术解析

本文详细解析了扩展景深成像的关键技术,包括基于焦距堆栈的数字处理方法、立方相位掩模的光学设计、对数非球面透镜的应用以及旋转点扩散函数的深度编码功能。通过实验验证和实际应用分析,展示了这些技术在显微镜成像、工业检测和医疗影像中的广泛用途及优势。同时探讨了未来发展方向,如智能算法优化、新型光学材料和多模态成像技术,为相关领域的技术创新提供了参考。

y2z3a4b5c的博客 168

Python爬虫实战:基于Playwright与异步技术的专利数据抓取系统

专利数据是企业技术创新、市场竞争分析和行业趋势预测的关键情报来源。然而,专利数据通常分散在各个国家的专利局网站,数据结构复杂,反爬机制严格,使得高效抓取成为技术挑战。本文将详细介绍如何构建一个基于最新Python技术的专利数据抓取系统,涵盖Selenium的现代化替代方案Playwright、异步编程、智能代理轮换等高级技术。

2201_76125261的博客 1562

【GlobalMapper精品教程】073:像素到点(Pixels-to-Points)从无人机图像轻松生成点云

Global Mapper v19引入的新的像素到点工具使用摄影测量原理,从重叠图像生成高密度点云、正射影像及三维模型。它使LiDAR模块成为已经功能很强大的的必备Global Mapper扩展功能。打开GlobalmapperV25.1中文版,点击【Lidar分析】→【像素到点云】,如下所示:V25之前的版本点击工具条上的【像素到点】工具:打开工具,可以【使用向导选】,或者选择【使用主窗口】,都很简单。

智慧空间实验室 1975

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: extern使用方法总结!
下一篇: 技术路线的选择重要但不具有决定性
XIONGLUU
博客等级 码龄19年 7粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值