中国DevOps社区峰会2023·广州 用DevOps“法术”助力城商行数字化交付 徐宗言紫光云技术有限公司/PaaS产品经理 徐宗言 紫光云技术有限公司PaaS产品经理 专注DevOps领域、研发效能领域工作近10年 曾先后在华为、美团和新华三等知名公司工作 擅长DevOps产品架构设计和质量效能提升工作 参与多个公司级敏捷研发工具链平台建设 在敏捷和DevOps实践体系上有丰富经验 目录 1 2 城商行DevOps转型背景分析 城商行DevSecOps全流程实践方案 3DevOps未来方向探索 4Q&A 城商行DevOps转型背景分析 政策引领 行业共促 内部挑战 目标&思路 政策引领:金融政策引领金融科技敏捷转型 “数字化交付管理体系”、“提升技术工程的管理能力”需要以DevOps理念打造金融行业研发运维一体化工具平台。 金融业数字化转型,需重点推动科技管理敏捷转型明确三个方面进行: •建立快速响应需求、适用“稳态”与“敏态”,覆盖全生命周期线上交付的数字化敏捷研发运维体系; •引入研发运维一体化工具,建设企业级一站式研发协同平台; •通过“精益”生产管理方法,提高对大规模科技队伍和复杂技术工程的管理能力。 银行的数字化转型,需要与之相适用的生产管理平台、流程和工具 行业共促:头部银行企业推动行业标准化建设 金融同行围绕政策及云原生技术、积极探索并推进金融科技标准化建设。 金融同行认可DevOps价值、且在努力推进落地: •国有大行、股份制银行资源 充足、采用自研方式推进、 资源充足,更多采用自研方式,积极活跃。 具体流程涵盖了研发管理、持续交付、技术运营和安全等DevSecOps全流程,其中CICD最普及,诉求最强烈优先级最高 技术积累、研发资源有限,更倾向与厂商合作,控制风险减少投入。 信通院DevOps能力成熟度 国内银行评估情况(截止2023Q4) 同步推进行业标准制定; •城商行资源有限情况下DevOps更多选择与厂商共建,控制风险、减少投入; •DevSecOps全流程覆盖,CICD是最普及、优先选择落地的建设方向; 内部挑战:行内痛点促进DevOps建设 基于访谈、调研,围绕研发全流程的现状进行分析,整理六大关键痛点或提升点。 应用手工发布,部署效率低 版本无法溯源,版本不可信 代码管理分散,缺失规范与指导 停留在集中式、审批式、被动式响应请求的应用发布; 耗费大量的人力和时间成本,且效率低下; 资源利用率低,缺乏有效管理 基础资源和环境不可信,导致线上版本无法溯源和可信管控; 软件节点的交付数据不可信,无法溯源; 研发模式不灵活,需求变更成本高 ISV主导研发形成烟囱式代码管理,代码管理工具难规范; ISV主导研发难以实施代码检查机制、代码分支管理难统一,存在代码难 以追溯、安全漏洞等技术风险; 质量和效率难量化,缺失度量体系 各业务应用的组件编译构建环境不共享、低频使用; 各业务应用的部署资源分配给各团队自行维护,对资源管理不专业、不主动释放; 瀑布式研发模式“重文档、轻交 流”,但很难做到事无巨细的文档; 瀑布式研发模式“自顶而下”,不包含纠错机制、难以适应变更需 求,变更成本高,不利于业务创新; 项目研发成本较高,不易量化,受管理和氛围影响,效率输出存在较大波动; 项目研发标准不统一、质量难以量化,不利于研发目标精确达成; DevOps建设目标:加速银行价值交付和业务创新 DevOps建设核心实现:研发流程标准化、交付过程自动化和可视化,让一切变更有版本可依、有迹可追溯 提升研发效率和质量 提供端到端的高度自动化,提升研发效率,降低成本; 建立标准和规范,加强质量内建。 项目全生命周期标准管理 覆盖项目管理全生命周期; 对各个阶段实现了标准化、精细化管理、快速迭代; 敏捷研发管理,快速交付。 多种开发模式都适用 互联网敏态、传统应用稳态等开发模式都适用; 开发标准化、流程统一管理。 确保交付安全可信 管理可视化、可度量 消除组织壁垒 环境可信:资源可信、构建可信; 过程可信:流程隔离,可自动化; 代码&依赖可信:安全合规可追溯; 变更可信:变更来源有据、代码可溯源。 精益(数字化)管理,可视化一切; 持续反馈和度量,及时调整优化; 形成内驱型、成长性团队。 统一管理交付平台,加强团队协同,降低沟通成本。 流程支撑业务价值,管控协作风险。 城商行DevOps全流程实践方案 头部银行早期DevOps建设遇到问题 建设历程: 1.敏捷小范围试点,全面推广受阻 2.CI/CD探索实践,普遍Git+jenkins的工具组合 3.各团队自行构建自动化能力,工具选型较随意 4.交付涉及系统多,多系统切换使用降低交付效率,数据不共享形成众多孤岛系统 5.开发、测试、运维各自构建自身环节自动化能力,未拉通形成全局流动效率提升 6.初次尝试构建统一DevOps平台,用于交付提效 问题: 1、体系缺失,平台先行 无统一体系框架指导平台建设,体系要求和平台实现不统一,无统一规范指导落地 2、架构规划未充分考虑扩展性 构建的DevOps平台与已有三方系统融合难度增大 3、平台工具选型未充分调研 落地推广进展缓慢,部分团队需求不满足,需持续优化解决,浪费不必要时间成本 4、开发测试未有效协同 测试是独立部门,前期未与测试部门达成一致质量要求用于设计满足规范的质量门禁融入流水线设计 DevOps能力建设路线 ②③ ④持续开展 DevOps组织规范打造 ①(持续扩展) 一体化DevOps平台建设 以DevOps平台为中心,整合行方现有变更审批系统、依赖准入扫描、一体化运维监控平台等关键工具,通过数据整合,定制化开发等手段,形成持续集成、持续交付的DevOps工具链 持续交付流水线构建 依托一体化DevOps集成平台,将适配行方最佳实践导入,建立研发、测试、交付等相关任务的实施流水线,在任务中内置代码准入检查、安全扫描、依赖扫描、回归测试等质量控制手段。其中制品晋级和发布流水线是重中之重需高优解决 统一研发协作平台 以DevOps构建面向研发、支撑双模应用(传统应用、敏捷应用)统一研发高效协作平台;构建端到端的项目管理流程,实现从需求、任务、迭代、版本、缺陷、测试的统一管理。 统一度量视图建立规范,围绕效率、质量、工 程能力完善度量指标体系。通过数据采集、分类与分析,形成整体视图,通过对关键指标的按时间维度的趋势分析和跨组织的横向对比分析,提供部门级、中心级、项目级、团队级多视角的分析统计数据,结合关联指标对项目形成全方位、多维度的评价,千人千面 前期基于行业标准完成DevOps能力成熟度自评,通过以评促建、以评促改,后期可基于此行业标准建立符合行方自己的DevOps能力成熟度评价体系,沉淀技术能力,形成标准;另在推广实施过程中,进行持续度量,寻找问题和短板,指导实施过程持续优化与改进,打造DevOps运行体系。 统一DevOps体系框架指引能力构建 围绕建设目标,参考业界优秀实践和DevOps能力成熟度模型,结合城商行研发场景,从流程、规范、工具和度量四个层面推进 DevOps一体化平台架构 围绕研发管理、代码管理、持续集成、持续交付、持续部署及效能度量提供全栈平台能力 基础设施 •开放API接口和webhook能力,可灵活 实现与第三方系统集成,实现企业真正的一体化平台 DevOps平台能力 监控平台 测试平台 安全扫描 服务治理 调用链 跟踪 操作日志 通知平台 环境管理 跨项目协同 流程定制 精益看板 单元测试 工时管理 迭代管理 版本 里程碑 … Habor Artifactory Nexus GIT PAAS IAAS 需求管理/研发管理 持续集成/持续交付 安全 编译构建 代码检查 代码管理 测试管理 缺陷管理 需求管理 代码准入 接口测试 漏洞扫描 制品管理 依赖包扫描 •构建覆盖研发交付全流程,适用多角色的研发运维一体化平台 产品经理 设计人员 开发人员 测试人员 安全专员 运维人员 项目经理 需求 设计 任务 开发 测试 安全 生产发布 管理者 运营运维 质量门禁 流水线 效能度量 •全方位质量门禁,覆盖项目管理和持续交付;从管理线和交付线两个层面确保高质量交付 对接系统 生产变更/运维 •端到端流水线,实现标准化和自动化发布应用,安全可控交付业务 质量门禁 代码检查 CMDB 系统 弹性伸缩 应用日志 生命周期管理 审批系统 基础监控 应用升级 变更发布 •全视角效能度量,可覆盖研发效率、研发质量和工程能力三个层面,可立体化评估项目综合效能 业务需软件需 求 求 设计 任务 开发 测试 集成测试 生产发布 评审不通过评审不通过评审不通过评审不通过 需求拆分 迭代计划 任务 开发 测试 用户故事 设计 开发 测试 产品 backlog 用户故事 设计 开发 测试 •版本计 计划划 / 需求W BS 设计RS •需求分析 /S •详细设计 / 设 开发计 •编码/代码 文档 测试 应用n 服务n 应用c 服务c 应用b 服务b 应用a 服务a 自定义研发 敏捷研发 瀑布研发 … 自定义研发管理模式实现业务灵活交付 1.支持自定义研发流程,灵活适配自身研发交付模式,支持互联网应用和传统应用的开发 … 2.统一进度管理,支持迭代/版本的交付进展、交付效率和交付质量评估,工作输出量化 3.可视化看板,让工作项/任务进展、状态透明,便于团队成员高效沟通和协作 分段构建持续交付流水线实现应用自动化发布 围绕行方标准化交付流程和变更审批规范,设计分段自动化流水线和合理环境规划实现业务持续交付和生产应用安全发布 全流程质量内建体系构建确保业务高质量交付 围绕研发管理和交付全流程构建全面质量保证体系,从需求、代码、制品等资产着手,进行安全评估和测试检查 关联工作项 工作项状态 代码评审 制品可信——基于信创平台的应用构建,确保代码安全 从平台支撑和构建流程两个方面支持应用安全,从代码管理、制品构建、测试、制品管理、安全扫描和应用监控全过程保证 应用安全 代码管理&代码检查制品构建&制品测试制品归档&扫描应用扫描&监控•DevOps一体化平台的信创支持,全面代码提交编译构建制品归档国产化,支持X86+ARM双架构,保证 代码准入单元测试制品下载 (MR)应用构建的物理安全和系统安全 依赖包漏洞扫描•代码安全管理、代码准入检查、分支 代环境部署码检保护确保代码安全查自动化测试动态应用 接口测试安全扫描•构建环境标准化和构建自动化确保构UI测试应用监控 代码合并建安全可信 性能测试 •单元测试、自动化测试、依赖包漏洞 平台能力 代码管理 代码检查 编译构建 流水线 制品库 安全扫描 扫描、制品管理确保制品安全可信 •安全扫描和应用监控确保运行时应用安全 信创DevOps一体化平台国产Linux操作系统 国产X86+ARM架构硬件平台 制品可信——全流程链路信息标记确保软件版本可溯源 软件版本构建全链路标注,从需求、版本、开发、测试、发布等端到端过程进行来源信息追加,确保版本可信,供应链可追溯 生产制品 准生产制品 需求版本代码开发制品测试制品 链路信息 •需求编号 链路信息 •需求编号 •版本号 链路信息 •需求编号 •版本号 •代码分支 链路信息 •需求编号 •版本号 •代码分支 •开发流水线编号 链路信息 •需求编号 •版本号 •代码分支 •开发流水线编号 •测试流水线编号 链路信息 •需求编号 •版本号 •代码分支 •开发流水线编号 •测试流水线编号 •准生产流水线编号 链路信息 •需求编号 •版本号 •代码分支 •开发流水线编号 •测试流水线编号 •准生产流水线编号 •生产发布流水线编号 可信链路标注 丰富全面的指标设计实现全方位度量 基于价值流的