商业银行自主研发DevOps在线协同平台实践 姓名:陈登辉 个人简介 陈登辉 配置管理中心-研发经理 深度参与DevOps体系建设,在项目中扮演了关键角色,与团队一起不断突破技术瓶颈,借助工具平台的研发实现了配置管理的自动化与智能化,显著提高了交付效率。 一体化协同 研发一体化 目录配置一体化 平台展望 背景&痛点 在金融领域的创新浪潮中,银行业务的革新与新产品的层出不穷,对科技能力提出了更高的要求——银行科技需敏捷响应市场变化,加速产品迭代,迅速占领市场,以实现效益最大化。当前,我行已构建超过500个系统,涵盖了多条业务线,涉及多种编程语言。然而,单一的版本控制工具已难以胜任高效的版本管理,导致开发与变更代码的效率大幅下降。在变更流程上消耗的时间,往往远超实际开发所需,成为制约效率提升的瓶颈。 一 代码合并到环境交付时间长 二 线下和人工的方式效率低下弊端多 三 变更流程复杂效率低 四 缺少统一的管理和平台工具 五 缺乏研发执行层面的数据 01 一体化协同 一体化协同 •以需求为驱动,围绕项目建立端到端的线上化的全流程管理和操作。 •建立一体化工作台,让团队所有角色和人员在统一的平台处理日常事务和协同。 •集成已建管理平台和操作平台,提供各领域的服务,在统一的协同平台下进行流程协作和交互。 目标与愿景 提升效率 保障质量 控制成本 建立支持需求快速迭代的研发交付流程,整合交付工作流,解决交付流程效率低下的问题。 构建统一的应用版本控制和变更管理;构建和打造江南银行一体化交付标准和规范,实现交付质量的标准和可控。 通过全面的自动化能够大大降低对人员的依赖;通过自助化工具释放现有人力,降低现有人员瓶颈的带来的压力 如何实现 01.线下到线上 将线下操作搬到线上,比如代码的合并工作在线 完成。 03.串行到并行 将原先需要排队等待的穿行操作改为并行,提高 效率。 一体化 02.手工到自动 将手工的编译、部署等工作用自动化代替。 04.分散到一体 将原先分散的工具系统集成,形成统一的入口,降低使用门槛和学习成本。 应用交付图形化 03 单版击本此管处理编自辑助标化题05 06单制击品此管处理编在辑线标化题 04 代码合并线上化 一体化协同平台 单研击发此流处程编在辑线标化题01 一体化协同平台 02单交击付此流处程编定辑制标化题 项目价值 效率提升 人-事-物一体化协作 数据支撑 减少了不同任务的执行时间与执行间隔; 提升不同角色用户间的沟通效率。 责任人、任务、操作在统一的平台上通过工作流程串联,无缝衔接 多层面、多维度:需求、应用、环境、任务等 多种多样的数据指标:交付周期、交付响应时间、代码变更率等 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 通过对整个交付流程各项数据进行汇总统计,领导层的决策提供数据支撑 数据度量 转型成果 金融科技数字化 敏捷协作 BizDevOps CI/CD 江南银行敏捷化转型 质量保障 专业赋能 自动化 自助式代码合并解决了原有代码合并人员瓶颈,提高了效率。 一体化协同平台 自动化构建部署替代人工,缩短了交付时间。 交付工作流规范了交付流程,让跨团队人员可以协同工作。 接入20222023提升 应用 10 160 1500%455% 服务器 76 718 844% 交付20222023提升 需求总数 533 4360 700%2236% 需求交付平均耗时 232分钟 65分钟 72% 质量门限控制对代码的不规范变更,降低了变更风险。 工单将原有线下工作线上化,提升了管理透明度,规范了工作方式。 02 研发一体化 研发过程 平台通过调用gitlab的api实支的自动创建。 同时,基于研发管理平台内 转,来控制分支的 目前,我行实现了研现发分流程平台与工具平 台的无缝对接与整合,需求 可打交造出一条以研发管 理平台、一体化协同平台以及Git为支柱的高效研发交付流水线。通过一体化协同平台的链接,源代码管理与研发流程实现了无缝对接,交付过程在一体化协同平台的全程在线管理下,确保了研发流程的流畅与高效。 代码交付策略 研发交付策略 通过需求任务的受理会自动创建对应的需求分支。 对应的需求会根据需求负责人的需要配置可对分支操作的研发人员。 在交付时,通过转测任务、转测缺陷动态的关联对应开发分支。 需求完成投产之后会在次日交付到主干分支,并通知研发团队进行自助式分支同步。 需求代码一体化 平台通过调用gitlab的api实现分支的自动创建。 同时,基于研发管理平台内需求阶段的流转,来控制分支的可交付环境。 在线自主交付 在线自主交付 研发人员可以在一体化协同平台上自主的发起对应环境的交付。 已有308个应用在一体化协同平台的助力 下实现了自动化交付,这一数字占总应用数量的60%,而对于那些更新频率较高的应用(至少每月更新一次),覆盖率更是高达90%。平台共计完成了113,134次交付任务,成功推动了24,343个需求的测试转化与关联缺陷的修复,覆盖率达到的75.9%。 在线自主交付 在线代码合并 研发人员在一体化协同平台上将需求分支向集成分支合并,如果需要人工解决冲突则提供多人在线共同解决的页面 自动化构建、部署 基于自研的自动化构建、部署引擎,结合每个应用个性化的构建部署流程,从集成分支进行构建出包并自动部署 需求、缺陷驱动交付 研发人员在一体化协同平台可以根据转测的需求、修复的缺陷作为交付原因进行对应环境的交付 在线代码审查 研发负责人在一体化协同平台对合并结果进行在线检查,根据检查结果选择打回或者进入下一步 需求、缺陷驱动交付 根据需求的阶段可以交付对应环境: 转测前可以使用功能完整发版作为原因关联需求进行交付 转测之后就只能通过对应的缺陷来进行环境的交付 交付记录会实时同步给缺陷管理平台,保障缺陷的顺畅流转 多人实时在线代码合并 根据选择的任务、缺陷关联对应的分支由平台自动往环境对应的集成分支进行合并,如果没有代码冲突需要解决,则全程无需人工介入,如果检测到有冲突需要解决,可以通过页面进行多人在线一起处理。 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 代码审查 研发人员可以通过页面查看源码 文件的变更内容,进行变更检查。 如果文件被标记为配置文件,则会着重提示防止配置文件修改错误。 同时,所有配置文件需要再次检 查防止修改遗漏。 源码变更 配置文件 在线代码审查 在线代码审查 在所有分支都合并完成之后需要由对应应用的开发负责人组织进行在线的代码变更审查,确变更内容是否符合需求。 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 自动化构建、部署 在代码交付完成之后平台会自动触发构建、部署任务: 构建是基于集成分支的最新代码进行自动化的构建 通过部署服务将构建的产物传到目标服务器 进行自动化的部署。 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 自动化构建、部署过程监控 03 配置一体化 配置一体化 变更与制品管理 自动生成需求的变更文件清单,文件根据不同的变更方式(修改、新增、删除、冲突)分别展示,进一步确保目标码和源码的一致性。所有产物、变更集均会在制品库记录保证了制品的可追溯性和版本控制的准确性。 源代码集中管理 将一体化协同平台、Git仓库与研发管理平台紧密整合,形成了一个高效的研发管理体系。研发管理平台进行需求的受理与权限的申请,而一体化协同平台负责需求分支的创建与权限的精细管控,确保了研发环境的安全与秩序。 交付流程定制化 区别于主流的DevOps实践路径。无需对所有应用的技术栈和开发框架进行大刀阔斧的改造,而是通过前期调研与组件开发,将每个应用独特的构建与部署流程模块化封装,实现灵活的编排与组合,以适应不同应用在不同场景下的需求。 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 自定义工作流 一体化协同平台内的大部分工作都需要多人协作配 合完成,因此平台底层基于标准化的业务建模标准Bpmn2.0对业务流程进行建模。通过图形化的配置将业务流程中相关的人员、业务、环境等组合,实现灵活配置的标准化业务流程引擎,以应对多种 类的场景需求。 GOPS全球运维大会暨研运数智化技术峰会2024·上海站 在线定制工作流 图形化流程编排 通过对应用交付资源构建、部署的解构,分解成环境、应用包、组件,通过自主研发的自动化引擎,将这些内容组合起来进行图形化编排,可以支持自动化交付、自动化运维及其他自动化应用。 在这里入你的正文,阐述与关键词标题相关的具体 平台交付亮点 多路并行交付 •图形化交付变更确认,提高投产成功率 •线上操作,降低人为操作风险 •多路并行交付,大大提高构建部署效率 动态自动化流程 •自动生成变更文件清单,提高变更可靠性 •可实现多环境不同流程,更好地适应环境差异 •自动化流程可灵活编排,满足复杂流程需求 定制化交付流程 •遵循国际标准的工作流引擎,功能强大 •图形化配置,可灵活定制 源码集中式管控 源码管控 将分散在ClearCase、SVN、GIT等不同源代码管理系统中的代码进行统一迁移。这些重要的代码资产将被集中存放至一个统一的Git仓库,接受标准化的管理,以提升代码的可维护性和团队协作效率。已有204个代码仓库和24,162条分支在这一全新的管理模式下运行,享受着集中化管理带来的便利与高效。 准确高效的代码合并 通过配置的Gtilab仓库地址进行源代码拉取,并在代码服务所在服务器进行合并,如果有冲突需要解决,会将页面合并内容保存到服务器本地,完成之后推送到远程仓库。 01 每次合并之前会对本地仓库进行clean,保证本地仓库是 干净没有问题的。 02 所有合并均在代码服务所在本地服务器进行操作,未完成 之前不会影响远程仓库。 03 每次合并的结果,以及人工介入解决的冲突文件记录均会 保存至文件服务器,方便版本追溯。 自动合并,如有冲突由项目组进行在线共同解决,无人员瓶颈,交付并发度可以大大提高。 统一制品管理 制品仓库 对全行应用部署所用到的制品统一由配置管理团队提供平台进行管理,记录每一次的部署版本,即使短期内无法做到源代码管控的项目也能通过制品仓库进行管理。做到所有资源均来自于统一授信源。 04 平台展望 平台展望 态度端正能够认真完成本岗本职各项工作虚平心台学活习跃用户941人,占研发团队的85%以 上 需求、缺陷自主交付覆盖率75.6% 目前后续 源代码&制品纳管率超过80%进展规划 完成114,397次代码合并与46,188次代码审 计 网络、环境运维自动化 配置分离机制 制品晋级策略 构建自动化的研发测试流水线 平台建设 Step01 源代码集中管理,制品统一管理,变更管理线上化。 Step02 Step03 实现配置项与源码分离,单独管控。做到一次构建多次部署。 Step04 Step05 通过自动化构建、部署与在线交付功能将交付流程赋能研发人员。 将环境运维工单自动化、线上化,提高环境运维的效率,实现运维一体化。 对接自动化测试、精准测试等专业的测试平台形成研发流水线。实现测试一体化 Thanks 高效运维社区DevOps时代 荣誉出品