配置管理之构建管理(3)

作者: 研发效能D_laofo | 来源:发表于2017-04-27 23:19 被阅读0次

插播个今天刚发生的事。某神在没数据备份,运维只做了个快照的情况下直接操作线上 gitlab 服务器,结果把某个目录删了。回来让运维从快照恢复数据。运维说快照有问题,恢复不了了。。。居然恢复不了了。然后下班点,大神在公司解决问题,运维回家了。。。正常点回家了。

构建过程可重复,构建产物可重现

这是什么梗呢?为啥构建过程要可重现?其实这条是基于下面的假设的。

假设在一个配置管理员受控的构建系统中,如果使用了相同的构建机器、相同的构建脚本,依然来编译同样版本的代码时,得到的构建产物应该是一样的。

环境相同、配置相同、构建脚本相同、构建过程相同,那么最后的构建产物应该是一样的。

举个🌰:在pek-bld-001这台机器上,/home/cmbuild/workspace 的目录下我用下面的命令签出一份修订版本号为1234的 svn 的代码,然后编译出一个版本号为1.0.1的 abc.jar 文件;

svn co -r 1234 http://svn.scmroad.com/abc
cd abc
mvn package

假设过了一个月后,我依然重复上述操作,要保证我依然可以得到相同的结果,相同的一个 abc.jar 文件。如果说这个编译过程就是个一次性的事情,那构建管理就不好玩了。如果只知道要一个 1.0.1 版本的 abc.jar, 这个时候只有构建环境、构建脚本,但是无法生成相同的产物,多尴尬呀。

影响构建产物的因素

  • 构建环境变化,比如有人升级了操作系统。以前的环境下可以正确编译出 abc.jar 这个文件,现在不可以了。
  • 构建脚本变化,比如有人改了构建脚本。构建脚本要求所有的 java 项目都要用 gradle 编译,可以前的项目代码用的是 maven
  • 代码变化。当时的版本是1234是我们知道的一个版本。如果我们没有记录下当时abc.jar 所对应的修订版本号,是很难回溯到当时代码的版本的。

为什么要做这些

携程线上服务宕机事件大家都知道吧?如果不知道,我后面也会把详细的分析贴出来。在那种线上服务都被删的情况下?作为配置管理员要能做到哪些呢?

  • 快速找到当前线上服务所对应的版本库版本。比如线上服务abc.jar 对应的源代码库 abc 的 1234 版本。
  • 利用构建脚本迅速从构建环境中构建出产品包。比如1.0.1版本的 abc.jar
  • 把这个 jar 文件快速分发到研发自测环境,测试人员用的测试环境、预生产环境

只要测试人员给力,能快速做完回归测试,如果没问题,还是可以直接上线,恢复服务的。当然像携程那么大的网站恢复起来,也不是一时半刻容易的事。

小结

通过各种措施,保证构建过程的可重复,构建产物的可重现是配置管理中对构建管理最基本的要求。从这里也可以看到配置管理中对版本管理的重要性了。没有版本管理的支撑,怎么找到当时的代码,怎么找到当时的脚本和配置?版本管理是做好配置管理的基础,而构建管理是对研发最有帮助的环节。做好这一步绝对是研发团队最可爱的人,做不好你就是团队的坑货。

相关文章

  • 配置管理之构建管理(3)

    插播个今天刚发生的事。某神在没数据备份,运维只做了个快照的情况下直接操作线上 gitlab 服务器,结果把某个目录...

  • #☕️后端# 3. Maven

    Maven 项目管理工具 构建项目(Builds) 依赖管理(Dependencies) 配置管理(SCMs) 发...

  • 配置管理之构建管理(1)

    变更管理很多都是流程、授权相关的事,配置管理从中可以做一些事情,但是我个人觉得构建管理才是最有意思的。 配置管理怎...

  • 项目管理之配置管理

    1.配置管理的概念 2.配置管理的功能 3.典型的配置项有哪些 4.如何进行配置管理计划 5.如何执行配置管理过程...

  • 配置管理之构建管理(4)

    怎么能提高研发的效率呢?快速的编译构建出产品绝对是最有效的措施之一。 急速的构建速度 再快的构建速度研发人员都不嫌...

  • 配置管理之构建管理(5)

    迅速解决构建问题 - 总有被修改的构建环境- 总会含有 bug 的脚本- 再好的硬盘也会遇到无法读写- 再好的内存...

  • 配置管理之构建管理(2)

    易理解的构建脚本 为什么要把构建脚本单拿出来重点说?因为我发现在工作中,尤其是存活时间长的公司,基本上都有一个研发...

  • 配置管理员

    负责在项目整个生命周期进行配置管理活动,具体有: 1.编写配置管理计划; 2.建立和维护配置管理系统; 3.建立和...

  • 配置管理系统,界面更改了天气预报插件

    layui版本配置管理系统,一个功能齐全的后台管理系统,小型项目的首选 vue版本配置管理系统的Vue版本来了 之...

  • Nacos - 配置管理(3)

    4 Nacos配置管理基础应用 4.1 Nacos配置管理模型 对于Nacos配置管理,通过Namespace、g...

网友评论

    本文标题:配置管理之构建管理(3)

    本文链接:https://www.haomeiwen.com/subject/iwgnzttx.html