百度实施持续集成之 “工具战争”-Qcon2011

799 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
799
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
31
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

百度实施持续集成之 “工具战争”-Qcon2011

  1. 1. 百度实施持续集成之 “工具战争” 路宁 www.luning.name luning.tw@gmail.com11年4月6日星期三
  2. 2. 关于我 • 百度项目管理部工程师 • 曾任ThoughtWorks咨询师 • 热衷于敏捷和精益11年4月6日星期三
  3. 3. 一点背景11年4月6日星期三
  4. 4. • C++的产品线,共100+人 • 项目小,且多 • 每个项目为涉及的模块分别拉分支 • 选择模块试点CI, 涉及多个项目,20+人11年4月6日星期三
  5. 5. P1 R1 P2 R2 P3 R311年4月6日星期三
  6. 6. P1 P3 P2 P4 R1 R211年4月6日星期三
  7. 7. 11年4月6日星期三
  8. 8. 11年4月6日星期三
  9. 9. 开始征程11年4月6日星期三
  10. 10. 上线部署平台 测试平台 项目管理平台 编译平台 持续集成平台11年4月6日星期三
  11. 11. 持续集成平台上的构建无法 在本地运行 ?11年4月6日星期三
  12. 12. 11年4月6日星期三
  13. 13. 11年4月6日星期三
  14. 14. 11年4月6日星期三
  15. 15. 11年4月6日星期三
  16. 16. M1 M2 M3 M1 M2 DB M311年4月6日星期三
  17. 17. ant-1.8.2.jar DB11年4月6日星期三
  18. 18. 11年4月6日星期三
  19. 19. 多个项目的Dev在Trunk上做 本地编译遇到困难 ?11年4月6日星期三
  20. 20. 在项目管理平台中建项目,拉 分支,在编译平台上设置包编 译依赖后才能做本地编译11年4月6日星期三
  21. 21. 编译平台的特点 • 编译平台集中管理包编译依赖配置 • 包编译依赖基于项目(而非软件模块)配置11年4月6日星期三
  22. 22. 问题 • 对包编译依赖配置缺乏有效的版本管理 • 做本地做编译有重重约束 • 针对“项目”设置依赖配置让问题变复杂11年4月6日星期三
  23. 23. Repository junit-3.8.1.jar11年4月6日星期三
  24. 24. 用comake编译, 替代集中的编译 平台,并在本地管理编译依赖配置11年4月6日星期三
  25. 25. 项目“降级”为功能点,用wiki记 录,不用在项目管理平台上创建“繁 重”的项目11年4月6日星期三
  26. 26. 无法在本地任意运行所有测 试 ?11年4月6日星期三
  27. 27. 11年4月6日星期三
  28. 28. 11年4月6日星期三
  29. 29. 问题 • 要通过平台操作,还不能实现无需人工干预的自 动化 • 测试Case及数据通过基于Web的平台集中管理和 存储,与生产代码脱节11年4月6日星期三
  30. 30. 方案 • 开发和使用新测试平台,通过python脚本写测 试,能完全自动运行 • 测试平台源码、测试代码及数据与生产代码做 同源版本管理 • 测试环境标准化,每个人都可方便地在本地运 行所以测试11年4月6日星期三
  31. 31. 上线过程繁琐,依赖操作单, 怎么自动化? ?11年4月6日星期三
  32. 32. 11年4月6日星期三
  33. 33. 11年4月6日星期三
  34. 34. 问题 • 线上配置及数据重复存放,且缺乏版本管理 • Dev的准备工作和OP的人工动作较多11年4月6日星期三
  35. 35. 方案 • 配置,数据及部署脚本与源码做同 源版本管理 • 上线步骤全部脚本化,通过一条命 令运行 • 线上配置的修改与代码一样,需要 自动化测试保证质量 • 与Hudson集成,实现一键上线11年4月6日星期三
  36. 36. 工具演进的规律11年4月6日星期三
  37. 37. 通过人工流程建立秩序11年4月6日星期三
  38. 38. 利用办公自动化式的平台11年4月6日星期三
  39. 39. 自动持续执行11年4月6日星期三
  40. 40. 行业现状 办公自动化 DevOps • 打破部门局限,各角色密切 • 用统一平台管理流程和数据 合作下的创新方案 • 通过界面进行可视化操作 • 用靠谱的工具 • 局部操作的自动化 • 对一切做配置管理和自动化11年4月6日星期三
  41. 41. 行业现状 办公自动化 DevOps • 打破部门局限,各角色密切 • 用统一平台管理流程和数据 合作下的创新方案 • 通过界面进行可视化操作 • 用靠谱的工具 • 局部操作的自动化 • 对一切做配置管理和自动化11年4月6日星期三
  42. 42. 测试平台的演进也类似11年4月6日星期三
  43. 43. 个人维护和运行测试11年4月6日星期三
  44. 44. 平台统一管理和运行测试 DB11年4月6日星期三
  45. 45. 同源版本管理,通过脚本运行11年4月6日星期三
  46. 46. 反思11年4月6日星期三
  47. 47. 一定要换工具吗?11年4月6日星期三
  48. 48. 大而全的平台 可视化编辑 支持拖拽 自主研发,方便以后定制 包装一下,再起个响亮的名字11年4月6日星期三
  49. 49. 文本和命令行 优于 二进制和GUI 只做好一件事的开放工具 优于 大而全的集中平台 融入社区, 善用开源 优于 二次包装和自主开发 整体思考解决问题 优于 依赖工具解决问题11年4月6日星期三
  50. 50. 开拓视野,融入社区11年4月6日星期三
  51. 51. 路宁 luning.tw@gmail.com www.luning.com Q&A11年4月6日星期三

×