作者回复: 你好,每个企业面临的实际问题都不相同,很难给出一个通用的落地方案,但从配置管理的角度来说,最重要的就是识别和管理配置项,也就是将一切纳入版本控制,并且是要遵循规则纳入管理的,我的建议是你把软件交付过程中涉及的这些配置项通盘梳理一下,看看是否都满足这个要求。纳入管理之后,就要建立流程方面的上下游关联和联动,比如开始可以从需求和代码的关联做起,再逐步扩展到其他配置项内容。当然,也欢迎你提出你的实际问题来,这样可能会更加聚焦一些,谢谢。
作者回复: 嗯,可以简单给你介绍下我们的一些过程吧,其实最早也是没有专职的配置管理职能的,软件的发布和集成都是研发团队自行管理。推动这个事情的契机是公司决定加快版本发布节奏,从三周一个版本推进到两周一个版本,看起来缩短了一周时间,但就像之前演示的部署引力图一样,方方面面的影响都在阻碍这个目标。
所以,我们决定引入配置管理智能,初期就做两件事,一个是重新定义分支策略,从长分支改为了短分支加特性分支的模式,第二个是管理集成权限,从任何时间都有人能集成,到按照版本周期管控。在这个过程中,梳理了代码仓库的目录结构,存储方式,并基于流程建立了在线提测平台实现研发过程的线上化。
接下来配置管理结合平台和流程先前先后开始延展,向前管理需求代码关联,事中将构建测试等过程工具以及环境配置纳入统一管控,向后定义了版本发布和上线规则。在团队走上正轨有序开发之后,逐步加强平台和自动化能力的建设,比如代码提交失控,那么就做集成线上化,测试验收通过之后自动合并代码,比如环境差异大,就通过容器化和服务端配置管理工具,实现统一的初始化。构建速度慢,就通过网络改造和增量编译提升构建速度。从而最终使得版本发布这件事情变成一键式的操作。
我想说的是,实践有很多,但是哪些可以用于解决实际问题,还要把握原则,如果你不知道该从何入手,不妨看看现在的软件交付流程,是否是由配置管理来驱动的,是否还有一些数据是失控和混乱的状态,是否版本的信息还无法完整回溯。对于配置管理来说,标准化,自动化,服务化是一条通用的路径,以上供你参考。
作者回复: 没错,每个人写下的每一行代码和提交注释都是自身credit的体现,良好的习惯也要通过流程来培养,为了加速这个习惯的养成,适当的规则建立也是很有必要的。
作者回复: 你好,坦率的说,我个人对于考证不是特别热衷,当然不是质疑认证本身的价值哈,对于咱们这行来说,单纯的输入式学习,效果不见得好,我觉得还得要看跟你当前工作或者未来发展方向相关的认证,就像你说的以考试来督促学习,但是也更建议通过输出来督促学习。就好比我在写这个专栏的过程中,有很多东西也不完全清楚,没有深究,但是为了体系化输出,就必须有针对性的补充相关的知识图谱哈。可以给自己定一个小目标,在团队内分享一个系列课程,说不定在交流中,会有新的收获哈。
作者回复: 你好,感谢你的留言,的确以DevOps的广度而言,其实每一讲的内容都可以独立展开为一篇专栏。为了帮助大家更好理解和上手,我也在准备一个完整的端到端流水线的实例,通过一次代码提交到上线的完整过程,来理解贯穿前面所讲过的这些实践理念,大约会在专栏靠后的部分上线哈。
作者回复: 你好,我的理解配置管理和项目管理是不同的思路,配置管理虽然也会涉及到流程的梳理和定义,但这些都是为了更好的配合配置管理的理念而存在的手段,而项目管理是为了在资源、时间、范围的约束下达成目标,一个偏落地执行,一个偏优化改进,虽然实际工作中,这两拨人经常会打交道,但我看到的是冲突大于合作。。。
作者回复: 你好,在以往公司内部都有专职的配置管理员,不过近些年来这个岗位本身有些模糊,在互联网公司随着流程和工具平台的成熟度提升,慢慢都会转到工程效率,版本团队来兼任,这个还是要看你们公司的业务形态,一般组织级会统一建设配置管理能力和规则。
作者回复: 嗯,工具还好,类似Inception之类的工具都比较成熟,关于数据库变更脚本,还是要有Review过程以及自动风险分析的,如果有危险操作不会通过自动化检查。
作者回复: 赞,统一变更控制是核心能力,即便哪天不流行DevOps了,这个也不会过时的。
作者回复: 的确像你说的,给一个人解释清楚配置管理是什么并不是一件简单的事情,就跟用一句话说明白DevOps是干啥的一样。不过,我倒觉得版本,变更,追溯都是配置管理的领域范畴,也是配置管理的目标,如果说做到全流程可追溯,大家可能理解起来会更直观一些,anyway,我觉得核心还是要把这些思想落在日常流程定义,工具平台开发里面才能发挥真正作用哈。
作者回复: 你好,抱歉最近双11比较忙,才有时间统一回复大家的留言。
首先,我想说的是,配管并没有没落只不过是换了一种新的形态,更加关注于工程效率领域,比如效能产品,效能平台,效能落地项目等,我个人认为这个方向是很有前景的,也一直在这个方向摸索,所以,加油哈!
至于领导注重理论,我觉得也不是什么坏事,如果领导连理论都不懂,那就更是费劲了,当然我也相信领导更加关注结果,结果来源于实践,所以这个并不冲突。
关于你说的最后一个问题,我的建议是私聊哈,你可以加我微信:cendrier 😝
作者回复: 嗯,把每一次提交都当做自己的名片来对待,加油哈。
作者回复: 可能随着企业规模的扩大,单一可信数据源的问题会越来越明显吧,至少在我所在的公司,这就是一个非常大的通病,各个系统之间难以有一套标准的语言来实现打通。
作者回复: 是的,如果标准不能固化在工具平台之中,的确容易流于形式,标准能够被绕过,说明还是没有重视这块的价值吧,这么细节的内容,可能领导也的确关注不到。