工银瑞信DevOps实践与思考 孙彦杰工银瑞信资深经理 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Content 目录 01DevOps实施背景 02DevOps建设实践 03DevOps实施亮点 04DevOps思考分享 01 DevOps实施背景 为什么要DevOps? DevOps实施背景 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 建设DevOps研发运营一体化平台 参照信通院研发运营一体化(DevOps)能力成熟度模型持续优化研发运营流程,对标工行总行通过持续交付三级认证,组建跨业务条线、业务与技术融合的共创团队,通过高频迭代、灵活投产持续提升业务快速响应能力。 构建基于业务架构的业务研发体系 结合业务架构成果和各业务领域规划内容,合理划分系统边界、明确牵头部门、系统定位和用户群体; 建立适应业务需求的项目管理体系 改革项目管理机制,聚焦需求、立项、采购、研发、测试和投产等关键环节,进一步梳理完善管理流程,提升项目实施效率; 02 DevOps建设实践 DevOps能干什么? DevOps建设实践–规划路线 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 决策制定 智能化 研发管理 透明化 需求上线 流程化 关键任务 自动化 目标方向 关键任务上利用自动化替代人工操作,局部实现效率提升 目标方向 实现需求到上线的端到端全链路打通,逐步提升需求迭代周期 目标方向 通过度量化数据,驱动团队形成持续的过程改进 目标方向 借助数据模型和AI,提升信息流的流转效率 关键举措 •工具链引入和建设:制品库管理、代码库、统一配置、jenkins等 •主要基于流水线实现自动化 关键举措 •交付链路上下游打通:打通需求、研发、测试、上线发布等环节 •梳理和解决流程中的堵点 关键举措 •度量体系建设:覆盖需求、开发、测试、生产等各阶段 •数据驱动闭环体系:通过数据分析问题,持续改进交付模式,持续提升研发效能 关键举措 •数据模型建立:数据规则沉淀总结,形成对应决策点的数据模型 •智能化推荐:根据数据模型生成决策建议,比动态质量门禁、项目时间预估等 2.先行试点 •寻找合适试点项目 •工具先行or文化先行? 1.确立路线 A B C •自顶向下+自底向上 •业界先进的信通院持续交付III级认证标准+业界顶级咨询公司 3.有序推广 •变与不变 •敏态与稳态 DevOps建设实践–实施路径 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 DevOps建设实践–能力架构 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 DevOps建设实践–自动化–流水线 流水线类型 分支 1.Feature提交流水线 feature 2.Feature->Dev预合并流水线 feature 3.开发环境流水线 dev 4.测试环境流水线 dev 5.验收环境流水线 dev|hotfix 6.生产部署流水线 dev|hotfix 7.生产回滚流水线 (复用生产部署流水线) dev|hotfix 8.hotfix提交流水线 hotfix 9.Dev->Master流水线 dev*|hotfix* 10.合入master触发其他分支流水线 dev|hotfix 触发方式 代码提交到feature自feature发起合并Dev时动触发自动触发 代码检出/sql代码扫 feature合并Dev完成后触发 代码检出/sql代码扫描 手动触发 手动触发 手动触发 手动触发 hotfix提交代码后自动触发 代码检出/sql代码扫描 /sql质量门禁/单元测试/ 手动触发 dev|hotfix合并到master 后自动触发 1.master向其他 描/sql质量门禁/单元代码检出/预合并/sql代码/sql质量门禁/单元测试/ 扫描/sql质量门禁/单元测代码扫描/jacoco覆盖 测试环境部署/UI+接验收环境部署/UI+接 代码扫描/jacoco覆盖 分支合并发起,自动合 dev|hotfix发起合并请求 原子任务 测试/jacoco覆盖率 统计/代码扫描/质量门禁 试/jacoco覆盖率统计/代码扫描/质量门禁 率统计/质量门禁/打包/口测试推送镜像/部署开发环 境/接口测试/UI测试 口测试 生产环境部署 生产环境回滚 率统计/质量门禁/打包/并到master推送镜像/部署开发环 境/集成接口测试/UI测试 2.删除源dev|hotfix分支。 3.删除rancher上对应命名空间资源 前置步骤 提交内容(commit)检查,包括本地钩子无 开发人员在配置中心将测试人员在配置中心运维人员在配置中心运维人员将相关环 将相关环境参数配置将相关环境参数配置 运维人员将相关环无 无源dev|hotfix分支合并 后置步骤 和服务器gitlab钩子 无 人工代码走查,需要留 相关环境配置好好好 境参数配置好 在生产环境验证上线是否成功,如判 境参数回滚 在生产环境测试验 自动合并若有冲突,则 Master完成 痕开发人员进行自测 测试人员进行测试 业务人员进行测试 断不成功,则执行证回滚流水线 开发人员进行自测 邮件提醒相关人员介入无 解决冲突后合并。 单元测试门禁代码合规 代码合规门禁自动化测试 自动化测试门禁 制品晋级 有 有sonar有 无无 无 有 有sonar有 无无 无 有 有sonar有 接口测试、UI测试有 有 标签:DEV文档: 1、架构设计文档 2、单元测试和接口自 动化测试报告 无无无 接口测试、UI测试有 有 标签:SIT文档: 1、IT测试报告 无无无 无无无 无无无 接口测试、UI测试无无 有无无有 标签:UAT 文档: 1、验收测试报告 2、生产上线部署文无无档 3、运维手册 4、应急预案 有无无 有sonar无无 有无无 接口测试、UI测试无无 有无无 无无无 通知方式 精准通知 精准通知 精准通知 部署者立刻感知 部署者立刻感知 部署者立刻感知 部署者立刻感知 精准通知 精准通知 精准通知 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 LiquiBase框架 数据脚本即代码,两者同介质、同版本 数据脚本既可与代码同时运行,又可单独运行正和反操作 正反正 •代码和数据脚本均执行 正 •测试环境验证数据库脚本可以回滚。第一个正为代码和数据脚本均执行;第二个反为数据脚本执行回滚逻辑;第三个正为数据脚本执行正向逻辑 •生产环境数据脚本投产出现问题,可以单独执行反将数据回滚 反 DevOps建设实践–自动化–数据变更 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 DevOps建设实践–流程化 流程的两个层面 工具层面:项目管理与代码库、制品库;不同环境制品的同步;Jenkins与云平台、配置中心等; 组织层面:生产问题流转;上线审批;开发和测试周期匹配; 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 DevOps建设实践–透明化 度量框架 参考《软件研发效能度量规范》 研发效能=认知+改进 度量方法=确定目标+选取指标+实施度量 度量原则:适用性、系统性、可靠性和持续性 度量工具 度量指标 指标模型:指标名称、指标意义、数据来源、计算方法、计量单位、分类(认知域/改进域)、图表、取数周期、状态、变更原因 指标类型:需求类指标、版本控制类指标、代码质量指标、开发构建指标、测试指标、部署类指标等共70余个 亮点指标:需求前置时长、红灯修复时长、缺陷逃逸率、程序员画像等 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 量化指标平台:基于BI+指标数据中心建设 Merico:商业度量平台,提供开发当量等指标 ApacheDevLake:对接Jenkins、Jira等并提供数据模型 03 DevOps实施亮点 DevOps带来什么? 1.构建平均时长:由30分钟下降至5分钟 2.持续集成响应时间:由3天/次下降至合入即集成 3.平均红灯修复时长:由2天下降至3小时 4.上线审批时长:由平均3天下降至2小时 5.需求交付周期:由2个月下降至2周 工具层面的协同效应 组织层面的协同效应 DevOps实施亮点–项目收益 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 DevOps实施亮点–十个统一 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 1.统一语言:形成组织内共同语言 2.统一工具:规定开发/测试/运维工具和版本,借助云桌面推送统一版本 3.统一流程:基于流程管理工具将上下游串联打通 4.统一规范:基于流程全生命周期进行规范化 5.统一版本:开发、测试、运维版本保持一致 6.统一资产:以应用为核心构建研发资产 7.统一介质:制品一包到底 8.统一环境:基于云平台实现一致的环境保障 9.统一度量:基于行业规范制定公司指标体系和打造指标平台 10.统一理念:借助DevOps逐步达成公司敏捷研发理念 04 DevOps思考分享 DevOps的本质是什么? 1.数字化的三个维度 •体力释放 •决策辅助 •关系嬗变 2.数字化作用是什么 •组织协同效应 体力释放 关系嬗变 决策辅助 DevOps思考与分享–数字化与DevOps(1) 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 DevOps思考与分享–数字化与DevOps(2) 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 1.数字化与DevOps的关系 •整体与局部 2.DevOps的本质:通过消除不对称性来实现组织协同效应 •一包到底,可以消除介质的不对称; •云平台,可以消除不同环境的不对称; •工具的单一可信源,可以消除工具的不对称; •自动化,可以消除人工操作的不对称; •上下游工具链打通,让数据流动起来可以消除数据的不对称; •指标的统一采集和展示,可以消除角色之间的不对称; 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Thanks DevOps时代社区荣誉出品