Google大规模持续集成与构建系统的挑战与解决方案
4星 · 超过85%的资源 需积分: 10 118 浏览量
更新于2024-07-17
收藏 1.03MB PDF 举报
"这篇博客文章主要介绍了Google的持续集成和构建系统的概况,强调了Google在大规模软件开发中遇到的挑战以及解决这些问题的具体策略。作者通过分享Google的开发模式,如在主分支上进行开发,强调了确定性和简化的重要性。文章还提到了构建描述、依赖分析和增量构建等关键概念,并简要介绍了BuildinCloud工具的作用。"
Google的持续集成和构建系统是应对大规模、多语言、高度活跃的开发环境的关键基础设施。在2010年的现状中,Google拥有超过1亿行源代码,12万个测试文件,每天进行6.5万次构建,执行5亿次构建动作,运行750万个测试文件,1.2亿个测试用例。这样的规模意味着平均每分钟有20多次代码提交,而且大约一半的代码每月至少被修改和提交一次。
开发模式方面,Google采用"head/trunk"上的开发方式,即代码一旦提交,就会立即对相关项目可见。这种敏捷方法虽然能快速迭代,但也可能导致构建和测试失败的问题。源代码的依赖、构建和发布追求确定性和简单性,但这也带来了时间和资源的消耗,因为需要访问和构建所有相关代码。
面对这些挑战,Google采取了以下解决方案:
1. 强大的构建系统:这包括自动构建和持续集成,确保每次代码提交后都会运行所有受影响的测试。大约三分之二的构建动作来源于自动构建,同时有1800多个完整的持续集成构建用于回归测试。
2. 构建描述:使用BUILD文件来定义项目结构和依赖关系,例如cc_binary和cc_library规则,这些规则指定了目标类型、源文件和依赖项。
3. 依赖分析:有效地管理代码之间的依赖关系,以优化构建过程,只构建和测试真正受影响的部分。
4. 增量构建:减少不必要的工作,只重新构建和测试那些实际改变的代码部分,以提高效率。
5. BuildinCloud:这是一个内部工具,可能类似于现代的云构建服务,它支持自动化和分布式构建,帮助处理大规模的构建任务。
这些策略和工具的结合使得Google能够快速发现并定位代码缺陷,提高开发效率,减少构建和测试的等待时间。通过这种方式,Google不仅能够应对大规模开发带来的复杂性,还能保持高效和高质量的软件交付。
2019-07-17 上传
2021-02-05 上传
点击了解资源详情
2021-01-30 上传
2018-10-03 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38669628
- 粉丝: 386
- 资源: 6万+
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器