【软件工程】持续集成:如何建立百万行级代码的版本构建系统

工作经历:

本人华为工作6年,做过开发、维护、一线支撑等大量技术工作。

因为加班吃不消进入中软,目前为高级项目经理,主导CI(持续集成)方向,中软应该是职业生涯的中间一站。

本文主要涉及多个项目组间同步、版本配套、编译、打包的自动化,持续集成包括验证、部署、发布的自动化,笔者接触较少,不献丑了。

本文只介绍基本框架,不涉及细节,细节部分后续逐渐补充。

一、百万行级代码模块及项目组配合

【软件工程】持续集成:如何建立百万行级代码的版本构建系统 【软件工程】持续集成:如何建立百万行级代码的版本构建系统

【软件工程】持续集成:如何建立百万行级代码的版本构建系统

【软件工程】持续集成:如何建立百万行级代码的版本构建系统 【软件工程】持续集成:如何建立百万行级代码的版本构建系统

(图片丢了:一个M主控,一个C管理资源,N个A服务器做编译、静态检查、打包等)

上图是一个最简单的分布式构建系统,由M服务器接收任务,C管理资源,多个A组成资源池执行分布式编译、打包的任务。

构建系统因为不同的问题会演化得非常复杂,具体等下篇博客详细讨论。

四、其它待解决问题

1、构建系统的前台页面,可以由所有的开发用户访问,启动编译、打包、代码检查等流程。

2、构建系统需要多种启动方式,除了个人选择版本分支进行验证外,凌晨的版本是一天工作的集合,一定要定时器来触发。

3、版本的地址、版本形态、组件的裁剪等,需要配置,所以对应工程需要配置文件。

4、构建系统同其他代码相对独立,但是也需要验证,也需要上git库。

5、构建系统本身代码的验证,需要一个独立环境,可以将上述的最小化系统独立建立一套来验证构建系统代码,流程OK以后再同步到正式环境。

6、SVN更新代码需要同步时,对网络带宽占用较大,可以使用一台服务器先下到局域网,之后使用同步工具拷贝到A。

7、FTP、HTTP server搭建。

8、构建系统自身要有关键点的日志,出现异常后可以及时反馈。每日版本构建失败是研发的事故,连编译都无法通过的代码必须当天解决问题。

9、构建系统一定要稳定,本身失败的概率要低于10%;效率要高,一般不超过1小时,每天可以给项目组更多的轮次验证。

10、构建系统随着需求增加会有很多扩容需求,一定要可以根据配置自动安装。

11、构建系统需要的服务器较多,百万行级代码需要50台服务器以上,建议使用虚拟机,便于扩容、复制等。

12、各个项目组验证、上库、合入代码等操作,都需要严格规定,不能任意打乱主干代码!

。。。。。。。。。

本人QQ 280775561,微信JohnLee790608,有同路人可以一起探讨。

来源:lee790608

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年5月1日
下一篇 2016年5月1日

相关推荐