董璐_京东数科DevOps落地攻略

详细介绍了京东数科在研发时的整个过程,从研发团队到推进落地以及未来规划,每一步都清晰可见,切实讲述在演变过程中的架构讨论与功能落地的过程
展开查看详情

1. E T B .N P U IT

2. E T .N 京东数科DevOps落地攻略 B P U IT 董璐 京东数科DevOps专家 持续集成平台研发负责人

3. 目录 1 E T 研发Team的历史形态 2 B .N 推进DevOps的目的 P U3 演变落地的过程 IT 4 未来的规划和展望

4.研发Team的历史形态 T Source E GitLab .N J-ONE U Jenkins B SVN ITP Package SURE

5.研发Team的历史形态 代码托管分散 E T发布上线无管控 .N 没有统一的代码托管服务 多途径自由上线,风险扩大 UB 研发过程不持续 IT 多环节没有打通,工具性太强 P 源码不可追溯 无平台支撑线上版本与源码的对 应关系维护

6.研发Team的历史形态 E T B .N P U IT PM QA Rational RequisitePro QC Bugzilla Borland CalibraRM BugFree

7.研发Team的历史形态 E T B .N U 需求讨论 设计实现 测试发布 运营反馈 IT P 产品Team 研发Team 研发Team 运营Team 研发Team 测试Team 测试Team 产品Team 测试Team 运维Team

8. 目录 1 E T 研发Team的历史形态 2 B .N 推进DevOps的目的 P U3 演变落地的过程 IT 4 未来的规划和展望

9.推进DevOps的目的 T “If the rate of change on the outside exceeds the E rate of change on the inside, the end is near.” ― N Jack Welch. “如果外界的变化率超过了内部的变化率,那末日 B . U 辅助决策 就不远了。” ― 杰克· 韦尔奇 P 数据采集 IT 统一管控 提升效率 保证质量

10. 推进DevOps的目的 提升质量 T DevOps ≠ Dev + Ops E DevOps > PM + Dev + QA + Ops B .N 10% ↓ U Per Time 量化研发质量的改变 IT P

11.推进DevOps的目的 提升效率 E T N 减少沟通成本 增加质量把控 . 减 落实文字,在线管理 加 除QA外,增加单元测试、 B 代码扫描等 P U IT 降低研发风险 提升自动化水平 降 制定规则,验证、告警 升 工具辅助,提升自动化水 平(构建、校验、扫描、 采集、统计等)

12.推进DevOps的目的 统一管控 T 项目立项 E 统一项目立项入口,统筹安排资源 提测发布 B .N需求审批 U 完善的提测、发布流程,一站式完成。 防止需求扩大,提高需求质量 IT 代码权限 P 精细化权限管理,自助处理代码相关问题,如权限分配、 code review、锁定分支等。

13.推进DevOps的目的 数据采集+辅助决策 T 基础数据采集 E 需求、任务、Bug、发布、集成等信息 N 工作量 产出效率 . 代码库动态 B 提交历史、发布历史、代码动态变化/实质变化 基础报表 P U 构建过程产出 能效分析 IT 构建过程规则检查结果、依赖树采集、依赖关系采集 研发过程信息 提测频率、发布频率、代码扫描结果、单元测试结果 安全保障 线上追踪 13

14. 目录 1 E T 研发Team的历史形态 2 B .N 推进DevOps的目的 P U3 演变落地的过程 IT 4 未来的规划和展望

15.演变落地的过程 E T .N …… B 下一个目标 U 一体化 P 把各个部件组合到一体,协作起来。 IT 平台化 将工具组装到一起,变的更强大 工具化 让复杂又重复的工作变得简单

16.演变落地的过程 T 提出产品需求 分配研发任务 运维监控 E 由产品人员或者运营人员提出 分配各个系统各司其职,为每 产品测试通过后,由运维同事 产品的业务需求。 个系统的每个研发人员分配研 将产品部署到生产环境,并通 N 由架构人员或者研发人员提出 发任务,进行功能研发. 过对生产环境的监控,保障生 . 系统的技术需求。 产环境正常运行。 组会确认需求 U B 质量保证 P 由产品、运营、架构以及研发 由测试团队对已经开发完成的 IT 和测试Team按需对需求进行确 功能进行测试,同时使用工具 认,保证提出需求的必要性、 多管齐下,保证项目质量. 可行性以及计划性. 研发过程分析

17.演变落地的过程(工具化) 项目管理 需求分析 设计实现 构建部署 质量保证 发布上线 项目管理 敏捷管理 代码托管 代码扫描 立项 Wiki GitLab Sonar Reqp 构建打包 Readmine 发布部署 资源分配 Subversion Jenkins 发布部署 File Server 系统监控 GitLab SVN Jenkins

18.演变落地的过程 构建 Jenkins SVN SVN API Build Script Hook Apache File Server Repository LDAP GitLab GitLab API 发布部署 项目立项 Hook SSH 资源管理 发布部署 Gitlab 系统监控 日志采集

19.演变落地的过程(平台化) 项目管理 需求分析 设计实现 构建部署 质量保证 发布上线 项目管理 敏捷管理 SURE 质量保证 项目管理 迭代研发 提请测试 Online 需求池 代码托管 Bug管理 发布部署 需求派发 分支策略 构建部署 发布平台 代码扫描 Jenkins 任务看板 Sync 数据采集

20. 演变落地的过程(一体化) 人员 投入 分配 需求 人效分析 立项 规划 分析 项目管理 需求分析 设计实现 构建部署 质量保证 发布上线 派生 代码扫描 测试 反馈 任务 Bug 代码

21.演变落地的过程(工具化) 一体化 将研发过程的各个环节连接起来,使过程产生 价值。 工具化 统一研发模式,提升研发效率。 03 04 01 02 规划? 平台化 进一步规范研发习惯,使过程更流畅,开始注 重细节的质量。

22.目录 1 研发Team的历史形态 2 推进DevOps的目的 3 演变落地的过程 4 未来的规划和展望

23.未来的规划和展望 一体化 生态化 环环相扣, 内聚力量, 密切合作。 外联资源, 多点赋能。 关键词

24.未来的规划和展望 针对微服务引入的的问题 1. 部署一套完整的环境需要付出更 多的努力; 2. 测试单个微服务的成本增加; 3. 依据链路巡查错误的难度提升;

25.未来的规划和展望 采集服务链路信息 OK! 1. 部署单一服务; 2. 部署部分服务; 3. 部署完整服务;

26.未来的规划和展望 链路采集 Java ASM 发布部署 环境管理 Route Chain Docker Spring Cloud Sleuth + Zipkin 发布调度 环境监控 辅助采集 JCI 应用依赖 DNS etcd 调度中心 Kubelet + Flannel 独立环境 压测环境 测试环境 联调环境 监控 cAdvisor

27.