SlideShare a Scribd company logo
1 of 19
Download to read offline
夏仲璞
百度工程效率部
支持百度万人开发的工具装备
及百度工程效率提升实践
百度工程效率全景:效率核心 & 实践集
百度的挑战:大规模协同 + 产品多样性
百度工程效率提升的整体思路
万人协同规模下的工程效率挑战
百度效率工具方案相比组合方案的优势
大纲
1
3
5
4
2
工程
复用
工程
复用
工程
复用
工程
复用
高速
迭代
价值
验证
工
程
实
践
集
管
理
实
践
集
用户故事地图
迭代计划	
需求拆分	
看板跟进	
回顾复盘
持续集成	
持续交付	
灰度发布	
精益画布
MVP
用户反馈
舆情分析
基础设施复用
服务复用
代码复用
•  公共库	
•  单根代码树	
•  末端依赖
•  代码质量保证
•  代码检索
•  高速编译
A/B验证	
工程效率全景:效率核心 &	实践集
研发交付效率
从3天到最快3小时
项目迭代效率
从20天到6天
价值验证效率
验证周期缩短至1/10
创业期 v.s. 稳定迭代期
运营驱动型 v.s. 研究型
协同人数10000+
每日代码提交1万次+
每月新增需求bug卡片7万+
源文件3000万+
Web产品 v.s. 移动 v.s 硬件
3-5人团队 v.s. 数百人团队
快
速
增
长
的
协
同
规
模
产
品
开
发
形
态
多
样
性
百度工程效率的挑战:大规模协同 +	产品多样性
百度工程效率提升的整体思路:研发基础设施 x 标准规范 x 最佳实践
工程
效率
研发基础设施
标准规范 最佳实践
以统一的工具平台实现优秀工程实践,
整体提升全公司工作模式和工程效率
用规范筑底全公司工程行为准则,
保障协作、传承
以产品团队为单位应用最佳实践,
以标杆团队引领工程效率持续提升
百度研发基础设施 = 基础研发平台 + 核心工具插件
项目管理平台iCafe
产品规划插件
迭代计划插件
看板跟踪插件
分享讨论插件
数据报表插件
Bug创建插件
需求
需求库
代码管理平台iCode
代码检查工具
代码搜索工具
编译工具
单测工具
分支管理插件
开发
代码库
持续交付平台iPipe
构建执行工具
20+测试插件
5种部署插件
打包插件
监控插件
交付
产品库
需求/bug管理
产品规划(精益模式)
迭代计划(敏捷模式)
看板跟踪(敏捷模式)
数据报表
分享讨论
基于Git的代码库
CR、PR开发协作流程
百度编码规范检查
代码质量多维度检查
主流分支模式(Centralized,
Feature branch, Gitflow)
全库代码检索
Build:高速云编译
Test:20+测试服务
Deploy:5+部署方案
发布到产品库
发布上线
百度研发基础设施整体思路 – 基础研发平台:场景能力强大
项目管理平台 iCafe 代码管理平台 iCode 持续交付平台 iPipe
每日构建量
编译时间(秒)
强大:调度执行工具CTP
先进:高速云编译BuildCloud
百度研发基础设施整体思路 – 工具:单点能力强大
检查峰值 行代码/分钟10万
高效:代码质量检查工具CodeDr
数据驱动:度量工具KaoPu
万人协同规模下的工程效率挑战
规模下的承载能力挑战:
-  企业级持续交付平台方案
-  高速云编译方案
-  TB级代码库的git集群化方案
规模下的管理挑战 - 大规模产品开发“快而有序”
-  “用户故事地图”让产品团队聚焦价值交付
-  “研发数据链 (LINK ALL)”让需求、开发、交付联动贯通
WEB API CLIUSER
TASK
Register
… …ExecutorExecutor
Resource-pool
任务调度:
基于DAG算法的资源效益竞争机制
支持万级任务实时调度
资源管理:
基于容器进行资源管理
自动扩容
自动重加载
可视化管理
执行方式:
并行、串行、定时、条件、关健路径node node node node
监控:
实时反馈任务执行情况
资源池自动预警、伸缩
承载能力挑战 – 企业级持续交付平台方案
Scheduler-engine
RESOURCE
con
con
con
con
con
con
con
con
con
con
con
con
Build
Git/svn
集
群
编
译
规
范
检
查
动
态
检
查
需
求
关
联
Test
功
能
测
试
压
力
测
试
集
成
测
试
移
动
测
试
灰
度
验
证
Deploy
产
出
统
一
管
理
一
键
回
滚
集
群
部
署
监
控
反
馈
串行 并行 定时 条件触发 关键路径
承载能力挑战 – 企业级持续交付平台方案
功
能
插
件
层
执
行
层
调
度
层
注册 分配 执行 结果
统一资源资源 效益度竞争池
承载能力挑战 – 高速云编译方案
BuildCloud CLI
Code		
Repo
反向依赖管理
反向依赖
编译调度
Module-Deps		
Management	
workspace
缓存机制
编译分发
Build	Node
Scheduler
Build
Node
Build
Node
Build
Node
Build	Cluster
exe
.a2.a1 .o
.o … .o .o … .o
依赖关
系解析
分布式编译:
极速构建
云端增量编译
反向编译依赖构建
构建能力:
编译
单测
覆盖率检查
代码检查
Sharding
基于repository分片
支持动态扩容
HA
Failover
三重备份
集群管理
集群监控
资源管理
提供可视化的dashboard
安全
支持专属云,物理隔离
承载能力挑战 – TB级代码库的git集群化方案
“用户故事地图”让产品团队聚焦价值交付
-  可视化产品全貌,用户场景用户行为用户故事优先级一目了然
-  生成MVP规划,百人协同一条主线
-  同步开发进度,大型产品也可做到进展一览无余
管理挑战 – 大规模产品开发“快而有序”
“研发数据链 (LINK	ALL)”让需求、开发、交付联动贯通
管理挑战 – 大规模产品开发“快而有序”
百度效率工具方案相比组合方案的优势
    JIRA+Gitlab+Jenkins	 Baidu	iCafe+iCode+iPipe		
管理实践
用户故事地图    
估算    
版本规划    
迭代计划    
任务板    
燃尽图    
看板    
看板度量    
回顾分析    
分享讨论    
工程实践
协作模型    
代码搜索    
代码规范    
代码检查    
代码评审    
编译加速    
混合云管理    
稳定性&承载能力    
工具间整体性&连通性    
完全支持 部分支持 不支持
百度效率工具方案已对外提供SaaS服务
微信公众号:Baidu-EE
咨询邮箱:xiaolvyun@baidu.com
QQ群:317759963
门户地址:https://xiaolvyun.baidu.com
THANKS
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践

More Related Content

Similar to QCon - 支持百度万人开发的工具装备及百度工程效率提升实践

網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境drewz lin
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)Gelis Wu
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Kirk Chen
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012Qiao Liang
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012Qiao Liang
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平drewz lin
 
01.ofm11g概览
01.ofm11g概览01.ofm11g概览
01.ofm11g概览Meng He
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)LetAgileFly
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)jalamar
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松areyouok
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)Gelis Wu
 
数据采集中间件技术交流
数据采集中间件技术交流数据采集中间件技术交流
数据采集中间件技术交流jerry tom
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)Duran Hsieh
 
持续集成之代码度量模型与应用
持续集成之代码度量模型与应用持续集成之代码度量模型与应用
持续集成之代码度量模型与应用drewz lin
 
Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践drewz lin
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC
 
面向大数据的存储系统
面向大数据的存储系统面向大数据的存储系统
面向大数据的存储系统Hanson Dong
 

Similar to QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 (20)

work@baidu 2014
work@baidu 2014work@baidu 2014
work@baidu 2014
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
Top100summit 腾讯-周健-服务化与体系化解决大量定制小项目开发困境
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
 
Top100summit前端的云时代支付宝前端平台架构 王保平
Top100summit前端的云时代支付宝前端平台架构  王保平Top100summit前端的云时代支付宝前端平台架构  王保平
Top100summit前端的云时代支付宝前端平台架构 王保平
 
01.ofm11g概览
01.ofm11g概览01.ofm11g概览
01.ofm11g概览
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)架構設計好簡單系列   設計符合團隊的範本精靈 (Project template)
架構設計好簡單系列 設計符合團隊的範本精靈 (Project template)
 
数据采集中间件技术交流
数据采集中间件技术交流数据采集中间件技术交流
数据采集中间件技术交流
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
 
持续集成之代码度量模型与应用
持续集成之代码度量模型与应用持续集成之代码度量模型与应用
持续集成之代码度量模型与应用
 
Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践
 
twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)twMVC#24 | 開發團隊的敏捷之路(未完成)
twMVC#24 | 開發團隊的敏捷之路(未完成)
 
面向大数据的存储系统
面向大数据的存储系统面向大数据的存储系统
面向大数据的存储系统
 

QCon - 支持百度万人开发的工具装备及百度工程效率提升实践