09:50 10:40 董璐 京东数科DevOps落地攻略

2020-03-01 460浏览

  • 1.
  • 2.京东数科DevOps落地攻略 董璐 京东数科DevOps专家 持续集成平台研发负责人
  • 3.目录 1 研发Team的历史形态 2 推进DevOps的目的 3 演变落地的过程 4 未来的规划和展望
  • 4.研发Team的历史形态 Source GitLab J-ONE Jenkins Package SURE SVN
  • 5.研发Team的历史形态 代码托管分散 没有统一的代码托管服务 研发过程不持续 多环节没有打通,工具性太强 发布上线无管控 多途径自由上线,风险扩大 源码不可追溯 无平台支撑线上版本与源码的对 应关系维护
  • 6.研发Team的历史形态 PM QA Rational RequisitePro Borland CalibraRM QC BugFree Bugzilla
  • 7.研发Team的历史形态 需求讨论 设计实现 测试发布 运营反馈 产品Team 研发Team 研发Team 运营Team 研发Team 测试Team 测试Team 产品Team 测试Team 运维Team
  • 8.目录 1 研发Team的历史形态 2 推进DevOps的目的 3 演变落地的过程 4 未来的规划和展望
  • 9.推进DevOps的目的 “If the rate of change on the outside exceeds the rate of change on the inside, the end is near.” ― Jack Welch. “如果外界的变化率超过了内部的变化率,那末日 辅助决策 就不远了。” ― 杰克· 韦尔奇 数据采集 统一管控 提升效率 保证质量
  • 10.推进DevOps的目的 提升质量 DevOps ≠ Dev + Ops DevOps > PM + Dev + QA + Ops 10% ↓ 量化研发质量的改变 Per Time
  • 11.推进DevOps的目的 提升效率 减 降 减少沟通成本 落实文字,在线管理 降低研发风险 制定规则,验证、告警 加 升 增加质量把控 除QA外,增加单元测试、 代码扫描等 提升自动化水平 工具辅助,提升自动化水 平(构建、校验、扫描、 采集、统计等)
  • 12.推进DevOps的目的 统一管控 项目立项 统一项目立项入口,统筹安排资源 提测发布 需求审批 完善的提测、发布流程,一站式完成。 防止需求扩大,提高需求质量 代码权限 精细化权限管理,自助处理代码相关问题,如权限分配、 code review、锁定分支等。
  • 13.推进DevOps的目的 数据采集+辅助决策 基础数据采集 需求、任务、Bug、发布、集成等信息 工作量 产出效率 代码库动态 提交历史、发布历史、代码动态变化/实质变化 基础报表 构建过程产出 能效分析 构建过程规则检查结果、依赖树采集、依赖关系采集 研发过程信息 提测频率、发布频率、代码扫描结果、单元测试结果 安全保障 线上追踪 13
  • 14.目录 1 研发Team的历史形态 2 推进DevOps的目的 3 演变落地的过程 4 未来的规划和展望
  • 15.演变落地的过程 …… 下一个目标 一体化 把各个部件组合到一体,协作起来。 平台化 工具化 将工具组装到一起,变的更强大 让复杂又重复的工作变得简单
  • 16.演变落地的过程 提出产品需求 分配研发任务 运维监控 由产品人员或者运营人员提出 分配各个系统各司其职,为每 产品测试通过后,由运维同事 产品的业务需求。 个系统的每个研发人员分配研 将产品部署到生产环境,并通 由架构人员或者研发人员提出 发任务,进行功能研发. 过对生产环境的监控,保障生 系统的技术需求。 产环境正常运行。 组会确认需求 质量保证 由产品、运营、架构以及研发 由测试团队对已经开发完成的 和测试Team按需对需求进行确 功能进行测试,同时使用工具 认,保证提出需求的必要性、 多管齐下,保证项目质量. 可行性以及计划性. 研发过程分析
  • 17.演变落地的过程(工具化) 项目管理 需求分析 设计实现 构建部署 质量保证 项目管理 敏捷管理 代码托管 代码扫描 立项 Wiki GitLab Sonar 资源分配 Reqp Subversion GitLab SVN 构建打包 Readmine 发布上线 发布部署 Jenkins 发布部署 File Server 系统监控 Jenkins
  • 18.演变落地的过程 SVN 构建 SVN API Jenkins Build Script File Server LDAP Repository Apache Hook 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.未来的规划和展望 采集服务链路信息 1. 部署单一服务; 2. 部署部分服务; 3. 部署完整服务; OK!
  • 26.未来的规划和展望 发布部署 环境管理 发布调度 DNS Docker 环境监控 Route Chain 链路采集 Java ASM Spring Cloud Sleuth + Zipkin 辅助采集 JCI 应用依赖 etcd 调度中心 Kubelet + Flannel 独立环境 监控 cAdvisor 测试环境 压测环境 联调环境
  • 27.