金融行业开源生态深度研究报告

金融行业开源生态深度研究报告


2024年2月17日发(作者:)

金融行业

开源生态深度研究报告

2021年11月

前 言

近年来,开源从特定产品形态逐步发展为广泛的协作模式。开源的重要性和价值已经得到了充分的理解与认同。然而,不同行业因自身行业属性和业务场景,其开源生态发展阶段与实践模式都有很大的差别。

金融行业长期以来一直是开源软件的消费者,相比于其他行业用户最早关注开源软件使用治理领域。同时,金融机构面临监管以及信息安全要求,贡献开源并不是金融行业的核心商业模式和技术战略,对外开源探索仍然处于初级阶段。

本报告由上海浦东发展银行与中国信息通信研究院云计算与大数据研究所联合编写,旨在分析开源对金融行业的重要意义,同时解析开源存在哪些风险,并总结一套改善金融行业开源使用治理与对外开源贡献的可行见解。此外,通过调研展示我国金融行业在开源使用治理与对外开源方面的活跃程度,最后给出我国金融行业发展趋势与建议。

目 录

一、开源推动金融行业科技发展,但在使用贡献过程中需关注相关风险 ................................. 1

(一)开源对金融行业科技发展具有重要意义 ...................................................................... 1

(二)开源在使用贡献过程中存在复杂风险 .......................................................................... 5

二、我国金融行业针对开源风险积极建立治理体系,并逐步参与开源生态建设 ................... 11

(一)开源软件在我国金融行业应用广泛,企业重视开源治理工作 ................................ 11

(二)金融机构对外开源意识初步形成,尝试参与开源生态建设 ................................... 15

三、成熟开源治理体系帮助企业跨越风险鸿沟,确保内部开源生态系统健康发展 .............. 17

(一)金融机构对内要做好企业风险治理 ............................................................................ 19

(二)金融机构对外要做好项目治理运营 ........................................................................... 23

四、我国金融行业开源生态发展趋势 ............................................................................................ 26

(一)开源治理从试点到落地 ................................................................................................ 26

(二)开源生态建设从零到一 ................................................................................................ 27

附录一:金融行业开源技术应用社区企业选型调研结果 ........................................................... 29

附录二:金融行业开源技术应用社区开源治理情况调研结果 .................................................. 32

图 目 录

图1金融机构开源软件应用方向 ........................................................................................................ 2

图2金融机构贡献开源项目情况 ....................................................................................................... 4

图3金融机构开源软件用户的风险 ................................................................................................... 6

图4代码库开源比例和安全漏洞比例 ............................................................................................... 7

图8金融机构开源软件/组件使用情况 ........................................................................................... 12

图9金融机构制定开源管理办法文件情况 ..................................................................................... 13

图10金融机构开源管理团队建设情况 ........................................................................................... 14

图11金融机构开源软件来源管理情况 ............................................................................................ 14

图12金融机构开源软件分类分级别管理情况 ............................................................................... 15

图13金融行业开源技术应用社区成员情况 ................................................................................... 17

图5开源软件治理能力成熟度 ......................................................................................................... 18

图6开源治理体系框架 ...................................................................................................................... 19

图7自发开源体系框架图 ................................................................................................................. 23

图14金融机构开源操作系统使用情况 .......................................................................................... 29

图15金融机构容器中间件使用情况............................................................................................... 30

图16金融机构服务网格技术使用情况 .......................................................................................... 30

图17金融机构规则引擎开源框架使用情况 ................................................................................... 31

图18金融机构前端框架使用情况 .................................................................................................... 31

图19金融机构微服务注册中心使用情况 ...................................................................................... 32

图20金融机构开源管理团队建设情况 .......................................................................................... 33

图21金融机构开源软件来源管理情况 .......................................................................................... 33

图22金融机构开源软件管理情况(多选) ................................................................................. 34

图23金融机构开源软件分类分级别管理情况 ............................................................................. 34

图24金融机构开源组件和其他依赖管控情况 ............................................................................. 35

图25金融机构使用开源管理办法文件情况 ................................................................................. 35

一、开源推动金融行业科技发展,但在使用贡献过程中需关注相关风险

近年来,开源技术在金融业各领域得到广泛应用,在推动金融机构科技创新和数字化转型方面发挥着积极作用。在未来全球数字化发展中,开源技术是支撑数字化进程的支柱之一。随着数字化场景爆发,知名分析机构预测未来5年的创新应用总数会多于过去40年,整个IT技术栈将出现巨大的需求缺口,以基础软件为例,传统商业软件缓慢的开发节奏将无法满足新一代的数字化场景需求,那么以开源技术形成创新技术引擎将成为未来数字化创新的常态。合理应用开源技术有助于规范金融机构提高应用水平和自主可控能力,促进金融行业健康可持续发展。

(一) 开源对金融行业科技发展具有重要意义

1. 开源软件成为金融科技的重要组成部分

开源软件已成为国内外金融行业众多领域的技术首选。现如今众多技术领域开源软件逐渐成为主流,企业在构建现代信息系统的过程中已经离不开开源软件。RedHat 2021年对金融行业开源状况进行了调研统计,发布了《The State of Enterprise Open Source in The Financial

Services Industry》。这份报告中的数据显示已经有98%的金融服务企业正在使用企业开源组件。应用方面,在世界上排名前十的金融组织中,以高盛和Rabobank为代表的七家金融组织使用开源中间件

Apache Kafka作为他们的分布式流媒体平台。同时金融服务行业是最大的数据生成者和用户,MySQL和MongoDB等开源数据库在金融行业应用广泛;Databricks作为开源大数据技术Apache Spark的商业化公司,在全球银行、保险和资本市场中拥有500多个客户。操作系统领域,美国和欧盟排名前十的金融机构中有9家在云上使用开源操作系统Ubuntu。根据我国金融行业开源技术应用社区调研结果,我国金融机构中超过90%的企业引入了开源软件。其中,中间件(90.63%)、大数据(87.5%)、数据库(87.5%)与工具(78.13%)是主要的开源软件应用方向。开源软件引入形式包含源代码级引入、制品环境组件级引入、商业解决方案间接引入三种方式。

100.00%90.63%87.50%87.50%90.00%78.13%71.88%68.75%80.00%65.63%70.00%60.00%43.75%50.00%34.38%40.00%28.13%30.00%20.00%10.00%0.00%

数据来源:金融行业开源技术应用社区调查

图1金融机构开源软件应用方向

使用开源软件为企业降本增效。在任何一家金融机构中,大部分应用程序是构成前台、中台和后台的重要基础设施,例如即时通讯工具、规则引擎等,各企业间并无明显差异,因此不能为金融业务直接

提供竞争优势。那么金融机构无论是使用开源软件加速单个应用程序的开发,还是使用开源软件构建企业基础设施,当企业在建设和维护基础设施方面投入的资源越少时,就越能投入更多的资源来开发差异性业务产品,使其在竞争中脱颖而出。开源使用推动金融机构数字化转型。在信息科技快速发展阶段,金融机构业务规模庞大,系统逻辑复杂。开源软件相较于传统闭源软件,采用开放、敏捷、高效的协作开发模式,聚集大量外部优秀开发人员,保障了开源技术的快速迭代与优化,帮助金融机构构建敏捷高效的IT系统、提高生产效率。金融机构更有战略性、广泛地使用开源技术可以在开发效率与成本方面占得先机,从而促进技术和业务创新,有效推动内部数字化转型。

2. 金融对外开源助力金融行业技术革新

全球金融行业自发开源转变趋势明显,金融巨头逐步对外贡献开源项目。据Linux基金会TODO工作组调查显示,近一半(47%)的金融公司表示,他们定期向上游项目社区贡献代码,高于2019年的29%。43%的金融业参与者表示,企业拥有对外开源计划或倡议,高于2019年的23%。华尔街金融巨头高盛2019年将自己投入14年研发的技术平台legend开源共享给其他机构学习使用,同时高盛也发声表示将内部风控交易相关的代码贡献至GitHub。但这并不是金融机构第一次主动开源自研软件,早在2012年,高盛就将Java数据结构实现框架—GS Collection贡献给了Eclipse基金会;同时摩根大通也在早些

时候将区块链技术Quorum开源,通过与世界各地的技术专家合作,推进分布式账本技术的发展。由此可见,为了实现数字技术创新,传统金融行业逐渐从开源软件的使用者向着主动开源者进发。

数据来源:Linux基金会

图2金融机构贡献开源项目情况

开源构建行业事实标准,推动技术进步。在典型的标准制定过程中,需要请求、创建、评估技术规范,并进行大量的修订,如果发现某个特定的标准无法满足技术和市场需求,整个标准的创建过程将重新开始。相比之下,开源代码是从发布者生成一个“有效场景”开始,从而吸引用户广泛采用。由于开源可以节约人力与开发成本,其他企业可以先行试用相关开源软件,若其满足市场和技术要求,则证明该软件可广泛使用,从而通过迭代优化创建一个事实标准。以Kubernetes为例,因该产品功能满足市场需求,且开源促进了软件的传播,使Kubernetes被广泛采用,并成为容器领域的事实标准。同时Kubernetes以“透明开放”为原则,从API到容器中的每一层,都给开发者展示了

可扩展的插件机制,鼓励用户通过代码的方式介入每一个阶段。而这一举措在整个容器社区中孵化出了大量基于Kubernetes API和扩展接口的二次创新项目,例如Istio微服务治理工具、应用部署框架Operator、云原生存储项目ROOK等。

开源贡献助力金融机构节约内部资源,实现差异化发展。开源软件在持续不断的优化迭代过程中,与上游项目中的更改保持同步是很重要的。如果不将相应修改(二次开发)贡献回上游项目,那么在上游项目发布每个新版本之后,使用者将不得不将自身的修改合并到新版本中,开源中涉及到的兼容性、安全性等问题除了浪费企业开发资源外,还会导致恶意方有更多时间来发现和利用相关安全漏洞。同时随着越来越多的企业使用开源软件,金融机构发现实现业务增长的关键点不在于所创建的软件,而在于客户服务的执行和差异化。例如,安联保险集团在2018年宣布将安联业务平台对外开源给其他保险供应商。通过开放平台资源,安联有机会吸引外部更多人才参与平台的建设与优化,使安联有能力将用于构建其业务平台的资源部署到直接为其客户提供价值的产品中,通过向客户提供差异化业务产品来创造价值,提升公司业绩。

(二) 开源在使用贡献过程中存在复杂风险

1. 开源使用风险错综复杂

在金融机构享受开源引入带来的成本降低、技术迭代速度加快等

便利的同时,也面临着安全风险、运维风险、知识产权风险以及金融行业特殊监管要求风险。

图3金融机构开源软件用户的风险

开源风险严重威胁全球金融行业安全。当前安全漏洞风险在金融行业关注度最高,近几年屡次发生的金融机构网络信息安全和信息泄漏事件再次将银行和信息安全推到风口浪尖。2016年黑客利用开源软件暴露的SWIFT系统漏洞入侵多家金融机构,孟加拉国中央银行8100万美元失窃巨款,厄瓜多尔Banco del Austro银行约1200万美金被盗,越南先锋银行也被曝出黑客攻击未遂,俄罗斯中央银行遭黑客攻击3100万美元不翼而飞。据美国新思科技公司发布的《2021年开源安全和风险分析报告》显示,在经过审计的代码库中,其中95%的营销科技代码库存在开源漏洞;医疗保健行业代码库中有67%的代码库存在漏洞;零售和电子商务行业开源代码库中有71%的代码库存在漏洞。更加值得注意的是,97%的金融服务/金融科技行业代码库包含开源,其中超过60%的代码库存在漏洞。同时,报告指出废弃开源组件仍在被广泛使用,高达91%的代码存在开源依赖项,这些开源组件在过去两年内没有任何开发活动。所以说,金融机构需要对开源

软件的安全风险,尤其是安全漏洞风险进行充分的考虑和评估。

100%90%80%70%60%50%40%30%20%10%0%营销科技医疗保健零售/电子商务金融服务/金融科技安全漏洞比例开源比例

数据来源:新思科技

图4代码库开源比例和安全漏洞比例

开源知识产权问题较为复杂且难规避。美国新思科技公司发布的《2021年开源安全和风险分析报告》同时指出,65%的代码包含存在许可证冲突的开源组件,最常涉及的是GNU通用公共许可证;26%的代码库采用没有许可证或定制许可证的开源代码。开源许可证随附于开源软件当中,对开源软件所涉及的知识产权等进行约束,若金融机构没有遵循开源许可证的条款,将面临一定的知识产权及合规风险。OSI认证的许可证已有上百种,每个许可证规定的权利和范围存在一定的差异。即使是最常使用的六种开源许可证(LGPL、GPL、Mozilla、BSD、MIT、Apache),金融机构也可能会面临一定的风险,有的开源许可证有着一定的传染性,如GPL和LGPL;有的开源许可证中并没有明确的专利许可条款,如BSD、GPL2.0和MIT;有的开源许可证之间存在兼容性问题,如MPL1.1与GPL之间存在不兼容性。近年

来,开源许可证的法律纠纷案件越来越多,主要涉及:知识产权、许可证冲突性和兼容性等风险。开源许可证一般涉及较多的专业词汇,需要专业的开源知识产权专家进行解读,否则很难掌握其中相应的责任要求,然而金融机构在这方面的资源较为匮乏,导致无法准确解读开源许可证,进而存在一定法律风险。

金融行业对开源软件的运维支持能力有待进一步加强。开源软件和闭源软件的使用区别之一是后续的软件技术支持和软件维护。为保证软件的正常运行、维护用户的良好体验,若使用开源软件,必须配备专业的软件运维团队对开源软件进行及时的需求响应和日常的维护治理,完整的软件生命周期包含立项、开发、运维、消亡四个阶段。大多数开源软件由于更新周期短,且往往不存在第三方技术支持,采用开源软件金融机构的运维人员需自行掌握开源软件的技术难点,并实时追踪软件的更新和潜在隐患,导致运维工作量大幅增加。相比于互联网行业,金融行业运维人员少,对开源软件的运维经验不足,造成金融机构被迫投入更多的人力物力跟进开源技术发展,以避免因旧版本废弃或安全漏洞等问题导致的开源风险。

金融行业对开源使用有存在强监管要求。近些年来,为解决过于保守的业务模式和IT架构这一现象,金融机构纷纷开始拥抱开源技术,选择更先进的业务管控平台进行创新,但是金融机构有着特殊的行业特性,安全性是金融机构重点要考虑的问题,一旦发生安全漏洞,不仅会造成业务损失,甚至会造成客户信息泄漏和客户财产损失,严

重的会危及人身安全。成熟度是金融机构考虑的另一要素,在采用开源技术时不能一味求新,要充分考虑技术的成熟度,选择的开源技术要充分考虑风险问题,一个成熟的开源软件应该配备详细的开源许可协议、质量担保、技术支持和运维管理等相关文件和服务。适配度要求复杂是金融行业的场景特殊性决定,金融机构在开源技术的选型过程中还要考虑适配度的问题,一般开源技术都是通过在某个特定业务场景抽象出来,不同的业务类型也会衍生出更多的业务应用场景。所以金融机构在前期选型过程中要充分了解自己的业务需求和具体的业务应用场景,选择最为匹配的开源技术。相对于其他行业,金融机构有着更严苛的监管要求,国家也出行了一系列的政策对金融机构的信息安全进行的管控,如《金融行业信息系统信息安全等级保护实施指引》、《网络安全法》对开源使用提出严格要求。

2. 对外开源风险不容忽视

金融行业涉及众多个人和国家财产安全,因此在积极开源的现状下,对外开源项目若未经过严格开源安全和合规审查,会存在数据安全风险、法律风险、社区运营风险等风险。

数据安全风险是个人、企业和国家当前面临最严重的风险之一。包括数据泄露和个人隐私泄露等,一方面研发人员安全意识薄弱,在反馈开源社区或者对外开源项目的过程中未进行严格数据清洗,存在将个人、企业和国家的数据或隐私暴露的风险,包括账号、密码、联

系方式、地址、理财习惯等;另一方面存在恶意人员获取数据和个人隐私并带有目的性的通过开源的方式将信息暴露在公共视野,无意和有意两种情况下的数据和隐私泄露造成的后果大致相同,给金融行业造成的将是惨重后果。

在自发开源过程中,开源项目存在法律风险。涉及开源许可证的使用,包括开源许可证的兼容性和传染型,开发开源项目过程中引入其他开源组件的情况相对普遍,如何处理组件与组件、组件与软件之间的许可证合规、避免因开源许可证引发的法律纠纷是金融行业需要解决的法律问题,金融行业法务支持目前处于缺失或通过购买外部服务寻求法务支持的现状,对于开源过程中的法律问题依靠金融机构本身难以判断、评估和处理。

社区运营需要企业持续投入人力资源。在金融行业过去传统的开发模式中,外包开发和购买供应商提供的商业软件所占金融行业软件开发的比例较高,根据智研咨询发布的《2021-2027年中国金融外包行业市场发展调研及竞争格局预测报告》数据显示:2014-2019年中国金融外包行业市场规模不断扩大,2019年中国金融外包行业市场规模约为896.9亿元,较2018年增加了187.5亿元,因此金融行业的企业内部研发力量和科技公司相比规模较小,开源项目后想要维持正常的社区运营需要投入人员和资金进行问题处理、分支审核与合并、新版本发布、文档更新、社区活动举办等,对金融行业来说如何保障社区运营与现有业务研发并行存在压力,另外金融行业传统开发模式

中对软件版本迭代速度较慢,倾向于使用稳定版本,在运营开源社区时开源项目或受金融行业传统迭代习惯影响造成开源项目迭代速度缓慢、技术更新不及时的问题。

二、我国金融行业针对开源风险积极建立治理体系,并逐步参与开源生态建设

近日,人民银行办公厅、中央网信办秘书局、工业和信息化部办公厅、银保监会办公厅、证监会办公厅联合发布《关于规范金融业开源技术应用与发展的意见》(以下简称为《意见》)。《意见》鼓励金融机构一是将开源技术应用纳入自身信息化发展规划,建立健全开源技术应用管理制度体系等;二是鼓励金融机构积极参与开源生态建设,加强与产学研交流合作力度,加入开源社会组织等;三是鼓励完善金融机构开源技术应用指导政策,探索建立开源技术公共服务平台,加强开源技术及应用标准化建设等。依照相关指导意见,金融机构拥抱开源可以分为两个层面,分别为“开源使用”和“对外开源”。开源使用目标是保证我国金融行业开源技术的持续稳定使用。对外开源目标是汲取先进技术,开源创新技术,培育适合金融场景的开源产业链。

以下中国信通院对金融行业开源技术应用社区(FINOC)45家金融机构开源软件应用治理情况进行调研,全方位客观呈现我国金融机构“开源使用”与“对外开源”发展情况。

(一)开源软件在我国金融行业应用广泛,企业重视

开源治理工作

金融机构开源软件使用意向强烈。随着金融机构数字化转型的强烈需求,金融机构纷纷加入使用开源软件的队伍当中。超八成金融机构有意向使用开源软件企业级解决方案替代商业闭源软件,表明开源软件已在金融行业深入使用,并取得企业用户信任。

金融机构目前已广泛使用开源软件。近四成金融机构使用超过1000个开源软件/组件,相比前几年调研数据,金融机构开源软件使用量大幅增加。目前金融机构中使用的主流开源技术包括,CentOS开源操作系统、Redis、Kafka中间件、K8S容器编排、Drools开源框架等1。

60.53%26.32%13.16%100-1000100以上

数据来源:金融行业开源技术应用社区调查

图5金融机构开源软件/组件使用情况

我国金融机构逐步开展开源风险治理工作。92.11%的金融机构涉及企业内部开源治理工作;超六成金融机构已制定企业级开源治理流

1 具体数据可查看附录

程与管理文件,具备明确的开源软件治理人员责任划分;三成金融机构设置独立开源管理团队实施开源管理工作。在开源软件的来源管控上也较为严格,超六成金融机构要求企业仅能使用内部提供的开源软件,不得自行下载和使用任何不在内部清单范围内的开源软件,而不做管控的金融机构占比仅为13.16%。由此可见我国金融机构重视企业开源治理工作,并朝着专业化方向发展;切实落实开源管理工作的制度制定和人员投入,初步形成一套针对开源软件的管控体系,设置相关负责人对代码仓库和制品仓库的内容进行全生命周期管控。

36.84%63.16%无相关文件拥有开源管理办法文件

数据来源:金融行业开源技术应用社区调查

图6金融机构制定开源管理办法文件情况

7.89%18.42%10.53%63.16%无开源治理团队无专职开源管理团队,全部为兼职有开源管理团队,1人专职,5-10人兼职有开源管理团队,2-3人专职,10-20人兼职

数据来源:金融行业开源技术应用社区调查

图7金融机构开源管理团队建设情况

13.16%23.68%63.16%仅制定基础框架、平台类开源软件,其他类别不管控仅使用提供的开源软件,不得自行下载和使用任何不在范围内的开源软件项目按需自行使用,未做任意事前管控

数据来源:金融行业开源技术应用社区调查

图8金融机构开源软件来源管理情况

金融机构针对开源组件仍缺乏一定的方法论和管理经验。金融机构目前主要从管理机制、风险管控、介质来源等方面开展开源治理工作,但超4成金融机构只针对开源软件进行治理,只有两成金融机构开展开源软件、开源组件与开源工具的全量化管理。开源组件数量庞大,且变动频繁无法进行一对一管控,这就促使金融机构必须采取不

同的策略去解决软件和组件的治理问题;随着今后开源软件与组件的大量应用,金融机构仍需持续耕耘开源治理领域,确保开源组件的安全合规使用。

24.21%46.84%28.95%开源软件开源软件+组件开源软件+组件+工具

数据来源:金融行业开源技术应用社区调查

图9金融机构开源软件分类分级别管理情况

(二)金融机构对外开源意识初步形成,尝试参与开源生态建设

我国金融机构积极参与第三方开源项目与社区。浦发银行加入云原生计算基金会(CNCF),致力于与云原生生态系统的合作,以解决金融机构在使用云原生平台时面临的安全、合规性和监管等相关问题。招商银行联合浪潮等单位发起成立开源原子开源基金会区块链开源工作组,在基金会指导下进行区块链相关事务的专项管理,推动XuperChain完成了适配BSN区块链网络服务底层,还将全新升级的XuperChain内核XuperCore作为区块链开源工作组的内核技术,为百度文库、百信银行、浦发银行、北京互联网法院等20余家大型机构及平台,提供底层技术服务与区块链解决方案。工商银行与华为云、

小红书、中国一汽等8家企业联合发起Karmada项目,沉淀了各企业在多云管理领域的丰富积累,为开发者提供详实有效的实践指导与帮助。金融机构通过参与第三方开源项目解决行业共性问题,提升了开源技术整体应用水平。

金融行业逐渐产生对外开源意识,向外部开源优质场景。浦发银行积极拥抱开源,对外开放了Piraeus项目;并于2021年3月对外开源了Harrier项目,提供了自动化批量任务调度和管理平台,具备跨平台,跨地域,高可用等特点。微众银行在2019年2月对外开放自研项目FATE,为行业内提供了工业级联邦学习框架;2021年2月,微众银行开源项目EventMesh成功进入Apache孵化器,是微众银行践行金融科技全面开源道路上的重要里程碑。中信银行致力于金融科技创新,由人民银行统筹推动,于2020年对外开放了生僻字项目,解决了民众姓名中包含生僻字问题造成的社会难题。从上可以看出,我国金融机构对外开源意识已逐步显现,随着我国金融开源生态不断发展完善,越来越多的金融机构将会参与到开源贡献中,最终通过开源可信的协作模式形成金融开放生态,实现优势互补、互利共赢、共同发展。

我国金融产业开源组织形成,多方协作共同探索产业开放生态。2018年10月12日,中国信息通信研究院联合浦发银行、农业银行等近20家金融机构及科技公司共同成立我国首个金融行业开源技术应用社区。目前社区成员不断发展壮大,包括45家金融机构与8家

科技公司。通过建立社区,帮助金融机构运营有开源需求的项目,同时进行会议宣传推广、产品标准制定、上下游一致性评估、人才培养认证等方面工作,推动国内金融开源健康发展。

数据来源:金融行业开源技术应用社区

图10金融行业开源技术应用社区成员情况

三、成熟开源治理体系帮助企业跨越风险鸿沟,确保内部开源生态系统健康发展

金融机构在享受开源带来的红利时,也面临着开源带来的复杂风险,我国金融行业想要打造全产业链共享的开源生态,跨过“开源风险鸿沟”,需针对“开源使用”与“对外开源”建立成熟的开源治理体系。

对于传统行业来说,开源软件具有一定的门槛,因为开源创新拥有自己的方法论,不遵循传统的业务开发流程。它最大的区别之一是开源开发是协作的,而传统的软件和业务实践是专有的和封闭

的。对于许多企业来说,在使用开源时,整体开发流程与业务模式上的改变并不容易。那么在这种情况下通过创建一个企业级的开源管理办公室,可以将开源与公司的长期业务战略直接联系起来。开源管理办公室可以被设计成公司开源使用和对外开源的中心。通过了解公司的开源生态系统,开源管理办公室可以最大化公司的投资回报率,并降低使用,贡献和发布开源软件的风险。确保公司内部开源生态系统的健康发展将保障公司整体业务的创新与可持续性增长。

同时为了解决企业内部开源治理的痛点问题,中国信息通信研究院制订《开源软件治理能力成熟度》标准,规范企业在组织机制、管理制度、风险管理、全生命周期管理等方面应遵循的流程及规范。

数据来源:中国信息通信研究院

图11开源软件治理能力成熟度

(一)金融机构对内要做好企业风险治理

为了更好的规避开源软件相关风险问题,我国金融行业在使用开源软件时需要构建开源治理框架,规范金融机构在组织机制、管理制度、风险管理、全生命周期管理和工具化管理等方面应遵循的流程及规范,保证金融机构安全、高效的使用开源软件。

数据来源:浦发银行

图12开源治理体系框架

金融机构需搭建开源治理组织架构,明确开源治理职责分工。设立开源治理团队或开源办公室,从管理层面统筹规划、推动和实施企业开源治理工作。例如,浦发银行已在企业内部设立开源治理团队,目前由虚拟团队组成。在开源治理过程中主要涉及到的团队角色和分工为:开源管理团队负责制定和执行开源软件应用管理规则及开源软件日常管理工作;开源专业团队负责对开源软件提供运维支持,保证开源软件正常使用;开源安全团队负责对开源软件代码进行审查,对

检测出的安全漏洞能及时反馈至相关使用人员进行处置,避免造成严重的安全风险问题;开源法务团队负责开源软件引入和使用过程中所涉及的知识产权等法律问题,对开源许可证进行扫描和审查,并能给相关使用人员进行培训,提供法务支持,给出专业的法律建议。

金融机构应制定开源软件管理制度量化开源软件管理指标及风险管理机制。对开源软件的引入、使用、更新、退出的全流程管理提出明确规定,在制度中明确要求对开源软件进行分级分类、统一化管理,明确开源软件全生命周期中应识别和处置的风险点。设置专门人员负责登记和追踪开源软件中识别出的风险,并协调相关负责人对已经发现的风险进行处置;同时定期制定企业级的开源软件版本规划,并在版本规划中明确强制更新升级版本和推荐升级版本;统一开源软件信息记录和风险管控,及时识别可能存在的风险点并做相应处置和记录。外包开发和购买商业解决方案在金融机构业务系统构建中占据相当大比重,因此这部分开源软件的引入同样需要金融机构进行相应管理措施,需要制定针对外包商和供应商的开源治理制度,同时要求外包商和供应商提供开源组件清单和漏洞清单等。

金融机构应形成一套评估评价机制。从多维度对开源软件进行评估,并结合金融行业特性,选择满足企业内部的业务和技术需求的开源软件。主要从开源项目活跃度、开源软件技术、开源软件安全和开源软件运维支持等方面进行评估,其中开源项目活跃度是金融机构在考察开源项目时最重要的一个指标,一定程度上反映了开源项目的当

前状态及发展趋势。目前国内外也形成了一些开源项目活跃度的评估算法,例如浦发银行在建设适合自身的开源技术治理体系过程中,从多维度评价视角,探索了一套开源项目活跃度模型,并将该评估模型对外发布,用于指导开源软件在金融行业的引入和选型。

开源软件全生命周期管理应涵盖全部过程环节。在开源软件引入环节,金融机构应定期评估机构现存的开源软件,掌握开源软件存量情况,对发现的问题及时处置,包括但不限于开源软件依赖信息、开源版本信息、开源许可证信息,同时,金融机构还应评估引入软件的技术需求,保证开源技术满足业务和技术需求,包括但不限于同类型软件对比、行业认可度评估、商业支持度评估等;在技术使用环节,金融机构能够规范技术人员完成开源软件相关配套文档的编制工作,构建源码仓库和制品仓库对开源代码进行统一管理,并根据开源代码实际应用情况建立与开源社区必要的反馈和沟通机制;同时,金融机构需要建立开源软件运维管理的负责机制,通过建立运维知识库和专家支持机制保证技术运维支持,提高运维管理质量;在定期健康评估环节,金融机构能够持续跟踪企业内正在使用的开源软件的社区情况、版本更新情况及开源许可证情况,定期对相关信息进行分析、评估和处置;在软件退出环节,金融行业需要依据制度对企业内部开源软件的退出操作进行管理,根据实际情况定期制定开源软件退出规划,能够根据开源软件退出流程进行及时处理,并按照规划进行迁移、替换、退出等操作;在开源软

件存量盘点环节,金融机构可通过工具介入获取存量信息,对于已经存在于企业内部的开源软件需要进行定期盘点,登记开源软件的名称、许可证、漏洞等信息,保证信息的准确性、存量盘点和存量收拢计划的效率。

支撑平台建立有效保障金融机构开源治理工作高效运行。金融机构应建设一个开源治理支撑平台,整合日常开源治理管理工作,提升管理人员管理效率和开源软件管理质量,为整个开源治理工作高效运行提供技术保障。目前,浦发银行成功研发一套开源治理平台,在内部取得了良好的治理效果,并将该平台在金融行业开源技术应用社区中进行了开源,社区成员均可参与协作和使用。该平台可以实现开源软件全流程、一体化管理,包括开源治理流程化管理、社区信息抓取、漏洞跟踪、开源软件制品库等多项功能。流程化管理,通过平台对开源软件的引入、使用、漏洞追踪、退出或更新等操作进行线上化管理,形成开源软件管理闭环,提高管理效率;社区信息抓取,金融机构可以通过该平台展示开源软件在社区内的相关数据,如:issue解决速度、社区参与度、社区活跃度等,形成可视化界面,帮助企业对开源软件的发展趋势和成熟度进行分析;漏洞跟踪,通过平台建立开源治理团队与项目组之间的沟通渠道,能够在发现安全漏洞时,及时将信息反馈给相关负责人进行处置及登记;开源软件制品库,通过平台建立开源软件制品库,从技术上对开源软件来源进行控制,保证开源软件可控可溯,同时,该制品库直接服务于项目开发,提高开发人员效

率。

(二)金融机构对外要做好项目治理运营

随着金融行业自发开源需求不断增加,根据开源治理的生命周期可以分为“开源前”、“开源中”与“开源后”三个阶段。

数据来源:中国信通院

图13自发开源体系框架图

1)开源前,审核检查

明确开源目标。金融机构内部众多业务场景具有重要价值,在进行自发开源时,需找出那些不是企业“核心机密”,却具有实际业务价值和技术发展潜力的软件;同时企业需确保软件不会过于复杂,能够吸引其他公司进行贡献。在开源前需要明确开源项目的动机,是为了解决金融行业痛点问题,还是通过开源协作实现软件迭代与技术更新;同时金融行业应对开源后的社区参与方、利益相关者与商业模式进行规划。

开源事前审核检查。对将开源的代码、文档等执行业务审核、代码审核、知识产权审核、安全审核等工作,全面排查系统中存在的安全漏洞、商业机密的泄露、第三方专利权的侵犯等情况;对扫描出的开源安全漏洞与许可证违规情况进行及时评估与处理;同时企业需要对开源代码进行数据清洗,保障开源的代码中不存在个人隐私信息和其他私密数据,确保相关行为满足行业监管需求。

梳理开源配套内容。对讲开源的程序代码与技术文档进行梳理,形成完整的材料清单,同时确定开源项目的名称、logo、知识产权所属等基础信息。

2)开源中,筹备评估

开源基础设施选择。选择合适的代码托管平台。如今主流的开源代码托管平台包括GitHub、Gitlab、Gitee等,金融机构可以从平台知名度、用户数量、开源目标等维度进行考量;企业如果想要寻求行业协作可选择具有行业属性的代码托管平台,如果想要寻求广泛协作、共建开源生态,可选择影响力更大、通用性的开源代码托管平台。选择开源许可证。根据项目的开源动机、开源声明、充分考虑知识产权保护和开源项目发展定位等问题,选择合适的开源许可证;对于商业模式无严格要求的开源项目可选择宽松型开源许可证,不希望开源项目用作商用的可选择严格版开源许可证。选择开源基金会托管。由于金融行业开源发展相对缓慢,所以企业在项目开源时可以考虑将项目贡献给成熟的开源基金会,依托基金会成熟的治理模式与生态圈,可

使开源项目实现快速发展。

开源配套文档准备。开源配套文档的完备性对于开源项目的推广和开源社区的活跃度至关重要,发起者需要制定社区行为准则规范社区参与者行为,制定贡献者协议明确贡献方式和贡献者的权利与义务,编写项目说明有利于降低项目解读难度,吸引更多用户和贡献者,编写开发者指南有利于贡献者快速熟悉项目开发模式,提高贡献速度。

3)开源后,治理运营

形成社区组织结构与流程规范。社区核心组织可以区分为战略侧与技术侧;战略侧负责社区治理运营、规章度量与项目发展方向等,技术侧负责技术管理与指导、代码架构等。社区流程规范可包括组织架构的分工与职责、事务决策与投票机制、组织之间的办公交流方式、会议举办形式和新成员选拔与退出机制等。

社区治理与运营。选择合适的社区治理模式有利于促进贡献者的协作,保持社区的正常运行,包括建立参与者沟通渠道,创建辅导与激励机制等。开源项目发起企业需要对开源社区进行持续监测,涉及开源项目版本更新规范,定期对开源项目进行安全合规检查,对开源漏洞进行持续监测和感知并进行及时修复。同时通过多种社区运营工作持续吸纳开发者,提高社区活跃度,加快项目迭代速度和技术更新速度,如定期举办技术研讨会,进行项目布道,通过各渠道媒体进行社区宣传,对重点客户进行推进,建设对应的培训认证体系等。

四、我国金融行业开源生态发展趋势

随着开源风险问题与开放协作需求的日益突出,金融行业政策层面将逐步规范金融机构使用开源软件,建立健全管理制度,提高开源管理水平,树立开源风险意识,防范开源软件版权隐患,同时鼓励金融机构对外开源,构建健康、可信的金融开源生态。

(一)开源治理从试点到落地

从使用管理到对外开源管理。随着国内企业对开源的认知逐渐加深,开源安全以及开源知识产权的风险问题逐步清晰。金融机构对开源使用治理的接受度普遍提升,同时逐步关注对外开源治理,梳理对外开源的检查流程,防止商业泄密以及开源合规等风险问题的发生。

从统一管理到逐层管理。经过近几年对开源治理落地模式的摸索,开源治理实现路径逐渐清晰,金融机构大多涉及上千种开源组件的引入,“一刀切”的开源管理模式造成开源管理团队审核压力过大,金融机构需要建立分级分类管理机制。既需要总行级别的开源管理规范,也需要项目组级别的开源软件登记细则,将统一的开源软件管理规则进行分层落地。

从新引入管理到存量管理。金融机构开源治理初期多从开源新引入流程开始,落地见效快,投入成本低,同时快速打通整套开源治理流程。而针对金融机构涉及大量存量开源软件治理问题,近几年金融机构逐步开始梳理存量开源软件,但难以严格按照开源软件新引入流

程管理存量开源软件,金融机构大多在做好梳理和跟踪的情况下,逐步在版本更新的合适时机进行收口管理。

从表单管理到专业工具支持。开源治理初期关键的动作是梳理开源软件清单,初期可以使用表单手工上报的方式进行开源软件清单梳理,但开源软件存在层层依赖问题,仅靠手工填报很难准确掌握完整清单。近两年,开源组成识别类工具在金融行业开源治理的应用逐步加深,可单独应用于安全部门,也可集成于开发环境,借助专业工具推动开源治理自动化发展。

(二)开源生态建设从零到一

新技术领域最先探索开源。基础软件领域多带有成熟的商业支持,金融机构更倾向于选择稳定的商业支持。对于新技术领域,商业支持不成熟,同时金融机构在应用规模以及高并发等方面面临的场景复杂度高,金融机构借助自身场景及研发优势,在云原生、人工智能等领域最先探索开源。一方面解决自身应用问题,同时侧面带动科技输出。

从互联网金融到传统金融公司。金融机构面临较高的安全合规要求,很难在初期大范围对外开源探索。微众银行等互联网银行是国内最早一批对外开源金融机构,其开源项目众多,不乏Apache基金会项目,浦发银行、工行等金融机构在建立开源治理体系之后,开始逐步尝试对外开源。开源软件落地程度能够有效验证技术及生态成熟度,同时产出的收益能让产业链有信心、有动力持续投入,促进开源产业

发展。所以我国应大力推动金融头部企业自发开源,从而通过分享行业优秀场景与最佳实践推动中小金融机构投入开源。

从联合对外开源到独立对外开源。金融机构对开源生态的熟悉程度不如科技公司,所以在对外开源初期,金融机构多与科技公司共同探索对外开源,近两年不乏金融机构联合科技公司的开源场景。然而金融机构本身研发积累雄厚,熟悉对外开源流程后,开始逐步探索独立对外开源。

从第三方托管到公司主导。金融机构开源初期,对于开源法务以及开源运营等方面储备不充足,多寻求开源基金会以及第三方机构知识产权托管合作,鼓励金融机构、科技公司、科研院校之间开展开源项目合作,比如CNCF基金会、原子基金会以及其他第三方开源组织等。但并非所有的项目都适合用开源基金会托管,对于应用领域的开源项目,金融机构逐步探索保留知识产权,同时推动项目在金融机构间小范围合作,通过贡献代码解决行业共性问题,提升金融行业开源技术整体应用与技术创新速度。

附录一:金融行业开源技术应用社区企业选型调研结果

在开源操作系统领域,CentOS成金融机构使用的主流开源操作系统。据FINOC调研结果,78.95%的金融机构已经使用CentOS操作系统,26.32%的机构使用Ubuntu操作系统,openEuler(15.79%)和openSUSE(10.53%)也逐步被金融机构使用。

90.00%80.00%70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%78.95%26.32%15.79%15.79%10.53%7.89%其他centosUbuntuopen Euler未使用openSUSE比例

数据来源:金融行业开源技术应用社区调查

图14金融机构开源操作系统使用情况

在容器编排工具方面,多数金融机构选择K8S。据FINOC调研结果,K8S的使用占比达到71.05%;在容器中间件方面,Redis(81.58%)、Kafka(78.95%)和ES(68.42%)成为主流。

90.00%80.00%70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%RedisKafkaES比例RocketMQ其他

数据来源:金融行业开源技术应用社区调查

图15金融机构容器中间件使用情况

在服务网格技术方面,consul使用较多。据FINOC调研结果,部分金融机构逐步采用consul(26.32%)和Istio(21.05%)等开源技术。

60.00%50.00%40.00%30.00%20.00%10.00%0.00%Istioconsul比例其他

数据来源:金融行业开源技术应用社区调查

图16金融机构服务网格技术使用情况

在规则引擎开源框架使用方面,Drools占比超三成。据FINOC调研结果,有超过三成(34.21%)的金融机构采用Drools开源框架。

70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%63.16%34.21%2.63%Drools自研比例其他

数据来源:金融行业开源技术应用社区调查

图17金融机构规则引擎开源框架使用情况

在前端框架方面,使用的金融机构占比更高。据FINOC调研结果,使用的金融机构占比63.16%,远超其他框架。和React的使用率分别为27.89%与8.95%。

70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%63.16%27.89%8.95%lar js比例React

数据来源:金融行业开源技术应用社区调查

图18金融机构前端框架使用情况

在微服务注册中心方面,超三成金融机构选择ZooKeeper。据FINOC调研结果,有34.21%的金融机构选择ZooKeeper用于微服务注册中心,有26.32%的机构选择Eureka,其他如Nacos(15.79%)和Consul(15.79%)也被部分机构接受。

40.00%35.00%30.00%25.00%20.00%15.00%10.00%5.00%0.00%34.21%26.32%15.79%15.79%ZooKeeperEureka比例NacosConsul

数据来源:金融行业开源技术应用社区调查

图19金融机构微服务注册中心使用情况

附录二:金融行业开源技术应用社区开源治理情况调研结果

我国金融机构逐步开展开源风险治理工作。超七成金融机构建立开源治理流程。据FINOC调研结果,63.16%的金融机构无专职开源管理团队,管理人员为兼职;10.53%的金融机构存在1人专职,5-10人兼职的开源管理团队,18.42%的金融机构存在2-3人专职,10-20人兼职的开源管理团队,与以前相比金融机构朝着开源治理专业化方向发展。

7.89%18.42%10.53%63.16%无开源治理团队无专职开源管理团队,全部为兼职有开源管理团队,1人专职,5-10人兼职有开源管理团队,2-3人专职,10-20人兼职

数据来源:金融行业开源技术应用社区调查

图20金融机构开源管理团队建设情况

金融机构对开源软件来源有严格管控要求。据FINOC调研结果,63.16%的金融机构要求企业内部仅能使用提供的开源软件,不得自行下载和使用任何不在范围内的开源软件,不做管控的金融机构占比仅为13.16%。

13.16%23.68%63.16%仅制定基础框架、平台类开源软件,其他类别不管控仅使用提供的开源软件,不得自行下载和使用任何不在范围内的开源软件项目按需自行使用,未做任意事前管控

数据来源:金融行业开源技术应用社区调查

图21金融机构开源软件来源管理情况

多数金融机构采取“谁引入谁负责”的开源软件管理机制。据FINOC调研结果,85.79%的金融机构采取“谁引入谁负责”的管理机

制,39.47%的金融机构设立专门的技术委员会来对开源软件进行管理,而按部门职责(31.58%)进行开源软件管理的金融机构也不占少数。

100.00%90.00%80.00%70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%85.79%39.47%31.58%13.16%比例

数据来源:金融行业开源技术应用社区调查

图22金融机构开源软件管理情况(多选)

金融机构注重开源软件管理。据FINOC调研结果,有46.84%的金融机构只进行开源软件的管理;有28.95%的金融机构管理颗粒度达到开源组件;有24.21%的金融机构还进行开源工具的管理。

24.21%28.95%46.84%开源软件开源软件+组件开源软件+组件+工具

数据来源:金融行业开源技术应用社区调查

图23金融机构开源软件分类分级别管理情况

近半数金融机构使用开源治理工具进行开源组件和其他依赖管控。据FINOC调研结果,有42.11%的金融机构利用工具扫描安全等

级来进行开源组件管控,有13.16%的金融机构利用工具扫描安全分数来进行开源组件的管控,此外,21.05%的金融机构利用黑名单来设置开源组件的禁用。

23.68%21.05%42.11%13.16%根据工具扫描安全等级根据工具扫描安全分数设置黑名单禁用设置白名单例外

数据来源:金融行业开源技术应用社区调查

图24金融机构开源组件和其他依赖管控情况

超六成金融机构制定专门开源管理办法文件。据FINOC调研结果,63.16%的金融机构拥有开源管理办法文件,而无相关文件的金融机构占比36.84%。

36.84%63.16%无相关文件拥有开源管理办法文件

数据来源:金融行业开源技术应用社区调查

图25金融机构使用开源管理办法文件情况


发布者:admin,转转请注明出处:http://www.yc00.com/web/1708125405a1541121.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信