网商银行持续集成平台建设实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 网商银行持续集成平台 建设实践 谢凯
2. 讲师简介 有多年的数据库、电商、金融等领域的质量保障工作 经验,目前主要在网商银行负责持续集成平台的开发 以及银行业务的质量保障工作。 谢凯 网商银行技术专家 ee.msup.com.cn
3. 目录 1. 风险及应对 – 为什么做? 2. 持续集成方案 – 做的是什么? 3. 持续集成平台的解法及实施 – 怎么做的? 4. 效果与收益 5. 未来展望 ee.msup.com.cn
4. 风险 质量 质量目标 1. 线下漏测问题 0资损 0P1P2故障 2.FY20S1资损故障大部分可以通过灰度zone发现或减小影响 范围 关键词:有防线、没执行、执行有遗漏 效能 1.网商银行的交付周期离蚂蚁集团平均交付周期有较大差距 1.1.Master分支离随时可发布还有距离  高频回归能力待提升 1.2.自动化抓手欠缺  自动化有效性低,需度量改进  需对现有自动化工具聚合收口 ee.msup.com.cn 效能目标 蚂蚁集团 平均交付周期
5. 风险如何防控 根因 分析过程 CI目标 全链路自动化、接口 流量回放、代码门禁 接入CI流程强管控 全链路、接口能防 住线下问题漏测 确保测试工具执行无遗漏 分级灰度能发现线 上故障 CI流程中强制进行分 级灰度 成功率度量 覆盖率度量 有效性度量 自动化工具 有效 Master分支高 频回归能力 运行时长度量 推导过程 ee.msup.com.cn Master分支随 时可发布 缩短迭代的 平均交付周期
6. 目录 1. 风险及应对 – 为什么做? 2. 持续集成方案 – 做的是什么? 3. 持续集成平台的解法及实施 – 怎么做的? 4. 效果与收益 5. 未来展望 ee.msup.com.cn
7. 持续集成应该怎么做? 持续集成的优秀实践 1.提交前先在本地运行所有的提交测试,或者让持续集成服务器完成此事 2.等提交测试通过后再继续工作 3.回家之前,构建必须处于成功状态; 4.时刻准备回滚到前一个版本,并且在回滚之前要规定一个修复时间 5.不要将失败的测试注释掉 6.为自己导致的问题负责 7.向构建中添加已有的自动化验证集合,通过之后对软件质量有比较大的信心 8.选择利于持续集成的分支策略 9.测试驱动开发 10.持续优化 • 编译打包时间 • 自动化测试用例的分层分级 • 测试验证环境的准备 • 优化编码规范扫描 • 生成数据报告 团队共识 持续集成不是一种工具,而是一种实践。它需要开发团队能够给予一定的投 入并遵守一定的规则,需要每个人以小步增量的方式频繁地将修改后的代码提交 到主干上,并一致认同“修复破坏应用程序的任意修改是最高优先级的任务” ee.msup.com.cn
8. 我们的方案 拉通流程 ee.msup.com.cn 聚合能 力  整合pipeline  链接工具、平台  高频执行  CI治理
9. 目录 1. 风险及应对 – 为什么做? 2. 持续集成方案 – 做的是什么? 3. 持续集成平台的解法及实施 – 怎么做的? 4. 效果与收益 5. 未来展望 ee.msup.com.cn
10. 持续集成平台演进的2个阶段 平台能力拓展阶段 2020.3-至今  能力体系化建设  智能化探索 平台搭建阶段 2019.8-2020.3  平台框架搭建,由0->1  基础能力建设 ee.msup.com.cn
11. 我们目前具备的基础设施 研发基础平台 ee.msup.com.cn • • • • • • • 构建系统 测试环境 配置管理 发布系统 研发流水线 代码管理 监控管理 测试平台 • 全链路自动化平台 • 流量回放平台 • 灰度平台
12. 分支管理策略 – 分支开发主干发布 master 拉取迭 代分支 合并迭代分 支到主干 迭代分支 拉取feature 开发分支 feature分支merge 到迭代分支 Feature分支 Pull feature分支 到本地 本地分支 ee.msup.com.cn 本地修改push到 feature分支
13. 持续集成流程建设 dev 需求 sit 预发 阶段推进卡点 阶段推进卡点 分支pipeline 高频执行 全链路阶段 推进卡点 流量回放阶 段推进卡点 发布 灰度 主干 pipeline 低频执行 全链路阶段 推进卡点 流量回放阶 段推进卡点 灰度 卡点 灰度 已完成 执行1次 不可跳过 阶段推进自动触发 可跳过 多级灰度 主干分支 本地分支 Mr触发 安全扫描 冲突检测 代码 合并 代码评审 集成测试 (关注全量) 部署 静态代码扫描 代码门禁 Mr触发 冲突检测 代码门禁 ee.msup.com.cn 集成测试 代码合入卡点 迭代分支 本地分支 安全扫描 代码评审 代码 合并 静态代码扫描 集成测试 全链路自动化测试 (关注全量) 接口流量回放测试 (关注全量) 代码合入卡点 部署 集成测试 (关注全量) 全链路自动化测试 (关注变更) 接口流量回放测试 (关注全量)
14. 度量指标建设 分类 成功率 时长 时间 ee.msup.com.cn 指标 目标 单测100%成功率 95% 全链路自动化 测试冒烟成功率 95% 全链路自动化 新增成功率 95% 单测 10分钟 全链路自动化 测试冒烟 10分钟 全链路自动化 测试新增 10分钟 Dev总时长 30分钟 SIT总时长 30分钟 dev修复时间 2小时 Sit修复时间 30分钟 正常状态占比 70% 说明 这个时间是开发提交之后强等待时间 统计主干和开发分支的非故障状态的总时长占全部时长 的占比,主要表现了主干或分支的总健康状态
15. 测试组件设计方式 前置数据处理 触发组件运行 组件运行逻辑 测试组件 的2个动作 消息订阅 查询运行结果 定时任务 测试组件运 行逻辑模版化 ee.msup.com.cn
16. 配置能力 • • 覆盖率、成功率配置 阶段推进卡点配置 ee.msup.com.cn 组件的 配置能力 Pipeline的 编排能力 • 针对组件的运行顺序 可以随意组合
17. 反馈能力 Pipeline运行结果 测试组件运行结果 ee.msup.com.cn
18. 持续集成平台建设 - CI平台架构1.0 通知能力 CI控制 平台 配置能力 度量能力 Pipeline结 果通知 组件接入配 置 卡点阈值配 置 组件度量数据 迭代周期数据 度量数据日 /周/月报 业务域系统 配置 组件个性化 设置 Pipeline 度量数据 卡点度量数据 CI状态管理能力 组件的执 行状态 pipeline的 执行状态 全链路自 动化组件 流量回 放组件 组件收口能力 分支的最新 状态 第三方组件接入 平台依赖 暴雪平台 全链路平台 灰度平台 ee.msup.com.cn 依赖层 linke 组件能力 代码门 禁组件 灰度组件
19. CI治理过程中遇到的一些问题 全链路、接口、灰 度引流卡点还不够 全面 对齐网商质量保障体系 Pipeline运行时长、代 码合入之后的组件运行 失败了研发关注度不高 重点关注2类卡点指标 接入的测试组件、卡 点太多,不同业务诉 求不一样,该采取何 种质量策略? ee.msup.com.cn 质量决策
20. 网商银行的质量保障体系 系统稳定 业务连续 资金安全 + 严控流程 + 夯实防线 需求 系分 测分 项目排期优化 系分模版 测分模版 代码门禁 需求准入条件 系分评审确认 测分评审确认 排期会 头狼会 新应用审批 项目分级 SIT测试 预发测试 发布 代码免疫 全链路自动 化 流量回放自动 化 多级灰度 核对 (降噪、智人) 资损/高可用 演练 联调用例 冒烟 代码覆盖 率 用例有效性 分析 Pd预发验证 发布计划模 版 CDO 监控报警 接口用例 提测标准 功能测试验 证 缺陷记录 三板斧 线上问题管理 跟踪 应急熔断 CR Show- case 用例记录 测试工具 发布确认 限流 业务预案 压测 日常值班 研发 场景识别 (飞轮) 前后端融合测 分 持 持续集成平台 代码注入攻防 业务大图 业务分享 系统分享 日报周报 线上问题 复盘 注入攻防 ee.msup.com.cn 效能提升 全链路自动化 Doom流量回 放 续 集 成 线上 深海环境保障 灰度平台 tm/th/t1核对 飞轮业务识别 项目复盘 新人培训 文档维护 团队共创 应急手册 缺陷报告 质量报告 CR/监控/核 对红黑榜 团队建设 技术奖项
21. 卡点度量大盘 ee.msup.com.cn
22. 质量决策 针对迭代的 质量风险 • • 能力模型 风险模型 风险类型 风险模型区分高、中、低风险 • 高风险阶段推进会拦截、中风险会警告但不 会拦截 • 针对不同的系统可以进行通用和定制化配置 • 支持加签设置并且记录加签原因 智能推荐 • ee.msup.com.cn 根据代码、配置变更推荐自动化测试项
23. 持续集成平台建设 - CI平台架构2.0 质量 决策 通知能力 平台依赖 全链路编排 平台 接口流量回 放平台 CI控制 平台 灰度平台 慢sql检测 平台 智能精准攻 防平台 新增功能 ee.msup.com.cn 依赖层 linke 已完成 能力视图 智能推荐 度量能力 配置能力 报告能力 Pipeline结 果通知 组件接 入配置 卡点阈 值配置 组件度量数据 迭代周期数据 迭代 测试报告 度量数据日/ 周/月报 业务域系统 配置 组件个性 化设置 Pipeline 度量数据 卡点度量数据 提测报告 组件的执 行状态 异常日志检 测平台 风险视图 质量准出能力 全链路自动 化测试组件 异常日志 检测组件 CI状态管理能力 Pipeline 的执行状态 分支的最 新状态 流量回 放组件 代码门 禁组件 智能精准攻防组件 组件收口能力 第三方组件接入 组件能力 精准联动组件 静态代码扫描 充分校验组件 灰度组件 慢sql 预检组件 端到端测 试组件
24. 目录 1. 风险及应对 – 为什么做? 2. 持续集成方案 – 做的是什么? 3. 持续集成平台的解法及实施 – 怎么做的? 4. 效果与收益 5. 未来展望 ee.msup.com.cn
25. 运营数据 9 网商银行、消费信贷、保险、大安全、支付宝、CTO线、智能科技、财富、 境外银行 3430 接入的迭代数 33779 Merge request 次数 ee.msup.com.cn
26. 效果数据 质量 上个财年0资损,0p1p2故障 代码门禁卡点有效拦截2495次没达标代码合并,阶段推进卡点有效拦截111次 效能 交付周期缩短40% ee.msup.com.cn
27. 目录 1. 风险及应对 – 为什么做? 2. 持续集成方案 – 做的是什么? 3. 持续集成平台的解法及实施 – 怎么做的? 4. 效果与收益 5. 未来展望 ee.msup.com.cn
28. 未来展望 主干开发 在治理好自动化测试的基础上,不断完善代码 门禁的内容,最终满足提交的代码基本能达到 发布的标准 精准测试 进一步提升精准测试的效果 智能决策 智能决策出需要执行哪些测试组件 ee.msup.com.cn
29. 关注msup公众号 获取更多工程效能实践案例

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 02:58
浙ICP备14020137号-1 $Map of visitor$