ScrumGathering2012-大型企业CI平台建设和实施分享-腾讯陈小光课件_第1页
ScrumGathering2012-大型企业CI平台建设和实施分享-腾讯陈小光课件_第2页
ScrumGathering2012-大型企业CI平台建设和实施分享-腾讯陈小光课件_第3页
ScrumGathering2012-大型企业CI平台建设和实施分享-腾讯陈小光课件_第4页
ScrumGathering2012-大型企业CI平台建设和实施分享-腾讯陈小光课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大型企业CI平台建设和实施分享腾讯陈小光Agenda现状&挑战实践分享-平台建设实践分享-实施推广总结Q&A7年研发管理和优化经验,跨越银行、互联网等行业目前腾讯持续交付、持续集成实践者爱好广泛包括且不限敏捷实践,音乐,数学微博@v陈小光v

Mail

现状&挑战-挑战-平台同时存在CI平台五套,各自为政,平台不一,资源浪费,是否要整合?当项目代码量超过百万时,如何提升构建效率?如何管理复杂构建依赖?CI集群30台,如何能及时有效的更新工具和软件以及配置到相关环境里面?如何保证从开发->测试->上线三个步骤的源码和二进制包版本一致性?如果处理来自不同团队的对CI平台的需求?现状&挑战-挑战-实施BU老大们对CI理解不一,如何获取他们的支持?开发对持续构建的失败漠不关心怎么办?如何让不到五人的CI团队,高满意度的支持大于五百人团队实施CI?如何提高开发编写单元测试的积极性?底层代码随意变更提交,影响到上层代码怎么办?解决方案-平台-设计思想平台设计思想:统一平台和运维,减少维护成本和机器资源,成果共享环境保证绝对权威,跟线上、测试、开发保持一致提升易用性,减少用户学习成本统一测试和上线的包出口工具尽量使用开源JenkinsSubversionTestlink解决方案-平台-高效构建系统基于开源scons自研的一套分布式统一构建系统支持c++,java,probuf,swig等多种语言代码变更后可以自动分析依赖关系集构建,测试,静态代码检查,高亮错误显示等功能支持增量和分布式编译和测试解决了构建效率和依赖管理问题其他提升构建速度方法:

使用tmpfs,IO效率基本为0,需要大内存机器

使用cache机制,比如ccache

分布式编译,比如distcc

源码分层:抽离基础库代码专人维护,包括common和thirdparty解决方案-构建分级构建类型NightlyBuild:夜间,全量测试和构建,重建cacheCheckInBuild:CheckInSvn,增量ut,增量构建,基于cacheHandleBuild:按需,全量构建和测试,为了打包解决方案-平台-统一接入脚本概述:统一某种类型的项目或代码的公共动作(比如编译,执行ut,静态检查,包上传等)到一个脚本或工具里面,用户只需要输入路径配置即可完成CI的配置,减少用户学习和使用成本。C++:

写好脚本ci_execcompile_dir=$dir1ut_dir=$dir2st_dir=$dir3Java(ant为例):解决方案-平台-统一环境管理-Jenkins管理环节通过Jenkins本身管理构建环境,slave正在以后即可做。通过Jenkins多Slave配置完成:规划好SVN里面目录Confbin等在Slave机器上配置bin目录到$PATH优点:使用方便,测试通过以后直接提交到SVN即可更新Jenkins直接辐射到各个Slave,更新方便缺点:没有整体视图SubversionJenkinsmasterJenkinsslave1Jenkinsslave1…修改工作区CheckIn解决方案-平台-presubmit方案-client模式Dev工作区SubversionCheckSvnServiceUpload.py专用提交脚本Check.py检查:提交的注释里面是否有指定加密串通知:通过对应人Upload.py:1.检查是否被模块ownerCodereview且被Approved2.在内存文件系统tmpfs中快速run编译和ut3.做CodeStyle检查以及静态检查4.成功则自动提交,在注视里面加标记5.失败给予提示upload.py–i33896–I后为codereviewid目的:把问题扼杀在提交到代码库之前,减少影响Dev工作区SourceControlSystemCheckSvnServicepresubmit.py脚本检查、信息搜集、打diff、上传Check.py检查:提交的注释是否有指定加密串通知:通过对应人两种Presubmit模式-Client/Server模式Presubmit服务器验证、提交解决方案-平台-报表平台jenkins构建的报表平台保存如下数据构建成功率构建时长测试覆盖率接入率等有开源插件可支持数据报表展现!解决方案-实施-先试点试点项目选择:交付压力小的重点项目成立联合虚拟项目组运作做好评估:缺陷率,代码质量等试点目标目标:摸索经验平台建立树立标杆建立影响透明效果取得重视解决方案-实施-制度化接口人制度:1.需要实施CI部门指定接口人2.每个部门对应CI实施责任人3.对CI实施接口人进行trainingCI平台需求管理流程:1.把CI平台当做“产品”来做2.明确需求管理流程3.排期实现,可视化进度沉淀制度1.把CI实施框架和FAQ沉淀到wiki2.每周专人值班辅助接口人3.常见问题沉淀到wiki合作,而非推广总结平台总体架构:统一平台,包服务器,统一出口构建平台:构建平台,管理依赖,支持分布,增量编译公用脚本:封装复杂操作,减少dev学习和使用成本环境管理:puppet,利用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论