写点什么

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

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

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

    阅读完需:约 7 分钟

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

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

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


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

编码辅助能力不足


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

扫描工具共享生态不完善


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

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


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

工具链支撑不够完善


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

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


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


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


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

建设本地研发助手


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


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

建设自助代码扫描流水线


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


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


统一管理扫描规则


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


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

建设扫描工具共享生态


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

建设质效度量全视图


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

组建虚拟专家团队


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

四、未来展望


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

2022-06-27 14:529413

评论 3 条评论

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

音视频八股文(9)-- flv的h264六层结构和aac六层结构

福大大架构师每日一题

音视频 ffmpeg 福大大

如何实现网站访问量的统计?

海拥(haiyong.site)

三周年连更

OpenGL入门一:基础知识及概念

轻口味

opengl 图形图像 三周年连更

KubeShark: Kubernetes的Wireshark

俞凡

Kubernetes 云原生

2023-04-29:一个序列的 宽度 定义为该序列中最大元素和最小元素的差值。 给你一个整数数组 nums ,返回 nums 的所有非空 子序列 的 宽度之和 由于答案可能非常大,请返回对 109

福大大架构师每日一题

golang 算法 rust 福大大

什么是软件开发领域的 obsolete 或者 deprecated 含义

汪子熙

软件工程 软件开发 三周年连更

深入理解vue2.x中Object.defineproperty()和vue3.x中Proxy

不叫猫先生

Vue 三周年连更

为什么 Go for-range 的 value 值地址每次都一样?

AlwaysBeta

Go 面试

Prometheus监控神器-自动发现篇

乌龟哥哥

三周年连更

什么是 RUM JavaScript

汪子熙

JavaScript 前端开发 三周年连更

一文了解Spring Framework 5 新 Web 框架:Spring WebFlux

Java架构历程

三周年连更

设计一个即时群聊天系统软件(采用华为云ECS服务器作为云服务端 )

DS小龙哥

三周年连更

面对“失业焦虑”我们可以做些什么?| 社区征文

莪是男神

三周年征文

技术分享:如何将JSON中的日期格式字符串替换为占位符

IT蜗壳-Tango

三周年连更

Windows下 IDE工具常见编译错误FAQ下

鸿蒙之旅

OpenHarmony 三周年连更

算法题每日一练:无重复字符的最长子串

知心宝贝

数据结构 算法 前端 后端 三周年连更

Qz学算法-数据结构篇(顺序存储二叉树、线索化+遍历)

浅辄

数据结构 三周年连更

C++ STL容器和算法:详解和实例演示

小万哥

c++ 容器 算法 后端 stl

Django笔记十九之manager用法介绍

Hunter熊

Python django Manager

算法题每日一练:螺旋矩阵 II

知心宝贝

数据结构 算法 前端 后端 三周年连更

如何进一步提高AI输出质量?

石云升

AI ChatGPT 三周年连更

【程序猿未来之路】作为互联网技术人的“我们”该如何破局 | 社区征文

码界西柚

4月日更 AIGC 三周年征文 三周年连更 生存指南

粉丝提问:区块链与大数据开发读研方向怎么选?

千与编程

区块链、 大数据 开源

1500字讲懂单体架构和微服务架构的区别

Java架构历程

三周年连更

为什么老有人想让我们“程序员”失业? | 社区征文

se7en

三周年征文

Matlab实现周期卷积

袁袁袁袁满

三周年征文

为什么说:Linux中一切皆文件?

wljslmz

Linux 三周年连更

重磅!算能公司算丰SG2042斩获第六届数字中国建设峰会“十大硬核科技”

极客天地

Django笔记二十之手动编写migration文件

Hunter熊

Python django migration

vue2.x中keep-alive源码解析以及LRU缓存策略使用

不叫猫先生

缓存 Vue LRU keep-alive实现原理 三周年连更

这 30 个工具和服务可以更好地监控和管理 Linux 服务器,很全面!

wljslmz

三周年连更

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