对持续集成的浅思

	这是工作中结合前辈和自己的思考总结的关于CI的想法:
		持续集成的英文是Continuous Integration(CI),网络上可以搜出一大片定义,哪一个比较正确呢,真不好说,我目前无权回答这个问题,但是心中总要有个概念,引用一段对话来说明:
			某日,某某A说:总算我的持续集成做完了!
			B就说了:你敢说你做完了?
			A说:能自动编译、自动打包、上传到测试的服务器,还不算做完吗?
			随后A被B教育了一番,那么能自动编译,打包,发布就是持续集成吗?当然是的,但是这只是最基本的。
			我愿意这样来定义它:持续集成首先是一种实践,然后它是一种思想,一种思考方式和行为习惯!,包括一些具体行为,开发check in后触发编译、测试、部署、反馈等。
			当然具体的可以参看:Martin Fowler的Continuous Integration。
		针对不同角色,持续集成的实践是不一样的
		针对开发人员
			习惯:频繁提交、正确提交、及时修复
			坚持:数据库集成、单元测试、集成测试
			审查:使IDE 能做代码静态分析
			架构:功能开关(推荐关注)
			有时候在一个新功能由于不够完善,已经提交到主干上了。为了保证产品及时发布,又要保障不影响用户使用。提供一个功能开关,关闭时,客户就不会看到最新版的功能菜单。
		QA(测试)人员
			保障或建立测试安全网;
			督促开发写单元测试、集成测试;
			编写验收测试脚本;
		集成、发布人员
			实现一键化构建;
			部署应该有连续性;
			分阶段构建;
			环境配置管理;
			自动生成ReleaseNote;
		SCM 人员
			集中放置软件资产(资产是指脚本、代码、文件与软件开发有关的);
			创建一致的目录结构;
			建立合理标签规范:命名、标签创建时机;
			建立可追溯机制(编译日志存档、编译重现、包可追溯、回滚);
		环境管理
			搭建部署流水线;
			注意包管理有规可循。推荐工具:yum、deb、nexus、自建包管理平台;
		执行效率
			I/O 瓶颈,可以采用部分SSD 硬盘方式;
			针对不同语言优化硬件:C 语言:cpu java 语言:内存;
			带宽因素;
			测试分级、分组;
		 	代码更新优化:ssh 方式替换svn 或者http 方式。
	
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯·金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值