百度持续集成的发展、挑战与愿景

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 自自我介绍 e t s e T o rH e m e m o 百度持续集成的发展、挑战和愿景 rH e t s 2019年年06月月 e T 董海海炜 e t s e T o rH e m
3. 目目录大大纲 e t s e T o rH e m 1. 百度持续集成发展史 2. 百度持续集成标准化和平台化 3. e t s 持续集成大大数据与智能化探索 e T 4. o rH e m 未来技术展望 e t s e T o rH e m
4. 十十年年磨一一剑,百度持续集成从自自动化到智能化演进 o rH e t s 2009 e T e m 敏敏捷开发(scrum) 2015 2011 瀑布开发 移动产品CI解决方方案 持续集成建设覆盖公司80%产品 e t s e T o rH e m 开启智能化探索之旅 2019 2017 百度工工程能力力力标准v1.0 持续集成试点 SVN 每天上万次代码提交,数十十万次自自动化构建验证 e t s e T o rH e m
5. 瀑布开发向敏敏捷开发转型(2009~2010) e m 传统开发的问题: o rH • 流程上:使用用分支支开发分支支发布,曾大大规模运行行行5年年。代码Merge灾难,严重影响生生产力力力。 • 技术上:手手工工测试为主,效率很低 • ⻆角色色协同:上下游强依赖,无无法并行行行工工作 e t s e T 敏敏捷开发实践: • • • • • 增量量迭代 每日日站会 结对编程 测试自自动化 持续集成 e t s e T o rH e m e t s e T o rH e m
6. 百度用用三年年时间证明持续集成的价值(2011~2014) e 阶段一一:举步维艰 m o • 额外的自自动化建设成本 H r e t • 额外的团队学习成本 s e T • 额外的资源成本 阶段二二:初显成效 • • • value e t s e T Merge代码的成本有效降低 随着代码提交越频繁,自自动化测试收益越显著 产品的质量量得到很好的提升,发布更更加有信心心 o rH e m time 阶段三:持续优化 • 通过测试前置,将bug修复成本降到最低 • Everything is code让自自动化变得更更加简单 • 通过分层分级构建,将质量量和效率做到极致 e t s e T o rH e m
7. 通过分层和分级构建策略略将质量量和效率做到极致 e m 本地构建(<10 分钟) 模块测试 联调D请求 子子服务测试 编码器器1 模块A 联调E请求 编码器器2 联调E 系统级测试 中间件NB 中间件NB 模块B 模块C 中间件NB 中间件NB e t s e T 中间件NB o rH 录制 产品集成 e m 请 求 存 储 单元测试 准生生产环境 中间件NB 被测模块C 回放 回 放 存 储 e t s e T o rH 发布流水水线 (<2小小时) 开发流水水线 (<30分钟) 中间件NB 模块D 联调D e t s 通过自自动化环境部署和测试中间件做到按需系统解耦和资源复用用 Te 模块E 模块F o rH e m
8. 持续集成规模化之后带来新的问题(2015~2016) o rH e m 业务上 • 市场竞争越来越激烈烈,对迭代要求越来越高高 • 业务类型不不同,技术栈不不同,对于持续集成的要求也不不同。 • 模块越来越多,如何衡量量团队之间做的好坏。 e t s e T o rH e m 技术上: • 随着构建量量的增加,自自动化构建的成功率和效率都在下降 • 工工具建设不不统一一,基础设施不不稳定,增加了了自自动化维护的成本。 • 资源越来越紧缺,而而现有资源管理理混乱,利利用用率很低。 e t s e T 流程上 • CI/CD环节脱节,使得产品交付周期不不可控 • 没有统一一规范,各业务线太多定制化流程和工工具,跨产品线难以复用用 e t s e T o rH e m
9. 百度企业级DevOps解决方方案的总体思路路(2017~2018) e t s e T o rH e m 标准(工工程能力力力地图):定义+度量量 流程(Agile):全流程自自动化+配置化 需求 开发 测试 平台插件生生态 e t s e T 发布&上线 o rH e m DevOps工工具链(集团级平台):组件化+分布式 研发 数据 仓库 AIDev AITest AIOps 基础设施:入入池+上云+镜像管理理 PaaS • • 计算 存储 e t s e T o rH e m 短期目目标:通过中台建设思路路,将各类产品研发流程的最佳实践沉淀成可重用用的能力力力,助力力力公司全业务快速打造持续交付能力力力。 ⻓长期目目标:为后面面基于研发现场大大数据的智能研发,提供完备的研发数据能力力力。
10. 百度DevOps工工程能力力力标准建设 e m 产品覆盖: • Server类产品 • App/SDK类产品 • Web类产品 (建设中) • AI类产品(建设中) 流程规范 • 覆盖需求/开发/测试/发布&上线全 交付周期 • 标准流程模板 • 标准工工具链推荐 度量量维度 • 流程完备度 • 工工程实践成熟度 • 业务效果指标 e t s e T o rH e t s e T o rH e m e t s e T APP类产品工工程能力力力标准示例例 o rH e m
11. 百度DevOps平台化建设 o rH 入入口口 e t s e T 研发流 程 e m 流水水线系统 需求 代码准入入 开发工工具 平台 项目目和需求 管理理 编译打包 工工具 工工具 组件 代码扫 描工工具 代码管理理 集群编译 mvn pip gradle gcc composer xcode coverity findbugs cppcheck infer 代码管理理 工工具 单测覆盖率 gtest jacoco 工工具 代码覆 盖率 GIT phpunit cobertura 性能测试 Diff测试 压力力力测试 diff测试 稳定性测试 用用例例设计 接口口测试 功能测试 冒烟测试 回归测试 e t s e T 代码扫描 IDE 发布&上线 主干干测试 代码规范检查 静态扫描 动态扫描 规则定制 代码安全扫描 本地编译 集群编译 单测覆盖率 源码管理理 开发框架 需求关联 公司外部 度量量系统 开发 产品管理理 需求管理理 项目目管理理 公司内部 devops内部 o rH 功能测试 平台 自自动化 框架 AI 基础库 e m 分级发布 灰度验证 部署测试 线上压测 监控&定位 UI测试 Monkey测试 兼容性测试 性能测试 安全性测试 移动测试 平台 前端测试 平台 RF itest uiautomator XTS Appium selenium 文文本处理理 图像处理理 视频处理理 站点分析 用用户画像 死链检测 灰度发布平台 变更更管理理平台 包管理理平台 监控 平台 资源执行行行调度层 基础设 资源 施 matrix 移动 设备管理理 docker 计算 spark hadoop dstream 用用户反馈 客户反馈 产品评测 竞品分析 内容检测 运维工工具 测试工工具 系统测试 平台 反馈&评测 存储 XDB 反馈 平台 e t s e T redis AFS o rH e m
12. 百度DevOps大大数据建设 o rH e t s e • T 产品累计1000+ • • • • e m 项目目累计10000+ 产品库200T+ 每日日CI构建 10W+ 每周检出20W+问题 通过大大数据可挖掘出巨大大的价值潜能 需求 & 计划 代码 部署 统计 & 测试 监控 清洗 logs 实时 kafka messaging e t s e T 批量量 script o rH e m 健康度 数据 模型 可视化 训练 样本 特征 提取 提取 样本 API 源码 计算 操作 Kafka & Spark 样本库 基于 event & channel HDFS 数据 & HIVE 安全 data ware house e t s e T o rH e m
13. why智能化?---自自动化测试从量量变到质变 e m • 自自动化测试的覆盖度和效率之间很难权衡 o H r e t s • e 通过简单拆分构建,分布式执行行行已经很难再进一一步提升效率 T e m • 对于Web/App前端测试,依然存在大大量量手手工工测试 o H r e t s e • 随着环境依赖更更复杂,影响测试稳定性的因素增多,测试的结果变得越来 T 越不不置信 e t s e T o rH e m
14. AI赋能自自动化测试的探索之旅 测试输入入 o rH e t 智能流量量筛选 s e T e m 测试执行行行 结果判断 分析定位 智能测试调度 智能UI检测 智能性能分析 历史数据 线上全流量量 50% 资源需求量量 流量量录制 49% 效果损失 <5% 流量量初筛 48% 流量量精选 47% 资源集⻬齐率 输入入减少 90% 排队时⻓长 e t s e T 最大大并发度 o rH e m CPU需求量量 MEM需求量量 Priority-Q Preload-Q 在线任务 排序调度 离线数据 分发调度 e t s e T o rH e m
15. 未来持续集成技术展望 e t s e T o rH e m 容器器化 e t s e T 开源化 服务化 o rH e m 智能化 e t s e T o rH e m
16.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.139.0. UTC+08:00, 2024-12-24 20:36
浙ICP备14020137号-1 $Map of visitor$