写点什么

中国工商银行软件开发中心代码扫描建设之路

中国工商银行软件开发中心

  • 2022-06-27
  • 本文字数:2115 字

    阅读完需:约 7 分钟

中国工商银行软件开发中心代码扫描建设之路

为满足不断变化和日益增长的市场需求,中国工商银行软件开发中心(以下简称工行软开)一直在探索提升组织级 IT 效能,DevOps 作为近年来兴起的软件工程文化和实践,目标是缩短开发周期,提高部署频率和更可靠的发布,这与工行软开的诉求不谋而合。随着工行软开 DevOps 转型深入推进,产品交付质量和速度都在快速提升,软件质量管控作为 DevOps 转型中的重要组成部分,代码扫描手段在保障软件高质量交付过程中起到了重要作用。

一、代码扫描中心建设背景


为了保证产品质量,工行软开基于研发过程建设了强制执行的质量门禁,以及完善的测试体系,有效地守护了软件质量。但是随着业务研发规模的不断增长,为满足不断变化和日益增长的市场需求,对软件质量守护和效能提升提出了更高要求,对研发赋能、统一质量视图、质效度量及工具链支撑等全流程代码质量管控有迫切需求。主要体现在以下 4 个方面:

编码辅助能力不足


质量门禁平均每月强制打回大量静态代码扫描问题,先污染后治理成本高,问题事后治理困难,急需编码实时辅助工具,降低编码成本,提高本地编码质量。

扫描工具共享生态不完善


代码扫描组件、规则库建设不统一,共享生态不够完善,存在规则重复建设问题,需要一个标准化的扫描工具管理平台。

代码质效数字化管理待完善


缺少开发者视角的全面代码质效数字化视图,提升团队代码质量缺少统一科学数据指导,无法客观全面的挖掘团队能力短板,帮助开发提升研发效能。

工具链支撑不够完善


随着数字化转型的不断推进,应用开发需求快速增长,同时面临的安全风险也越来越大,为实现各类漏洞排查、技术规范检查快速高效,保证研发质量,急需进一步提升工具链排查的自动化能力。

二、代码扫描中心建设思路


针对以上问题,建设代码扫描中心,通过提供 IDE 编码辅助、建设扫描工具共享生态及数字化质效度量体系,实现研发全流程的工具支撑及数字化的精准质效度量,从而全面提升研发效能。


三、代码扫描中心实施方案


根据扫描中心建设思路,主要对以下六个领域实施建设:

建设本地研发助手


建设研发助手,打造一个集合多种编码辅助功能的本地插件,在编码阶段提供实时代码质量检查及标准资产快速检索复用的能力,有效辅助开发在编码过程中潜移默化的学习并提升开发能力,同时提高编码质量、提升编码效率,赋能开发。


利用编码阶段的实时代码质量检查,将代码扫描由编码后向编码中推进,在编码阶段提供实时规范检查及修改建议,不仅解决了编码后缺陷治理困难的问题,同时帮助开发在编码中不断学习并提升开发能力。另外,对标准化代码及构件进行管控,帮助开发人员完成快速引入,辅助标准化资产编写、快速上传,支持开发人员修改和完善标准化资产,实现标准资产快速检索复用,提升开发人员效能。

建设自助代码扫描流水线


通过搭建云端的基础运行环境,将 JENKINS、执行机等全部云化管理,业务代码逻辑与基础运行环境完全解耦,实现环境按需自动弹性伸缩,为全行代码的快速扫描提供了有力保障。


建设可复用、可定制、可编排的自助代码扫描流水线前后端服务,实现流水线调度、编排等核心功能,为基础组件提供自助快速串接流水线能力,将代码资产、代码缺陷等进行集中管理,为技术管理、安全管控、测试质量管控提供一体化支撑能力,有效提升专项排查效能、团队自查能力。


统一管理扫描规则


通过对扫描规则进行标准化的统一管理,提升规则可读性及可执行性,实现规则资源合理利用。首先,对规则进行分层管理,根据开发组织层级和专项内容对规则进行分级分类管理,按照不同方向对规则进行分层,同时增加关键字方便查询使用。其次,对历史规则进行信息完善,增加规则标签信息,如唯一标识、大小分类、背景来源、扫描范围、作用效率等,帮助完善规则信息。最后,建立规则关系图,剔除无效规则、重复规则,将分层规则向上集成,按照开发组织层级进行规则继承管理,对于强制级别规则必须启用,实现规则的标准化管理。


通过对扫描规则的分层管理、信息完善和建立规则关系图,为工行软开提供统一的标准化扫描规则管理,避免产生规则孤岛状态,减少资源浪费,有效提升研发效能。

建设扫描工具共享生态


建设统一的扫描工具管理平台,支撑扫描工具共建共享,有效避免重复建设。通过提供统一快捷的扫描工具管理页面,实现扫描工具的审批上线、快速配置、实时更新等。同时将扫描引擎与扫描规则解耦部署,扫描规则更新实时生效,实现扫描规则热加载。

建设质效度量全视图


覆盖本地编码、持续集成、持续部署、持续交付的多维度度量指标,建设质效度量全视图,为团队提供全面直观的数字化代码质量度量,为开发提供个人维度度量视图,助力团队和个人挖掘开发能力短板、聚焦能力成长,为提升开发效能提供有力抓手。

组建虚拟专家团队


成立流水线专家团队,对扫描工具接入进行准入管控,在技术管理、安全管控、测试质量管控等领域提供专业的组件接入审查及支持,保障流水线运行安全稳定。

四、未来展望


依托 DevOps 理念,工行软开金融科技全面建立需求、研发、投产、生产运营统一协作的研发运营一体化机制,不断提高研发供给能力和研发质效,优化 DevOps 工具体系和流程,建设高效能、自动化的工具链。未来将继续聚焦安全稳定和快速交付的目标,持续完善 DevOps 研发运营一体化能力,不断推进数字化转型进程。

2022-06-27 14:529632

评论 3 条评论

发布
用户头像
挺好的, 向上汇报的好材料
2022-09-14 10:25 · 上海
回复
用户头像
一大堆废话,无任何干货
2022-07-01 09:46
回复
用户头像
期待贵行的法务团队,也来介绍下工作心得
2022-06-29 15:16
回复
没有更多了
发现更多内容

支付宝小程序迁移至 FinClip

FinClip

OpenYurt 在龙源 CNStack 云边协同项目的应用

阿里巴巴云原生

阿里云 开源 云原生 openyurt

Android通用缓存存储设计实践

杨充

阿里云与 Kubecost 合作,容器服务 ACK 支持使用 Kubecost 进行成本管理

阿里巴巴云原生

阿里云 云原生 容器服务

ListView的数据更新问题

芯动大师

ListView 数据更新 demo源码

IoTLink 版本更新 v1.8.0

山东云则信息科技

物联网平台 物联网 springboot

自动化离线交付在云原生的应用和思考

京东科技开发者

云原生 离线 企业号 3 月 PK 榜 自动化交付

字节跳动新一代云固件Cloud Firmware 2.0来啦

字节跳动技术范儿

云计算 Linux OCP

轻量级、简化、QDSAA—特斯拉 IT风格曝光160p Investor Day完整PPT

B Impact

读者1群辛辣反馈,关于《中国式SaaS有没有希望(能赚钱吗)?|内行深度PK ​》

B Impact

二本毕业,靠学姐帮助混进大厂,女朋友却离我而去

程序员晚枫

程序员 女朋友 大厂 校招

Vue 项目如何迁移小程序

FinClip

【MapStruct】引入MapStruct之后,项目启动java:找不到符号

No8g攻城狮

springboot 异常处理

模块一作业

只因

架构训练营

架构实战营模块三作业

null

Chrome 无魔法使用新必应(New Bing)聊天机器人

kcodez

chrome ChatGPT newbing 新必应

基于声网 Flutter SDK 实现多人视频通话

声网

flutter RTC RTE 视频通话

使用NineData构建任意时间点(PITR)数据恢复能力

NineData

开发者 数据恢复 dba 数据备份 全量同步

3DCAT+一汽奥迪:共建线上个性化订车实时云渲染方案

3DCAT实时渲染

实时云渲染 实时渲染云 3D实时云渲染

当TO B客户说“没有预算”时,怎么卖SaaS|SaaStr观点

B Impact

配运基础数据缓存瘦身实践

京东科技开发者

数据库 redis 缓存 key 企业号 3 月 PK 榜

尚硅谷Java课程进化升级

小谷哥

尚硅谷禹神版前端入门教程发布

小谷哥

TCL 拥抱云原生,实现 IT 成本治理优化

阿里巴巴云原生

阿里云 云原生 IT IT治理

MSE 诊断利器上线

阿里巴巴云原生

阿里云 云原生 微服务引擎

稳中求进的转折之年,企业如何重启“增长飞轮”?

脑极体

京东

「降本」有可能,「增效」不确定

Java 架构 程序人生 职场

三天吃透消息队列面试八股文

程序员大彬

Java 消息队列

尚硅谷SSM项目视频发布

小谷哥

流量控制--MQTT 5.0新特性

EMQ映云科技

物联网 IoT mqtt 流量控制 企业号 3 月 PK 榜

中国工商银行软件开发中心代码扫描建设之路_文化 & 方法_InfoQ精选文章