AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

支持百度万人开发的工具装备及百度工程效率提升实践 by 夏仲璞

发布者 arch
发布于 1462497142194  浏览 2643 关键词 架构, 管理软件 
分享到

第1页

夏仲璞 百度工程效率部



第2页

大纲

1 百度工程效率全景:效率核心 & 实践集

2 百度的挑战:大规模协同 + 产品多样性

3 百度工程效率提升的整体思路

4 万人协同规模下的工程效率挑战

5 百度效率工具方案相比组合方案的优势



第3页

工程效率全景:效率核心 & 实践集



用户故事地图 迭代计划 需求拆分 看板跟进

回顾复盘



精益画布 MVP

用户反馈 舆情分析



管 理 实 践 集



工程



复用



基础设施复用



服务复用



工 程 实



代码复用

• 公共库 • 单根代码树



践 • 末端依赖



集 • 代码质量保证



• 代码检索



• 高速编译



工高程速 复迭用代

持续集成 持续交付 灰度发布



工价程值 复验用证

A/B验证



第4页

百度工程效率的挑战:大规模协同 +产品多样性



快 协同人数10000+ 速 增 长 每日代码提交1万次+ 的 协 同 规 源文件3000万+ 模

每月新增需求bug卡片7万+



研发交付效率 从3天到最快3小时

项目迭代效率 从20天到6天

价值验证效率 验证周期缩短至1/10



创业期 v.s. 稳定迭代期 运营驱动型 v.s. 研究型 3-5人团队 v.s. 数百人团队



产 品 开 发 形

态 多 样 性



Web产品 v.s. 移动 v.s 硬件



第5页

百度工程效率提升的整体思路:研发基础设施 x 标准规范 x 最佳实践

以统一的工具平台实现优秀工程实践, 整体提升全公司工作模式和工程效率

研发基础设施



工程 效率



标准规范

用规范筑底全公司工程行为准则, 保障协作、传承



最佳实践

以产品团队为单位应用最佳实践, 以标杆团队引领工程效率持续提升



第6页

百度研发基础设施 = 基础研发平台 + 核心工具插件



需求



开发



交付



需求库

项目管理平台iCafe

产品规划插件 迭代计划插件 看板跟踪插件 分享讨论插件 数据报表插件 Bug创建插件



代码库

代码管理平台iCode

代码检查工具 代码搜索工具 编译工具 单测工具 分支管理插件



产品库

持续交付平台iPipe

构建执行工具 20+测试插件 5种部署插件 打包插件 监控插件



第7页

百度研发基础设施整体思路 – 基础研发平台:场景能力强大



项目管理平台 iCafe

需求/bug管理 产品规划(精益模式) 迭代计划(敏捷模式) 看板跟踪(敏捷模式) 数据报表 分享讨论



代码管理平台 iCode



持续交付平台 iPipe



基于Git的代码库 CR、PR开发协作流程 百度编码规范检查 代码质量多维度检查 主流分支模式(Centralized, Feature branch, Gitflow) 全库代码检索



Build:高速云编译 Test:20+测试服务 Deploy:5+部署方案 发布到产品库 发布上线



第8页

百度研发基础设施整体思路 – 工具:单点能力强大



强大:调度执行工具CTP



高效:代码质量检查工具CodeDr



每日构建量

先进:高速云编译BuildCloud



检查峰值 10万 行代码/分钟

数据驱动:度量工具KaoPu



编译时间(秒)



第9页

万人协同规模下的工程效率挑战

规模下的承载能力挑战:

- 企业级持续交付平台方案 - 高速云编译方案 - TB级代码库的git集群化方案

规模下的管理挑战 - 大规模产品开发“快而有序”

- “用户故事地图”让产品团队聚焦价值交付 - “研发数据链 (LINK ALL)”让需求、开发、交付联动贯通



第10页

RESOURCE



USER TASK



承载能力挑战 – 企业级持续交付平台方案



WEB API CLI

Register Scheduler-engine



Executer



Executer



……



con con con

node



Resource-pool



con con con

node



con con con

node



con con con

node



任务调度:

基于DAG算法的资源效益竞争机制 支持万级任务实时调度

资源管理:

基于容器进行资源管理 自动扩容 自动重加载 可视化管理

监控:

实时反馈任务执行情况 资源池自动预警、伸缩

执行方式:

并行、串行、定时、条件、关健路径



第11页

承载能力挑战 – 企业级持续交付平台方案



Build











插 集规动需



件 层



Git/svn



群 编



范 检



态 检



求 关



译查查联



Test

功压集压灰 能力成力度 测测测测验 试试试试证



Deploy

产 出一集监 统键群控 一回部反 管滚署馈 理





行 串行





并行



定时



条件触发



关键路径



调 度



注册







分配



执行 统一资源资源



结果 效益度竞争池



第12页

Code Repo



承载能力挑战 – 高速云编译方案 BuildCloud CLI



BuildCluster



Scheduler



Build Node

Build Node

Build Node



workspace

exe 依赖关 系解析

.a1 .o .a2

.o … .o .o … .o

缓存机制 分发 编译

BuildNode



反向依赖管理

反向依赖 编译调度

Module-Deps Management



分布式编译:

极速构建 云端增量编译 反向编译依赖构建

构建能力:

编译 单测 覆盖率检查 代码检查



第13页

承载能力挑战 – TB级代码库的git集群化方案

Sharding

基于repository分片 支持动态扩容

HA

Failover 三重备份

集群管理

集群监控 资源管理 提供可视化的dashboard

安全

支持专属云,物理隔离



第14页

管理挑战 – 大规模产品开发“快而有序”

“用户故事地图”让产品团队聚焦价值交付

- 可视化产品全貌,用户场景\用户行为\用户故事优先级一目了然 - 生成MVP规划,百人协同一条主线 - 同步开发进度,大型产品也可做到进展一览无余



第15页

管理挑战 – 大规模产品开发“快而有序”

“研发数据链 (LINKALL)”让需求、开发、交付联动贯通



第16页

百度效率工具方案相比组合方案的优势



 完全支持



部分支持



不支持



用户故事地图



估算



版本规划



迭代计划



管理实践



任务板 燃尽图



看板



看板度量



回顾分析



分享讨论



协作模型



代码搜索



工程实践



代码规范 代码检查



代码评审



编译加速



混合云管理

稳定性&承载能力



工具间整体性&连通性



JIRA+Gitlab+Jenkins

                







BaiduiCafe+iCode+iPipe

                







第17页

百度效率工具方案已对外提供SaaS服务



第18页

THANKS

微信公众号:Baidu-EE 咨询邮箱:xiaolvyun@baidu.com QQ群:317759963 门户地址:https://xiaolvyun.baidu.com



支持文件格式:*.ppt, *.pptx, *.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。