当前金融业广泛使用开源技术,探索如何以开源促创新,以创新谋发展。恰逢其时,2021年10月20日,人民银行联合四部委发布《关于规范金融业开源技术应用与发展的意见(银办发〔2021〕146号)》(以下简称《意见》),对金融业使用开源技术提供了管理框架和具体指导。农业银行在开源治理领域有着多年的实践与创新,将进一步贯彻落实《意见》要求,为金融行业开源生态建设贡献力量。

中国农业银行科技与产品管理局副总经理  叶馥郁

机遇与挑战并存,开源技术渗透金融全场景

开源技术开放、共享、自由的特性,助推了金融科技应用。在自主可控、提质增效压力驱动下,金融行业越来越多地选择开源技术产品作为其“分布式”架构组成部分,开源技术已成为金融服务的重要技术支撑。金融机构基于开源技术应用取得科技创新、业务赋能等积极成效时,也面临诸多风险。一是因开源漏洞引发的安全事件时有发生。例如2021年,Log4j2远程代码执行漏洞引发了重大风险。根据安全公司Snyk发布的报告,2012年以来,每年公布的开源软件漏洞都在快速增长,严重影响开源软件在金融领域的价值发挥。二是金融机构如果在没有自主可控能力的情况下过度依赖开源技术,将面临失去科技控制及创新能力,影响安全生产,并引发业务创新的风险。三是开源许可证带来了法律合规方面的风险。2021年,我国首例GPL协议著作权纠纷案在广东省深圳市宣判,标志着我国法律正式承认开源许可证的合法地位,金融机构应结合使用场景防范开源许可证带来的风险。

兼顾安全与创新,凝聚金融业开源技术发展方向

因开源技术的广泛使用,金融机构日益重视开源治理工作。在此背景下,人民银行联合四部委发布的《意见》,整体从金融机构使用开源、金融机构自发开源、开源生态构建、标准体系与法律保障等4个方面提出了指导意见,并重点提出了金融机构在使用开源技术时应遵循“安全可控、合规使用、问题导向、开放创新”四大基本原则,以及“鼓励金融机构将开源技术应用作为提高核心技术自主可控能力的重要手段”。《意见》的出台,为规范和鼓励金融机构合理应用开源技术,提高应用水平和自主可控能力,促进开源技术健康可持续发展,提出了目标,厘清了定位,指明了方向。

融合五位一体,农业银行开源治理实践

农业银行较早使用了开源技术,长期开展开源治理实践,按照“统筹规划、合理布局、分布实施、优化改进”的原则,提出了融合传统和开源理念的软件管理体系和框架TOSIM(Traditional & Opensource Software Integrated Management),并以平台化、专业化建设为主线,深化开源技术自主可控和融合创新之路,结合DevOps体系建设,支持银行在研发、测试和运维过程中实现开源技术的全流程一体化管理。

图1  融合传统和开源理念的软件管理体系和框架

1.管理体系和框架概述

农业银行对开源技术进行分级分类管理:对重要开源基础软件和开源框架采取强管理措施;对开源组件和工具,在安全合规的前提下适度降低管理成本。农业银行按照统一的评估方法、评估模型和平台工具,以软件研发的全生命周期为主线,实施五位一体的规范化管理。一是在架构管理领域,建立开源技术使用规划,并对开源技术引入、各系统使用何种开源技术进行评审;二是在项目管理领域,明确使用开源技术的工作流程和要求,在项目需求、设计规范中综合融入开源技术管理要求;三是在安全管理领域,建立开源技术安全管理体系,及时发现和妥善处置开源技术安全漏洞;四是在配置管理领域,建立开源技术配置库,提供稳定可靠的开源技术使用服务,建立开源技术与应用系统之间的关系视图;五是在运维管理领域,将开源技术纳入应急管理体系,建立开源技术应急预案,提高对开源技术引发事件的应急处置能力。

2.建立评估方法与模型

农业银行从业务需求及目标入手,制定测评方案,开展引入选型。选型过程中遵守关于开源技术使用的成本、研发周期、知识产权、法律合规等相关约束条件。在测评过程中,充分考虑组织、技术、环境、适配、过程等领域的实际情况,制定合理有效的测评指标,确保所引入开源技术的综合能力与企业需求匹配程度的最大化。

农业银行开源技术测评模型包括了开源许可证、行业认可度、产品活力、服务支持、功能性、性能效率、安全性、可扩展性、可靠性、可维护性、兼容性、易用性等。并在此基础上,补充了应用系统定级模型、开源技术分类模型和风险定级模型,共同打造开源技术的可信评估模型,全面强化了评估的综合化与可信性。

图2  一体化评估方法

3.制订管理制度与流程

农业银行按照分级分类管理、拥抱创新、风险可控的管理原则,建立了管理组织架构,在科技与产品创新委员会统筹和管理下,设立了部门技术委员会和专业的开源技术管理团队,从全局出发统筹和评审开源技术应用和管理工作。明确了管理流程,将开源技术进行一体化融合式管理,在应用系统的需求分析、设计、开发、测试交付、投产运行的全生命周期工程中,按软件的分级分类特征,对开源技术进行规划、引入、使用、运维支持、退出的全流程管理。其中,对重要开源基础软件和开源框架,通过专业团队测评和支持、提升审查级别等措施加强管理;对开源组件和开源工具,在安全合规的前提下,通过简化测评模板、降低审批层级等方式适度减少管理成本。同时,明确该流程中伴随的安全管理、配置管理和知识产权管理。

4.建设管理平台与工具

农业银行建设了完善的开源管理平台与工具。一是研发工具平台,由管理态和运行态两大工具集组成。二是资产管理平台,将开源软件统一纳入配置库进行管理,支持管理多种语言类型组件,具备与构建管理工具、源代码安全检查工具、漏洞扫描工具集成的功能。三是安全管理平台,对开源软件开展统一的安全检查及处置,通过开展漏洞扫描及源代码安全检查,及时发现开源软件可能存在的安全风险,生成处置任务,根据不同的处置策略开展安全治理。四是研发支持平台,提供专业化、标准化、精细化的线上支持服务,构建传播知识、解决问题的线上平台,打造企业内部的社交网络和技术文化。

通过管理平台和工具的贯通,农业银行将开源技术的管理规则固化到DevOps流程中,在开发测试过程中实现自动化触发、审查、拦截。一是在开发阶段,自动从可信渠道自动下载开源软件。二是在提交测试准入时,自动建立使用视图并识别首次使用的组件,向开发人员推送技术测评任务。三是在投产构建时,自动校验测评信息,对未完成技术测评的开源软件推送补测任务。四是设置质量门禁,自动根据测评、漏洞情况判定是否进行制品晋级,制品晋级后方可用于投产。通过自动化流程,实现了开源技术精细化管理并大幅提高了工作效率。

5.基于开源技术开展平台化封装

农业银行十分重视开源技术自主可控能力建设,对关键开源软件进行二次开发,封装成技术平台供行内应用系统使用。重点打造了全栈式技术中台,在人机交互、应用协同、外联开放、应用服务、公共服务和运营管理等6个子域,融合多种开源技术和自研能力,形成技术平台。例如:基于Spring Boot框架建设了综合应用平台,提供完善的基础架构降低开发技术难度,让研发人员能够专注业务,快速开发出复杂的业务功能;基于Nginx建设了综合网关平台,为应用系统提供多样的软负载均衡能力,支持TCP/HTTP/HTTPS等多种协议。农业银行对开源技术的平台化封装具有以下特点:一是范围广,涉及大部分自研技术平台;二是程度深,部分平台核心功能基于开源技术建设,供外围系统和核心系统有序应用;三是技术栈收敛,采用主流开源技术,保持技术平台在长周期的稳定性;四是自主化高,配备专业团队建设和运营,深度掌控开源技术。

截至目前,农业银行已规范使用了超过5000种开源软件,涉及30多种开源许可证,有力支撑了本行金融科技创新,契合了《意见》要求,获得了监管机构和同业的认可。2018年,农业银行《金融科技转型中商业银行开源软件管理和应用的探索与实践》课题,获得了银保监会银行业信息科技风险管理课题一类成果。2019年,农业银行成为首批通过信通院可信开源治理能力评估的金融企业。2020年,农业银行在信通院可信开源治理成熟度评估中被评为最高等级“先进级”。2021年,农业银行课题《金融业开源治理体系与标准化研究》获得金标委2020年度金融标准化重点研究课题一等奖。

展望未来发展,从开源使用者向开源贡献者转型

开源大势浩浩汤汤,金融机构既是开源技术的使用者,也必将成为开源技术的参与者和贡献者。农业银行将进一步贯彻落实《意见》要求,一是以开源促创新,持续优化行内使用开源技术的管理体系,坚守安全可控底线,合规使用开源技术,加强金融科技创新能力。二是以创新谋发展,积极开展对外开源工作,通过试点项目探索外部路径,形成参与外部开源建设的规范化引导;深度参与开源项目相关的开源社区、基金会等组织,鼓励研发人员代表本行深度参与外部开源项目,加深技术掌控力,体现大行担当。农业银行将在监管机构的指导下,携手同业,为金融行业开源生态建设贡献力量。

声明:本文来自金融电子化,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。