免费试用
作者:韩锋
观点洞察
2022-08-25

本文转载于公众号《中国金融电脑》,作者韩锋。

近年来,伴随数字经济的蓬勃发展,企业对IT基础设施建设的关注度越来越高,尤其在金融科技领域,数据库不仅是三大基础软件之一,更是各类金融交易和数据的主要载体。本文结合数据库技术发展趋势与金融行业特点,尝试分析了金融业数据库自主创新的可选路径与可行方法。

一、金融业数据库自主创新的趋势背景

谈及“自主创新”,笔者对这一概念的理解大致可归结为两点:一是在基础软件的供应链安全方面,企业应尽可能采用主权范围内厂商具有完全知识产权掌控力的软件,避免受到某些特定产品或服务体系的供应限制。二是在应用安全方面,企业应能够按照自身的需求、想法,在不违反授权的情况下,自由地修改和使用软件。实际上,无论是商业产品还是开源项目,所谓供应链安全都只与核心技术的归属有关。值得注意的是,这里的核心技术并不单纯是指源代码,源代码只是技术的载体,可一旦脱离了技术主导者,即便拥有源代码也无法实现可持续发展。因此,从某种意义上讲,自主创新是为了从根本上解决技术供应链的安全和可持续发展问题。

举例来说,作为数据密集型行业,金融业务的开展高度依赖数据的产生与流转,并由此对交易与数据的承载者——数据库提出了非常高的要求,如数据库的稳定性、可靠性等。同时,因金融数据通常具有高价值,金融业一直是被重点监管的领域,而且对金融数据安全也提出了极高的要求。以银行业金融机构为例,伴随手机银行、数字银行等新业务形态的出现,银行对底层基础设施提出了新的要求,并纷纷以此来促进金融服务方式实现代际更替。其中,数据库作为底层基础设施的重要组成部分,其技术发展路线一直是金融业关注的热点话题,尤其是分布式、HTAP混合负载、多模、智能应用等能力备受关注,并对银行用好数据库乃至真正掌控这一技术栈的发展趋势提出了更高要求。

除上述因素外,金融监管层面同样也积极鼓励金融业推进科技自主创新。2022年1月,银保监会发布的《关于银行业保险业数字化转型的指导意见》提出,要加快数据库、中间件等通用软件技术服务能力建设,支持大规模企业级技术应用;坚持关键技术自主可控原则,对业务经营发展有重大影响的关键平台、关键组件以及关键信息基础设施要形成自主研发能力,降低外部依赖、避免单一依赖。而在此之前,金融监管部门已经在战略层面积极倡导金融机构通过开源技术促进自主创新能力建设,如2021年出台的《关于规范金融业开源技术应用与发展的意见》指出,要将开源技术作为金融机构“提高核心自主创新能力的重要手段”,鼓励金融机构广泛应用开源技术,同时还强调要“加强开源技术研究储备,掌握开源技术核心”,最终“依托金融业丰富的业务场景促进开源技术迭代升级”。

二、以开源技术为核心的自主创新路径

对数据库产品而言,其作为一种“需要被用出来”的基础软件,通过开源模式可以带来三方面助力:一是打造规模化场景,即通过开源技术实现快速传播和部署;二是形成透明的开发协作机制,即通过开源生态的不断迭代、打磨,形成新一代数据生态;三是汇聚创新智慧,即通过让更多优秀的开发者参与进来,确保数据库技术能够与全球领先技术保持同步。

除上述三点外,开源软件相比闭源软件还具有很多其他优势,如成本控制、自由定制、技术支持、安全性以及避免供应商锁定等,而知名的开源数据库产品MySQL、PostgreSQL长期稳居流行数据库前五名,正是最好的佐证。在社区建设方面,中国的开源开发者已经成为仅次于美国的第二大开发者群体,并有望在未来十年内位居第一,因此从规模角度来看,开源技术或将是中国基础软件实现自主创新的重要路径之一。然而,由于历史原因,部分企业在对开源软件的认知和使用上均存在某些误区,笔者将对其逐一进行解析。

开源软件与自主创新。从某种角度讲,开源技术或是当前实现自主创新的最佳路径,但使用开源软件并不等于实现自主创新。开源的本质在于开放、共享、协同,而且其作为一种创新协作模式,并不仅限于开源代码的软件开发,还包括更为广泛的开放技术领域及协同创新的理念和机制。尤为重要的是,企业使用开源软件并不代表具备了自主开源的能力,而厂商使用开源技术去构建商业产品,也不能说是完全的自主创新。

开源技术与核心场景。“开源不是主流,只会用在非核心系统”是很多企业因历史认知形成的固有印象,其本质则是对开源软件“不可控”的一种担心。但从软件本身来讲,开源产品和商业产品并没有本质区别,或者说开源技术代表了一种新型的生产协作关系,旨在大幅提高软件供给侧交付效率。笔者认为,企业可通过加大技术投入力度与积极参与开源社区建设来解决应用相关问题,并借助开源软件的商业化服务来规避潜在风险。

开源软件与成本投入。开源软件通常没有许可或使用费用,但不代表其没有使用成本。不同于闭源软件的使用成本取决于软件规模,开源软件的实际成本要涉及多个方面。例如,相较于成熟的商业产品,开源软件在前期的选型、评估阶段需要企业投入更多的精力,而且详细了解开源产品也需要耗费一定的时间;此外,在后续的使用、维护过程中,也需要企业逐步培养更多懂得开源软件的开发与维护人才,而这对很多企业来说本身就是一个门槛。换言之,能使用和驾驭开源软件的企业,往往拥有更为强大的创新能力和人才积累。

开源软件与稳定性。开源软件的背后通常会有一个完整的技术生态,可以通过开源社区来完成代码审核,进而快速发现和纠正错误,与之相比,闭源软件则是由软件开发商完成这一过程,往往耗时很长。此外,通过开源方式,用户可更容易地发现和定位Bug,并通过开源协作机制更早地解决它们,因此开源软件的稳定性同样具有保障。

开源软件与安全管理。不同于传统闭源软件,开源软件项目通常由多人协作完成,存在代码量庞大、功能繁杂等特点,且依赖和引用关系复杂,一旦出现安全问题,上述特点对安全漏洞的放大作用非常显著,修复过程往往要耗费大量资源。但是从广义上讲,任何软件都存在固有Bug,且闭源软件因其不透明,Bug甚至会有更大的致命性,所以有商业支持的开源软件的稳定性大多明显好于闭源软件。换言之,企业如能够做好版本管理、权限分配、信息防护、安全策略等方面的细致工作,开源软件的安全性同样值得信赖。

开源软件与供应链安全。伴随着“开源无国界”的理想主义受到现实的挑战,开源软件的供应链安全问题被业界广泛关注。例如,按照某些国家的出口管制条例,目前所有“公开可获得”的源代码(不含加密软件以及带加密功能的其他开源软件)都不受出口管制,但如果一个开源项目或开源组织声明遵从该国出口管制条例,而此时条例又将一些核心基础软件加入管制范围,那么,大量核心开源项目将受到出口管制。为避免上述风险,在核心领域掌握核心技术即显得尤为重要,而且从长远来看,要消除开源背后深层次的Bug,还需要从核心技术自主创新入手,构建安全可靠的底层信息技术体系,以切实保障关键信息技术设施的安全和完善。

三、金融业数据库发展之开源路线解读

开源技术助力数据库自主创新。现阶段,如果要在数据库领域实现“弯道超车”,开源技术无疑是一条真正的可持续发展路径。根据第三方机构DB-Engines的调研结果,2021年全球开源数据库的部署数量已经超过商业数据库,MySQL、PostgreSQL开源数据库是排名前五的两大群体,也是两个最大的公有云数据库服务群体。

在金融行业,传统的集中式数据库技术高度依赖于厂商服务,并在一定程度上存在信息安全风险,且IT团队也缺乏自主创新能力。为改善这一局面,以云原生数据库、NewSQL、分布式数据库等为代表的创新型数据库产品进入人们的视野,并经过多年打磨,形成了可持续发展的产业生态,在银行、保险、证券等行业打造了许多成功案例,数据库的稳定性与可靠性得到充分验证,而相关数据库厂商也成为推动自主创新的主力军。

从全球趋势来看,以分布式、云原生、HTAP混合负载、AI&DB、多模等为代表的新技术正在数据库领域取得突破性进展。其中,中国作为全球数字经济最为活跃、数据规模最为庞大、数据场景最为多元的市场,为数据库技术发展提供了肥沃的土壤。但与此同时,企业在践行自主创新过程中,也应清醒地认识到“自主创新不是替换别人的过去,而是要创造自己可持续的未来”,换言之,自主创新并非简单地“产品换产品”,而是要通过自主掌握核心技术,做到持续可控。

依赖“引用开源”存在较大风险。作为最为流行的两款开源数据库,MySQL和PostgreSQL拥有着庞大的使用基础,且有很多国内厂商也选择基于两者进行产品构建,或者采用兼容这两款数据库的方式,以充分利用其长期积累的生态效应。但从一些业内人士的反馈来看,两款数据库的上游生态社区均不同程度存在供应链安全隐患,有些短期内即可能出现生态停滞问题,有些则是从中长期发展角度来看会受到制约。

例如,PostgreSQL采用了一种较为自由的开源许可,其全球开发小组主要成员分布在世界各地,背后不受任何公司实体控制。与之相对应,MySQL则选择了同时使用GPL(公共许可)和商业许可的双许可模式。但是,如果某软件使用了GPL,那么该软件也需要开源,而如果无法满足GPL,则必须要获得商业许可。在此模式下,鉴于MySQL是被Oracle公司控制,因此要获得商业许可需要与Oracle公司联系,并受到Oracle公司约束。所以,从开源角度来看,MySQL的开源风险要高于PostgreSQL,或许这也是MySQL开源生态近年来活跃度下降的原因之一。面向上述问题,对于国内使用者来说,应尽早建立以自主创新为基础的MySQL生态体系,进而通过国内的MySQL生态去兼容其自有生态,最终服务好庞大的MySQL群体;而从国内厂商的角度来看,则应尽可能遵循GPLv2的所有规定和约束,以避免触发知识产权层面的争议,力求合法自由地使用MySQL源代码。

相比上述两款数据库,自主设计数据库底层架构、研发数据库内核并主动开源的中国数据库优势明显,其在实现对代码完全掌控的同时,将拥有对供应链上游开源社区的绝对控制权,以及对产品未来研发方向的绝对主导权和话语权,因此也将能更好地确保供应链安全。

“自主开源”路线优于“引用开源”。现阶段,数据库可选的开源技术路线主要可分为“引用开源”和“自主开源”两类,目前大多数的国产数据库产品均属于“引用开源”的范畴,而“自主开源”则需要对源代码具有更强的掌控能力。例如,“自主开源”的评判标准包括是否具有覆盖整个数据库全部技术栈的研发团队,数据库周边的开发、测试工具平台是否采用了自研产品,以及是否掌握了软件全部代码及文档等。以反例来说,很难想象一个低于300人规模的数据库公司可以维护一个完整的开源技术创新体系。

综上所述,自主创新、自主研发是一条艰难却必须坚定走下去的发展道路。近年来,在国家创新驱动发展战略的指引下,信息技术应用创新取得了较大进展,但核心技术自主创新依旧任重道远。展望未来,数据库产业发展仍需将自主研发、自立自强作为发展的根本基点,不断去深耕、去攻关、去突破,从而助力我国信息技术体系建设在自主创新的道路上走得更稳健、更自信!

本文拟刊于《中国金融电脑》2022年第09期

金融行业内容专区上线,为金融机构数据库选型和应用提供深入洞察和可靠参考路径。