写点什么

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

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

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

    阅读完需:约 7 分钟

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

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

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


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

编码辅助能力不足


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

扫描工具共享生态不完善


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

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


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

工具链支撑不够完善


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

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


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


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


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

建设本地研发助手


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


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

建设自助代码扫描流水线


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


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


统一管理扫描规则


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


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

建设扫描工具共享生态


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

建设质效度量全视图


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

组建虚拟专家团队


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

四、未来展望


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

2022-06-27 14:529716

评论 3 条评论

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

java就业培训 | 面试官如何判断应聘者能力的,这一篇就够了

@零度

JAVA开发

云安全是什么样子的?其工作原理是什么?

wljslmz

云安全 6月月更

系统困境与软件复杂度,为什么我们的系统会如此复杂

阿里巴巴终端技术

软件 系统设计 软件开发

Linux系统与Windows系统之间的文件上传与下载

龙空白白

Linux Windows系统

图搜的应用场景

Geek_e369a5

图像检测 图像搜索 图搜的应用场景

JMeter集成底座项目压测心得

agileai

压力测试 集成底座 企业服务总线 统一身份管理平台 主数据管理平台

2023年广州美博会-2023年春季广州美博会

Geek_0b38bb

美博会 2023年广州美博会 春季广州美博会 3月份广州美博会

探索质量外延 - 质量安全故事

QualityFocus

质量管理 软件质量与安全

特定MPC问题包含哪些常见技术,有什么作用,什么场景需要用到?

Jessica@数牍

隐私计算 安全多方计算 特定mpc问题

低代码如何“拯救”企业?

优秀

低代码 企业管理

一起认识下浏览器的5种观察器

转转技术团队

JavaScript 前端 浏览器

个推TechDay直播预告 | 6月22日,开启大数据降本提效的破局之道!

个推

大数据 分布式计算 分布式存储 标签

【LeetCode】多个数组求交集Java题解

Albert

LeetCode 6月月更

【6.10-6.16】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

5月券商App行情刷新及交易体验评测报告,四家券商综合评级上升

博睿数据

智能运维 博睿数据 券商排行

Mysql数据库查询好慢,除了索引,还能因为什么?

C++后台开发

MySQL 数据库 中间件 后端开发 C++后台开发

BI与SaaS碰撞,让数据处理更加轻松(下)

葡萄城技术团队

数据分析 SaaS BI

Vue3 响应性原理

转转技术团队

JavaScript Vue 前端

帮助中心应该怎样设计?

小炮

java程序员培训 | 10年后程序员的薪资会怎么样

@零度

JAVA开发

易观分析《计算机视觉市场研究,2022》研究报告正式启动

易观分析

人工智能

IntelliJ IDEA常见快捷键

龙空白白

IntelliJ IDEA

自己实现一个大文件切片上传+断点续传

转转技术团队

JavaScript 前端 文件上传

个推CTO趣谈元宇宙:从概念、成因到核心技术

个推

数据智能 元宇宙

编程技巧│浏览器 Notification 桌面推送通知

可视化 6月月更 Notification 实时通知

科创人·数智未来私董会第4期:转型的实证-幸存者偏差与盲人摸象

科创人

InfoQ 极客传媒 15 周年庆征文|跨平台应用开发进阶(二十二) :uni-app Android APP上线准备工作汇总

No Silver Bullet

前端 签名 安全检测 6月月更 InfoQ极客传媒15周年庆

网络安全实战从0到1彻底掌握XXE

网络安全学海

黑客 网络安全 安全 渗透测试 WEB安全

智慧园区效果不满意?请收下ThingJS这份秘籍

ThingJS数字孪生引擎

智慧园区 数字孪生

级联层与层叠上下文了解下?

转转技术团队

CSS JavaScript 前端

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