开源治理背景
(一)开源技术应用广泛,引领信息技术创新发展
开放、平等、共享、协作的开源模式,正在成为全球软件技术和产业创新的主导模式。开源技术已经覆盖软件开发的全域场景,构建新的软件技术创新体系,引领新一代信息技术创新发展。开源技术不仅仅是开源软件,还包括开源硬件、开源大数据、开源API等,但开源软件依旧是开源技术的主体,也是当前开源治理的重点关注对象。
金融机构对开源技术的广泛应用,得益于开源生态的日趋成熟、安全可控要求和应对互联网金融的竞争需要。根据信通院金融行业开源技术应用社区调研结果,我国金融机构中超过90%的企业引入了开源软件。其中,中间件、大数据、数据库与工具是主要的开源软件应用方向。十四五期间,金融科技作为国家级战略正对金融业IT建设产生巨大影响,分布式及服务化系统建设会大量使用新技术、尤其是开源软件,而且开源软件应用的范围会越来越大、深度会越来越深,速度会越来越快。
(二) 开源应用面临严峻挑战,开源治理刻不容缓
开源软件的广泛应用,在帮助用户突破技术壁垒、推动技术创新的同时,也带来了组件间依赖、技术保障、许可证合规、安全漏洞、供应链等方面的一系列问题。开源软件治理是推动开源生态健康发展、保障金融系统稳定运行的有效手段。
组件间依赖关系复杂隐蔽。开源软件涵盖开源框架、开源软件、开源工具、开源代码等多种概念类型,单个企业应用的最小可识别开源组件往往数以万计,且开源软件相比商用软件发展更为迅速、更新迭代快,相互之间存在错综复杂的依赖关系,造就了开源软件之间复杂而隐蔽的关系,进一步增大了开源软件识别和规范管理难度。
技术保障能力不足。开源软件来源于开源社区,相比传统商用软件,缺少完善的运维保障支持,而第三方服务厂商的技术能力相对有限;金融企业作为开源软件的应用方,开源社区参与度相对偏低,很难获取到社区专业服务,而自身技术支持能力的建设不可能一蹴而就。
许可证合规风险。开源许可证由版权所有人自由定义,各国法律解读不同,因此原生具有不确定性。目前业内多处于摸索积累阶段,缺少可借鉴的权威合规经验和专业法律资源支持。在“开源=免费=自由使用”的错误理念影响下,使用者对遵循开源许可证的意识普遍不够强,易遭受传染性许可证侵害影响自身知识产权。使用者一旦出现许可证违规,会造成法律诉讼风险和企业声誉风险。现在美国、欧盟和国内都有这方面的案例,以此证明了开源许可证在不同国家都是受法律保护和认可的。
安全漏洞风险较为严重。参照信通院《全球开源生态研究报告》(2022年),一个应用程序开发项目平均有49个漏洞和80个直接依赖项,而漏洞修复所需时间在稳步增加,2021年修复一个补丁大约需110天,使用过时的、存在漏洞的开源组件仍然是软件开发过程中的常态。同时开源模式下开源软件传播快、应用广,客观上加剧了安全漏洞传播的速度和范围,造成传染性传播的局面。
供应链风险凸显。开源项目通常需要散布在全世界的开发人员、组织机构、托管工具等共同参与,错综复杂的供应链关系网络蕴含着严重的风险问题。例如负责开源项目运营的公司,会根据自身发展及盈利需要,终止对开源软件的支持(闭源、停服等)或变更许可证。一个典型的例子:RedHat公司宣布于2021年底终止其CentOS 8免费商业版本的维护工作。
(三) 人行发布《意见》,为开源治理指明方向
2021年10月,人行等五部委联合发布《关于规范金融业开源技术应用与发展的意见》(简称:《意见》,下同),旨在规范金融机构合理应用开源技术,提高应用水平和自主可控能力,促进开源技术健康可持续发展。
《意见》重点提到金融机构在使用开源技术时应遵循“安全可控、合规使用、问题导向、开放创新”这四大基本原则,从开源使用和自发开源两个维度鼓励金融机构将开源技术融入金融业务的数字化转型,通过开源模式助力开放金融的生态创新。
《意见》的出台为金融行业创新发展和开源治理带来诸多启示和思考,为金融机构开源治理工作指明了方向。现阶段,金融机构开源治理的最终目的是掌握开源技术,防范开源风险,提升科技水平。
(四)积极拥抱开源技术,探索光大开源治理
一直以来,光大银行始终高度重视开源软件应用,在关注开源技术发展趋势、积极研究应用新开源技术、助力业务发展的同时,不断提升自身风险管控、技术应用和管控能力,努力探索适用于光大银行业务发展和系统建设的开源治理体系。迄今为止,光大银行开源治理发展历经以下三个阶段:
(1)通用技术产品管理
2012年,随着全面架构管理体系的建设,开源软件纳入光大银行技术产品管理范畴,开启了体系化的生命周期管理之路。开源软件的引入、使用和退出均遵循技术产品的通用管理流程。
(2)社区版开源产品管理
2017年,随着Mysql、Tomcat等基础软件的应用日趋广泛,光大银行开始探讨具有独立运行态的开源软件(统称为“开源产品”)的特殊管理机制,形成了社区版开源产品独有的生命周期管理机制、评估组织和评估流程。
(3)全面开源软件管理
2020年,依据开源软件应用面临的新要求、新挑战,在人行《意见》的指导下,光大银行启动了新形势下开源软件治理体系优化工作,研究形成了更为完善的开源软件治理体系,为强化开源软件规范化的全生命周期管理,不断提升开源软件使用的安全性、合规性和可靠性指明了方向。
光大银行开源软件治理体系简介
开源治理是一项复杂的体系化工程,光大银行立足于本行开源软件应用实践,通过明确开源软件管理范围、设计开源软件分类体系、制定开源软件管理框架,形成完善的开源软件治理体系。具体介绍如下:
(一) 开源软件管理范围
为全面落实人行《意见》中涵盖的开源技术范围,光大银行管理的开源软件为“允许用户直接访问源代码,通过开源许可协议(仅限OSI认可的)将其复制、修改、再发布的权利向公众开放的计算机软件”。
针对未使用OSI认可的开源许可协议的计算机软件,之所以不归入光大银行开源软件管理范围,是因为只有使用OSI认可的开源许可协议的软件才属于严格意义上的开源软件,否则就是“假开源”。在近期Neo4j与ONgDB案件之后,美国法院判决结果更是从法律层面对这一个定义进行了确认。
(二) 开源软件分类体系
开源软件类型繁多,为降低管理复杂度,按照是否具有独立运行态,光大银行将开源软件分为开源产品和开源组件两大类,并参照开源软件的来源及服务保障进行二级分类,建立如下分类体系:
表1 光大银行开源软件分类体系
(三) 开源软件管理框架
光大银行开源软件管理框架包括总体原则、生命周期管理、关键活动和保障机制四个层次,具体如下:
(1)总体原则
光大银行开源软件使用在总体IT架构原则的指导下,总体遵循“严格准入”、“风险可控”、“同步建设”策略,其中严格准入是指在科技项目建设中,要从实际需要出发,结合具体应用场景,遵循严格的评估流程,选择适用于本行的开源软件。风险可控是指要强化开源软件使用中的风险检测和管理, 实现全生命周期内的安全使用。同步建设是指要边使用边同步建设运维支持、核心技术掌握等IT能力,保障生产系统的安全稳定运行。
(2)生命周期管理
按照开源软件从研究引入到投入使用再到最后被淘汰的全过程,光大银行明确开源软件生命周期分为研究、试用、主推、限制使用和限期替换五个阶段。
(3)关键活动
为强化对开源软件的生命周期管理,结合光大银行已有科技治理体系,提炼梳理出了立项管理、招采管理、制品管理、安全扫描、引入评估、标准建设、升级替换等14个开源管理的关键活动,将开源软件使用总体原则分解具化后融入每一项科技管理活动,通过各环节各司其职、有效衔接、互相配合,使开源软件使用的全过程可知、可管理,解决了开源软件使用中诸如“有哪些、从哪来、谁在用,怎么用、谁负责”等普遍且关键问题,为提升开源软件的应用水平和自主可控能力奠定了坚实基础。
(4)保障机制
为推进以上开源软件生命周期管理要求的有效落地,光大银行从组织架构、制度流程、工具支撑、度量评价、宣贯培训五个方面进行保障支持。
组织架构方面,基于本行组织架构明确各部门各处室在开源软件使用及管理中的职责分工,并成立了专门的开源软件评估小组,实现对开源软件引入的全面有效评估。
制度流程方面,正式发布了开源软件管理制度,分别设计了开源产品的组织级评估流程和开源组件的处室级评估流程,在实现全面评估的同时,兼顾了流程执行的灵活性,有效提升了评估效率。
工具支撑方面,建设了光大银行开源治理平台,实现了对开源软件清单管理、台账管理、制品管理、组件分析、漏洞扫描、评估流程等方面的系统化支持,为开源软件治理落地提供了强有力的工具支撑。
度量评价方面,制定了配套的开源软件合规使用评价指标体系,纳入本行整体科技评价体系,实现开源合规的可跟踪、可度量、可评价。
宣贯培训方面,针对人行《意见》、光大银行开源治理体系、开源评估流程等,通过线上线下多种渠道,分多场次开展解读、宣贯和培训,帮助引导相关人员强化开源软件合规使用意识。
总结与思考
综上,通过明确开源软件管理范围、设计开源软件分类体系、制定开源软件管理框架,形成了适用于光大银行的、完善的开源软件治理体系,为强化开源软件规范化的全生命周期管理指明了方向。
光大银行将在“安全可控、合规使用、问题导向、开放创新”四大基本原则的指导下,持续优化完善开源软件治理体系,最终提升开源软件应用水平。然而开源软件治理是整个开源生态面临的普遍问题,仅靠企业单打独斗是行不通的,必须依靠整个产业的力量共同应对。光大银行开源软件治理将高度关注内外部开源治理发展趋势,积极参与金融、通信等行业的开源治理工作,共享开源治理经验,在不断优化自身开源治理体系的同时,为开源生态的健康发展贡献力量。
本文来源:微信公众号中国光大银行,原稿作者:刘玉花,视觉:王朋玉,统筹:祖德光。