您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2023 DOIS DevOps 国际峰会 · 北京站暨 BizDevOps 企业峰会]:顾铮-京东 DevOps 流水线测试场景实践与避坑指南 - 发现报告
当前位置:首页/行业研究/报告详情/

顾铮-京东 DevOps 流水线测试场景实践与避坑指南

顾铮-京东 DevOps 流水线测试场景实践与避坑指南

京东DevOps云原生流水线与测试实践 顾铮京东零售-研发效能架构师 十余年研发效能,测试开发经验,主导过多个领域的平台工具从0到1建设。擅长CI/CD,云原生技术,质量自动化体系,开发提效等 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Content 目录 云原生流水线建设 01 价值分析,经验总结,架构设计,能力建设 02 测试场景实践 经典案例介绍 03关键指标收益 指标总结 04未来规划 01 云原生流水线建设 行业发展趋势 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 发展历程 2011~2012年 Jenkins(Hudson) 2015年 CNCF成立 2021年 Serverless百花齐放 2005年 Hudson出现 CircleCI,TravisCI, 2013年 GoogleK8s GitlabCI涌现 Pivotal提出云原生概念 2018~2019 流水线云原生化(GithubAction,ArgoCDv1.0 2022年~ 云原生+用户自服务=平台工程 V1:图形化编排配置 V2:PipelineasCode V3:云原生化改造 理 论 • • • 基于容器镜像的不可变基础设施,更快速更标准 流水线云原生化模式多样,与Docker,k8s强相关 云原生开发语言Golang 云原生系统 可弹性,可管理,自动化,容器,可观测 容器 微服务 服务网格 声明式API 不可变基础设施 流水线平台 [手动,定时,Webhook,级联] SharedLibrary 代码 测试通知 构建 部署 自定义 质量 安全 其他 Workflow引擎 开放原子插件 调度执行插件化 资源池 痛点问题 队列时间 加载时间 原子能力扩展 环境配置 预置机器资源 工作流模型 业务场景支持遇到瓶颈:如人工审核,构建镜像等操作,流水线模型能力需提升 机器资源预置:无法动态处理流量高峰 Jenkins硬伤:队列时间,加载SharedLib,序列化,环境配置 云原生价值 降低成本提高效率提升体验 采用云原生方法,利用动态调度,弹性伸缩等技术优化资源利用率 借助云原生能力,自动化工具等提高工作流各个步骤的执行效率 部署策略 云原生技术的价值 传统模式 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 云原生交付流程 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 项目/需求研发阶段测试阶段发布阶段 代码编写单元测试 Code Review 测试环境测试计划测试执行 分支合并环境部署 云原生流水线 接入模式 初始化 CLI,IDEPlugin,OpenAPI… 构建制品 环境部署 测试执行发布上线 UI测试接口测试 性能测试 构建制品 用户配置 部署环境 云原生研发模式 测试 测试代码库 test •镜像仓库 拉取镜像 初始化配置 创建 模版创建 语言识别 单元测试 编译打包 构建镜像 代码扫描 K8s配置 研发流程 应用部署 K8s部署 业务抽象配置 部署策略 质量卡点 分组配置 回归测试 成功经验 坚定的信念,思维模式 态度决定一切,有担当,有追求 设计思想是关键 做好架构设计,明确边界 从竞品调研,到能力分析,到架构设计,到场景落地 与项目内的上下游服务的数据边界,能力边界等 量化指标驱动 在能力建设过程中,找准可长期观测的关键指标 持续运营 找准技术升级对用户的体验提升点 对用户业务场景的支撑价值 云原生化改造的成功经验 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 云原生架构设计(NewWorkflow()) 调度速度 亲和性Node调度策略 任务等待 创建Pod Node调度 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Go,JavaScript,SJavaScripthell,pythonShell ✅多语言SDK✅ ✅✅ ✅✅ Groovy ✅ ❌ ❌ GithubActions 云原生插件 传统模式 云原生插件 环境创建 架构设计用户触发 APIServer 度服务 调度策略任务队列多云多集群负载均衡资源管理服务发现 任务派发 运行时云原生制品&数据插件生态 流程控制K8s控制制品管理Go 上下文管理容器操作日志管理Java依赖编排凭证管理输入数据NodeJS生命周期镜像管理输出数据Shell 事件总线事件监听参数解析自定义环境 基础能力中间件 权限管理服务注册MySQL日志ETCDJSS 云环境 执行引擎 - 分布式 基础设施 编译构建加速 关键技术 云缓存 zstd压缩 工程依赖 镜像未命中缓存Push 命中缓存 任务执行 开发语言 SDK支持 支持自定义镜像本地调试 CFS Pull/Push 核心能力一:流水线模型升级 传统模式 Pipeline Atom [Pipeline,[Job],Atom] 升级 云原生模式 Pipeline Stage Atom [Pipeline,Stage,[Job],Atom] 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 目标原子是流水线的最小单元 共建开发通用能力 开发体验(脚手架,SDK,开源) 方案设计关键词:多语言,动态加载,独立维护 传统 云原生 开发流程 环境配置 模版库 开发 调试 通用 官方提供 Groovy 平台线上 通用/自定义镜像 官方提供 多语言 本地调试 统一发布流程 发布上线 原子市场 核心能力三:云原生插件开发模式 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 核心能力四:编译构建加速 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 编译构建加速 关键技术:CFS,Zstd压缩 工程依赖 CFS 未命中缓存 Push 命中缓存 Pull/Push 方案 能力 通过实现云原生流水线的缓存技术,实现缓存复用 1.主流开发语言的编译构建 (Java,NodeJS,Golang,GCC) Restore 编译 Save 2.自定义镜像的编译缓存 Restore 编译 Save 编译原子 无缓存构建时长 有缓存构建时长 提升率 缓存命中占比 maven 1026.55s 617.45s 39.85% 97.61% NodeJS 165.55s 137.95s 16.67% 92.69% Golang 64.6s 28.73s 55.53% 89.13% 传统模式:缓存随机,本地依赖有干扰 云原生模式:缓存复用,依赖独立,高命中 02 测试场景实践 痛点,能力,场景支撑 工具链脱节 认知负载升高 应用交付过程中的工具链脱节 •微服务,容器技术变革带来的挑战 •测试人员需掌握更多开发,运维知识 痛点问题 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 持续交付 自动化程度参差不齐 自动化程度不够,开发自助难如何快速高质量交付被测需求 研创建开发分支 发交 付创建开发分支 代码本地开发代码本地开发 代码集成代码评审提测合并主分支上线审批部署集群 测试 平冒烟测试 台 测试计划 测试通过 功能测试研发缺陷测试报告 本地最佳实践 DevOps 静态规则检查 流 安全白盒扫描 代码静态扫描 接编码规约门禁达标 测 量 质单元测试 安全白盒扫描 安全编码规约门禁达标 自动化测试 精准测试 出代码覆盖率门禁 测 质常态压测 量性能回退门禁 水单元测试 线 门单测覆盖率门禁达标 禁 自动化测试门禁达标 门禁 离线Diff 典型测试场景 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 部署测试环境流量回放门禁 测试维度与测试场景 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 接口测试(API) 功能测试(UI) 提测准入 单元测试(UT) 研发自测 流水线CICD Java GCC NodeJS Golang …… iOS 测试维度&能力场景 编译构建代码扫描单测覆盖率 Webhook 代码提交触发自动构建 HTTP(s) JSF gRPC …… 受理/驳回 测试环境部署 提测卡片 测试管理 报告数据 自动化测试 设置提测门禁(研发自测率阈值),开启准入流水线 WebUI AppUI 稳定性 兼容性 回归测试 编译 UI自动化 稳定性测试 兼容性测试 质量门禁通知 测试计划 测试管理 流水线模版-测试实践 测试环境准备 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 准入流水线 接口测试覆盖率 03 关键指标收益 36.1%流水线执行效率 从去年的1122s缩短到717s,速度环比增长36.1% 包括:编译效率,单测效率, 扫描效率等 96%任务有效构建时长占比 从传统模式的86%提升到96% 100%任务构建量 月构建量100W次+。 原子开源共建占比 40% •共167项,新增原子能力67 项,开源共建占比40% 关键指标收益 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 04 未来规划 未来规划-事件驱动模式 流水线Workflow 用户的工作流 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Devops应用的工作流 云原生事件驱动 为业务层应用定制自动化工作流(解决应用间的串联打通问题,降低应用对接复杂度) 管理从简单、线性、实时到复杂、多源事件的任何流程(减少应用重复建设) 遵循云原生事件标准——CloudEvents(描述事件数据的通 用格式规范) 支持触发N+事件源,可保持场景的扩展性 未来规划-平台工程 统一领域专家跨团队 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Thanks DevOps时代社区荣誉出品

你可能感兴趣

hot

顾炯宸-京东春晚活动专题:DevOps 左移测试工程实践

建筑建材
2024 第22届 GOPS 全球运维大会暨 XOps 技术创新峰会 · 深圳站2024-05-13
hot

顾铮-从 DevOps 到平台工程,让工具更好的为业务服务

信息技术
2024 第23届 GOPS 全球运维大会暨 XOps 技术创新峰会 · 北京站2024-07-17
hot

韩威-京东 DevOps 平台测试域能力与平台建设实战

信息技术
2023 DOIS DevOps 国际峰会 · 北京站暨 BizDevOps 企业峰会2023-10-08