- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大型企业CI平台建设和实施分享 腾讯 陈小光 Agenda 现状挑战 实践分享-平台建设 实践分享-实施推广 总结 QA 7年研发管理和优化经验,跨越银行、互联网等行业 目前腾讯持续交付、持续集成实践者 爱好广泛包括且不限敏捷实践,音乐,数学 微博 @v陈小光v Mail go2cxg@ 现状挑战-现状 工程师500 同时进行的项目20 开发语言覆盖c,c++,php,java,以及手机平台等 项目之间依赖复杂,涉及到多层循环 现状挑战-挑战-平台 同时存在CI平台五套,各自为政,平台不一,资源浪费,是否要整合? 当项目代码量超过百万时,如何提升构建效率?如何管理复杂构建依赖? CI集群30台,如何能及时有效的更新工具和软件以及配置到相关环境里面? 如何保证从开发-测试-上线三个步骤的源码和二进制包版本一致性? 如果处理来自不同团队的对CI平台的需求? 现状挑战-挑战-实施 BU老大们对CI理解不一,如何获取他们的支持? 开发对持续构建的失败漠不关心怎么办? 如何让不到五人的CI团队,高满意度的支持大于五百人团队实施CI? 如何提高开发编写单元测试的积极性? 底层代码随意变更提交,影响到上层代码怎么办? 解决方案-平台-设计思想 平台设计思想: 统一平台和运维,减少维护成本和机器资源,成果共享 环境保证绝对权威,跟线上、测试、开发保持一致 提升易用性,减少用户学习成本 统一测试和上线的包出口 工具尽量使用开源 Jenkins Subversion Testlink 解决方案-平台-拓扑结构 解决方案-平台-高效构建系统 基于开源scons自研的一套分布式统一构建系统 支持c++,java,probuf,swig等多种语言 代码变更后可以自动分析依赖关系 集构建,测试,静态代码检查,高亮错误显示等功能 支持增量和分布式编译和测试 解决了构建效率和依赖管理问题 其他提升构建速度方法: 使用tmpfs,IO效率基本为0,需要大内存机器 使用cache机制,比如ccache 分布式编译,比如distcc 源码分层:抽离基础库代码专人维护,包括common和thirdparty 解决方案-构建分级 构建类型 NightlyBuild:夜间,全量测试和构建,重建cache CheckInBuild:CheckInSvn,增量ut,增量构建,基于cache HandleBuild:按需,全量构建和测试,为了打包 解决方案-平台-统一接入脚本 概述:统一某种类型的项目或代码的公共动作(比如编译,执行ut,静态检查,包上传等)到一个脚本或工具里面,用户只需要输入路径配置即可完成CI的配置,减少用户学习和使用成本。 C++: 写好脚本ci_exec compile_dir=$dir1 ut_dir=$dir2 st_dir=$dir3 Java(ant为例): 解决方案-平台-统一环境管理-puppet管理环境 使用puppet做构建环境统一管理更新 管理如下配置: Hosts配置 构建脚本 构建软件 Slave初始化脚本 Slave上puppet初始化用rpm包实现。 Subversion Puppet master Puppet slave1 Puppet slave1 … WorkSpace CheckIn 亦可通过CI本身功能来管理环境 Jenkins提供多Slave配置功能 解决方案-平台-统一环境管理-Jenkins管理环节 通过Jenkins本身管理构建环境,slave正在以后即可做。 通过Jenkins多Slave配置完成: 规划好SVN里面目录Conf bin等 在Slave机器上配置bin目录到$PATH 优点: 使用方便,测试通过以后直接提交到SVN即可更新 Jenkins直接辐射到各个Slave,更新方便 缺点: 没有整体视图 Subversion Jenkinsmaster Jenkins slave1 Jenkins slave1 … 修改工作区 CheckIn 解决方案-平台-presubmit方案-client模式 Dev工作区 Subversion CheckSvnService Upload.py专用提交脚本 Check.py 检查:提交的注释里面是否有指定加密串 通知:通过对应人 Upload.py: 1.检查是否被模块owner Codereview且被Approved 2.在内存文件系统tmpfs中快速run编译和ut 3.做CodeStyle检查以及静态检查 4.成功则自动提交,在注视里面加标记 5.失败给予提示 upload.py –i 33896 –I 后为codereview id 目
您可能关注的文档
- 理工设计类任务书.doc
- 代购业务.docx
- 112937_最系统的房地产销售培训资料.ppt
- 第八章固定资产后续确认与计量.ppt
- 【draft】业务改善キャンペーンページ告ャ案.ppt
- EXCEL 甘特图.docx
- 年5月助理人力资源管理师试题理论单选.doc
- 2010年 高级人力资源管理师 绩效管理培训.ppt
- 第一讲 什么是会计理论(6-8学时).ppt
- -人力资源规划执行-0311.doc
- 2012-2021北京重点校高一(下)期中语文汇编:词类活用.pdf
- 电力市场与经济运行优化:电力市场优化算法_(28).电力市场中的市场力分析.docx
- 医院培训课件:《俯卧位通气的护理》.pptx
- 电力市场与经济运行优化:电力系统能效优化方法_(1).电力市场基础理论.docx
- 电力市场与经济运行优化:电力系统能效优化方法_(9).电力系统运行与能效优化.docx
- 电力市场与经济运行优化:电力系统能效优化方法_(15).电力市场与环境影响分析.docx
- 电力市场与经济运行优化:电力系统优化调度_(1).电力市场基础与原理.docx
- 电力市场与经济运行优化:电力系统优化调度_(14).电力市场改革政策与影响.docx
- 电力市场与经济运行优化:电力系统运行优化_(4).电力系统运行基础.docx
- 2025年航运行业分析.docx
文档评论(0)