助推数字化转型,农行信贷中台 DevOps 转型实践

2020-06-24 16:15:04 浏览数 (1)

一、建设背景

信贷中台项目作为农业银行数字化转型重点项目,旨在破除原有信贷产品“竖井式”研发模式,通过抽象和沉淀标准化信贷业务服务,并依托服务共享与复用,快速支撑信贷产品创新,强化横向风险管控制约。

信贷中台采用微服务架构,对信贷服务进行聚类和拆分,在私有PaaS云上部署客户中心、额度中心、用信中心、担保中心、风控中心等微服务中心,每个微服务中心可独立开发、测试、部署和交付,天然具备敏捷属性。

自2017年信贷领域开启敏捷转型以来,项目组已在敏捷管理、需求条目化、持续集成、代码质量控制等方面进行了一系列的探索实践,实现了局部单点的自动化,具备一定的持续交付基础能力,但缺乏体系化的持续交付工具和流程,主要体现在:

  1. 全流程自动化能力亟需提升:在代码提交、代码检查、构建等单点实现了自动化,但是由于工具本身的限制,需要人工介入才能实现整体流程的串接,容易引发手工误操作等风险,一定程度上导致交付流程不可靠,自动化程度有待提升。
  2. 质量管控体系亟需进一步健全:单元测试主要由开发人员自主进行,代码覆盖率低,且缺乏管控措施。接口测试、功能测试由系统测试人员手工开展,测试效率不高,且不可重复。另外,代码规范性检查、安全检查、代码评审等质量管控手段也相对滞后,整体质量管控能力有待加强。
  3. 数字化度量反馈机制亟需建立:缺乏工程级的度量体系,开发人员对交付效率、交付质量等指标缺乏直观的了解,未形成有效的度量反馈机制,缺乏数字化抓手,全面度量改进能力有待增强。

二、信贷中台的 DevOps 实践

针对以上痛点问题,项目组在中国信通院《研发运营一体化(DevOps) 能力成熟度模型》持续交付相关标准的指引下,构建起符合信贷中台特点的 DevOps 体系。

1.“化繁为简”-具备快速交付能力的轻量级分支模型

信贷中台采用微服务架构,为保证每个微服务中心都具备独立快速交付的能力,信贷中台的分支模型由最初的Gitflow模式逐步演变成基于特性分支的主干发布模式。

开发人员基于任务创建短周期特性分支(feature),完成特性开发后,尽快提交到主干(master),在主干进行构建、自动化测试、部署和发布,满足一次构建、多次部署的要求,与迭代任务管理制度配合,将需求交付的频率从按月交付提速到按周交付。

2.“行云流水”-可视化可编排的持续部署流水线

信贷中台团队充分挖掘组织级工具的能力,打造了农业银行试点项目中首个可视化可编排的自动化持续部署流水线,具备任务并行执行、并发控制、人工干预、模块级复用等能力,从工具链的角度满足了端到端全流程快速交付业务价值的要求。

持续部署流水线以构建产生的初级制品为起点,先后流经开发部署流水线、SIT部署流水线和UAT部署流水线,最终形成可以上线的制品版本。

  • 开发部署流水线

初级制品生成后,自动部署开发自测环境和回归测试环境,自动运行全量的回归测试案例,满足质量门禁要求后,初级制品自动晋级为Alpha版本。

  • SIT部署流水线

测试人员根据提测情况,选择一个Alpha版本部署到手工和自动化测试环境,分别进行手工测试和本迭代功能的自动化测试,满足质量门禁要求后,自动晋级为Beta版本。

  • UAT部署流水线

迭代末的验收会议上,选择 Beta 版本部署用户验收环境,自动运行生死案例集并进行验收测试,满足准入条件后晋级为 RC 版本。在投产前进行上线版本定版,RC版本晋级为PRBL版本。

3.“环环相扣”-端到端的变更追溯链路

需求、代码、测试报告、制品的双向追溯对于还原场景、排查问题具有至关重要的作用,信贷中台为实现全链路的变更追溯,设计了以构建号为基础的变更追溯规则。

开发人员基于需求条目创建特性分支,实现了需求与代码的关联。特性分支代码提交到主干后,自动触发构建,构建成功时自动打标记,标记内容包含本次构建的唯一ID,同时生成的初级制品名与标记保持一致。在后续的部署流水线中,随着制品的晋级,标记名和制品名同步更新,始终确保代码标记与制品的双向追溯。

当需求完成投产上线后,系统会自动将变更单号、投产基线返写回需求条目中,通过变更单号可查询本次投产功能的测试报告,通过投产基线可查询本次投产的代码、制品等信息。

4.“固若金汤”-三重质量门禁体系做实基础品控

改变事后检查的工作方式,将质量管控要求内化到流水线中,实时拦截不符合质量要求的配置项或交付物,尽可能将容易出现质量问题的检查项提前,使质量问题早暴露、早解决。

  • 持续集成阶段质量门禁

持续集成阶段进行代码规范性检查、自动化单元测试和代码安全扫描。

检查项

门禁要求

代码规范性检查

无新增违例项。

单元测试

行覆盖率>80%,且不能下降;案例通过率100%。

安全扫描

无新增致命和严重缺陷。

  • 开发自测阶段质量门禁

开发自测阶段对部署到开发自测环境的初级制品进行全量的接口回归案例测试,100%通过后初级制品可晋级到下一制品库,确保新增特性代码对存量的功能无影响。

  • 系统测试阶段质量门禁

系统测试阶段包括两项质量门禁:一是SIT测试阶段,测试人员对本迭代新增的特性进行接口自动化测试,100%通过后制品晋级到UAT阶段;二是UAT测试阶段,对部署到验收环境的制品进行生死案例集自动化测试,确保核心功能可正常调用,100%通过后形成待上线制品。

5.“事半功倍”-全面引入自动化测试

信贷中台系统的主要技术特点就是以接口的形式对外暴露信贷服务,所以接口测试具有至关重要的作用,针对这个特点,如第2节部署流水中中所示,我们在设计了三类接口自动化测试,分别用于测试存量接口功能、新增接口功能和核心接口功能,确保所有接口能够正常提供准确的服务。

每个迭代的接口测试案例与本迭代的功能相对应,接口测试案例具备自动衍生能力,能够尽可能覆盖测试场景,具备执行全量案例和单独调起某个功能测试案例的能力。

6.“有的放矢”-度量驱动交付能力改进

组织级度量体系的建设为项目组实践度量驱动改进创造了条件。项目组从统一度量平台的需求、编码、构建、测试、缺陷、环境和部署七大研发过程中选择本阶段关注的度量指标,量化交付能力,结合每日晨会制度,改进研发管理和工具,达到提质增效的目的。

“每日合并处理效率”是信贷中台项目组重点关注的指标之一,它的含义是特性分支发起向主干分支的合并请求后,是否在当天完成了合并。为了确保持续集成频率,及时修复集成质量问题,项目组根据该指标,制定了需当天完成合并请求的管理要求,并在每天下班前监督落实情况,从下图可以看出,从4月30日制定该要求以后,每天的合并请求都在当天完成。

三、DevOps 建设成效

1.敏捷研发管理模式成为习惯

管理能力的敏捷和交付能力的提升是互为支撑的,通过 DevOps 转型实践,倒逼信贷中台项目组将基于 Scrum 的敏捷管理模式成为一种日常工作习惯。改变了业务、开发、测试各管一段、各自为战的工作方式,重构了开发测试的流程、组织和文化,并逐步向业务端扩展,推进技术和业务更深度的连接和整合,组建以用户为中心的全功能特性团队,实现从业务部门原始需求到技术研发和持续运维的端到端交付,并通过运营数据反馈到业务部门进行迭代优化,从而形成业务价值的生命周期闭环管理,实现业务与技术的深层次融合。

形成了迭代计划会、每日晨会、迭代验收会为主体的迭代管理制度,迭代周期从最初的以投产窗口为划分依据的两周一迭代,逐步改进为可按需发布的一周一迭代模式。

2. 交付能力全面提升

农业银行自研接口自动化测试工具的引入,提高了测试人员的工作效率,特别是对于修改核心功能后的回归测试,从手工测试的以周为单位,降低到自动化测试的以分钟为单位,成千上万倍地缩短了测试周期。

全流程端到端的自动化交付流水线和以1周为迭代周期的迭代管理,实现了可靠可重复、高效灵活的价值交付,保证每周都有需求上线,交付周期从按月缩短为按周。对于线上反馈的问题能够快速迭代升级和修复。

3.交付质量持续提升

在建设 DevOps 过程中,随着质量内建手段的不断完善,信贷中台项目的代码质量得到持续不断的提升,在单元测试覆盖率、技术债、缺陷数等方面都有明显的体现。

单元测试行覆盖率从最初的0,提升到90%。

将存量代码违例技术债纳入迭代任务,技术债数量持续下降。

持续集成阶段严格的质量控制使得缺陷数明显下降。

DevOps 持续交付能力成熟度模型,理论体系完整,实践指导性强。

落实 DevOps 持续交付能力成熟度模型以来,信贷中台已完成十余次迭代的研发和上线工作,项目团队实现了从瀑布研发模式到敏捷研发模式的转变,从管理链和工具链都落地了配套的流程,经过了实践的检验,解决了传统模式的痛点问题,实现了业技融合、研测一体,有效提升了代码质量和研发效率。

作者简介

  • 葛江浩,中国农业银行信贷中台技术经理,负责信贷中台 DevOps 三级贯标工作,具备扎实的 DevOps 领域实践经验。
  • 张延堂,中国农业银行研发中心信贷领域资深技术专家,在风险管理和信用管理等领域超过10年的研发和管理经验,牵头信贷中台 DevOps 贯标工作。
  • 蒋秀才,中国农业银行信贷中台项目经理,行内首批 DevOps 贯标建设者,具备丰富的信贷领域系统规划、设计和建设经验。
  • 李霞,中国农业银行信贷中台 DevOps 贯标实施者,拥有深厚的项目管理、敏捷开发和测试管理等实践经验,现负责 DevOps 落地推广工作。

2020年6月19日,由云计算开源产业联盟指导、高效运维社区和 DevOps 时代社区联合举办的 GNSEC 2020 全球新一代软件工程线上峰会上,隆重发布了 DevOps 标准持续交付部分第七批评估结果。

中国农业银行本次参评的 5 个项目均顺利通过由中国信息通信研究院(以下简称信通院)开展的《研发运营一体化( DevOps )能力成熟度模型》持续交付部分3级评估。

中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:

  • 信贷中台项目
  • 个人网银项目
  • 分布式应用互联平台(AIR)项目
  • 增值税进项税管理项目
  • 金融小店项目

DevOps 标准共分5级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。

0 人点赞