随着近些年来国内外局势的变幻,更多企业开始重视IT基础设施的自主创新。作为涉及国计民生的支柱性产业,金融业尤为关注此点。而在IT基础设施之中,数据库更是作为三大基础软件之一、交易和数据的主要载体则受到更多的关注。本文在数据库技术发展趋势下,结合金融行业特点,阐述金融企业如何做到数据库自主创新。在正式展开之前,先谈谈对“自主创新”的理解。一方面是基础软件的供应链安全问题:就是采用主权范围内厂商具有完全知识产权掌控力的软件,不受国外产品和服务体系供应的限制。另一方面企业可根据自主意志,按自己的需求、想法,在不违反授权的情况下,自由地修改和使用软件,无论是开源软件还是商业授权软件。
1. 企业为何需走上自主创新之路
企业选择走上自主创新之路,是有其内外部原因的。
1).数据库自主创新关键因素
❖ 供应链安全
近期的诸多事件,给我们带来颇多启示,需要更加关注国家级技术供应链的安全问题。在极端情况下,无论是商业产品还是开源项目,都面临同样的境地,即只与核心技术掌握在谁的手中有关。这里需要区别的是,核心技术掌握在谁手里,并不是指源代码。源代码不是技术,只是技术的载体。脱离了技术主导者,即便拥有源代码,也无法持续发展。从企业乃至国家层面来讲,只有做到从根本上解决技术供应链的安全和可持续发展问题,才能真正意义上实现自主创新。
❖ 金融合规需求
金融业,作为数据密集型行业,大量业务依赖于数据的产生与流转。因而金融业对交易与数据的承载者—数据库,提出非常高的要求,诸如数据库的稳定性、可靠性等。此外,金融业的数据通常也具有高价值,因此对于数据安全方面也同样有着极高的要求。作为涉及国计民生的重要行业,国家也将金融业作为重点监管行业。
❖ 金融创新基础
近些年来,金融业务正在悄然发生着变化。以银行业为例,过去都是网点靠人工完成拉存款、放贷款等工作;现在随着互联网化的转变,催生如在线银行、手机银行、数字银行等多种业务形式。上述形式对底层基础设施提出新的要求,如何通过底层技术革命,促使金融服务的方式发生代际更替。作为底层基础实施的重要组成部分,数据库也被赋予更高的要求,包括分布式、HTAP 混合负载、多模、智能应用等能力受到更多关注。这些都对金融企业如何使用好数据库、乃至如何掌控这一技术栈的发展提出了更高要求。
2).上层引导,国家政策解读
除了上述因素外,作为金融监管方,国家积极鼓励金融业技术自主创新。在2022年1月,银保监会就下发了《银行业保险业数字化转型的指导意见》。意见中提出“要加快数据库等通用软件技术服务能力建设,提高新技术应用和自主可控能力。坚持关键技术自主可控原则,对业务经营发展有重大影响的关键平台、关键组件以及关键信息基础设施要形成自主研发能力,降低外部依赖、避免单一依赖。”
针对开源技术,国家在战略层面积极倡导企业通过开源促进自主创新能力建设。如2021年出台的《关于规范金融业开源技术应用与发展的意见》指出:要将开源技术作为金融机构“提高核心自主创新能力的重要手段”,鼓励金融机构广泛应用开源技术,同时还要“加强开源技术研究储备,掌握开源技术核心”,因此在开源技术方面,金融机构不仅不能停滞不前,还要加大技术和资金投入,不断强化自身在开源技术上的储备和应用,最终“依托金融业丰富的业务场景促进开源技术迭代升级。”
2. 开源技术促进自主创新发展
数据库,作为三大基础软件之一,其复杂度非常高。企业如何能够快速掌握,具备自主创新能力非常关键,而开源无疑为企业提供一条捷径。数据库产品作为一个“需要被用出来”的基础软件,通过开源的模式可以带来三方面的助力:一是规模化场景,通过开源实现快速传播和部署;二是透明开发的协作机制,通过开源构建全生态,不断迭代不断打磨,形成新一代数据生态;三是汇聚创新智慧,让更多优秀的开发者参与进来,保持数据库技术的持续领先,与全球领先技术保持同步。在以上三个方面,开源软件比闭源软件有很多优势,其中包含的层面有价格、自由定制、技术支持、安全性以及避免供应商锁定等。数据库领域,知名的开源数据库产品MySQL、PostgreSQL稳居流行数据库前五名,正是最好的佐证。中国的开源开发者已经成为仅次于美国的第二大开发者群体,并有望在未来10年成为第一,开源已经成为中国基础软件实现自主创新的重要路径之一。
1).正确认知及使用开源软件
由于一些历史原因,企业在开源软件认知和使用上存在些误区,下面将逐一进行解析。
❖ 使用开源不等于自主创新
开源是自主创新的最佳路径,但使用开源不等于自主创新。开源的本质在于开放、共享、协同,作为一种创新协作模式,开源不仅限于开源代码的软件开发,还包括更为广泛的开放技术领域及协同创新的理念和机制。但企业使用开源产品,并不代表就具备了自主开源能力;厂商使用开源去构建的商业产品,也不能说完全自主创新。这点在后面的“开源路线”中会详细说明。
❖ 开源可用于核心场景
开源不是主流,只会用在非核心系统,这是给很多企业历史认知带来的固有印象。但从软件本身来讲,开源和商业并没有什么本质的区别。从本质来讲,开源并非一种商业模式,其本质是一种新型的生产协作关系,用来大幅提高软件供给侧交付效率。通过大量使用者的参与,可快速积累测试用例,帮助产品快速成熟。企业对开源不是主流,其本质更多是来自对开源软件“不可控”的一种担心。针对这个担心, 一方面,可通过企业自身加大投入及积极参与开源社区解决这一问题;一方面也可通过使用开源软件的商业化服务规避潜在风险。
❖ 开源需要付出成本
开源是没有许可或使用费的,但不代表其没有成本。与闭源的使用成本取决于软件规模不同,开源的成本则来自于多个方面。一方面,相较于成熟商业产品,开源软件在前期的选型、评估阶段,需要企业投入更多的精力,需要对开源产品有个详细了解的过程;一方面,在后期的使用、维护过程中,也需要逐步培养起企业自身技术能力,这同样需要投入,拥有懂得开源软件的开发与维护人才,对很多企业来说本身就是一个门槛。能使用和驾驭开源软件的企业,往往拥有更强大的创新能力和人才积累。
❖ 开源同样也很稳定
开源软件有一个完整生态,通过社区完成代码的审核,这使得错误会被很快发现并纠正;而闭源则是由软件开发商完成这一过程,往往耗时很长。通过开源的方式,用户可更容易地发现定位Bug,并通过开源协作机制更早得解决它们。因此,开源软件同样可以做到很稳定。
❖ 开源更有利于安全
不同于传统闭源软件,开源软件项目是由多人协作完成,存在代码量庞大且功能繁杂的特点,依赖和引用关系复杂。一旦出现安全问题,其安全漏洞的放大作用非常显著。如果发现开源漏洞,在修复的过程中也需要耗费人力和资源,同时对运维团队有一定的能力要求。因此,企业使用开源需做好版本管理、权限分配、信息防护、安全策略等方面的细致工作,开源一样是安全的。任何软件都有Bug,但闭源软件因为不透明,Bug往往有更大的致命性,有商业支持的开源软件的稳定性大多明显好于闭源软件。
2).开源需重视供应链问题
开源软件的供给问题正在受到更大的关注。如果开源软件的供给隐患不解决,无疑是把数字基础设施建立在沙滩上的城堡。重新审视开源风险问题将成为国家软件供应链安全的重中之重。针对开源软件可能面临的“断供”、“后门”等问题值得关注。近年来开源软件供应链事件频发,伴随着“开源无国界”的理想主义受到现实的挑战,开源软件供应链安全问题值得深思。按照美国出口管制条例的规定,所有“公开可获得”的源代码(不含加密软件以及带加密功能的其他开源软件),都是不被出口管制的。但如果一个开源项目或开源组织声明遵从美国的出口管制条例,此时一旦美国修改条例,将一些核心基础软件加入到管制中,那么大量核心开源项目将受到出口管制。只有在核心领域掌握核心技术,才能在关键时刻不受制约。因此,从长远来看,要摆脱依赖,消除开源背后深层次的Bug,还需要从核心技术自主创新入手,构建安全可靠的底层信息技术体系,保障关键信息技术实施的安全和完善。
3. 解读数据库的自主创新路径
1).开源助力数据库自主创新
如之前谈到的,数据库作为大型基础软件,其复杂度非常高。如果实现“弯道超车”,开源无疑是一条真正的可持续发展路径。在国产化诉求日益高涨的背景下,越来越多的金融企业开始关注开源数据库的使用。正是通过开源协作、创新与人才培养等方面的增益,加速了自主创新的进程。根据第三方机构DB-Engines的调研,2021年全球的开源数据库的部署数量已经超过商业数据库,MySQL、PostgreSQL 开源数据库是占据排名前五的两大群体,也是两个最大的公有云数据库服务群体。国内的数据库厂商及有实力的用户,对自研产品也纷纷采取开源策略,通过构建生态,加速产品推广普及。通过产、学、研、用相结合,促进国产数据库的整体发展。
在金融行业,原有集中式数据库技术高度依赖于国外厂商,IT团队缺乏自主创新能力,在一定程度上存在信息安全的风险,也无法满足行业国产化的要求。近些年来,随着数据库领域技术迭代,以云原生数据库、NewSQL、分布式数据库等具备业界代表性的一大批国产数据库产品进入人们的视野,实现了换道超车。国产数据库经历多年的打磨,已具备成熟、可持续发展的生态,在银行、保险、证券等金融行业有许多成功案例,其中包括银行核心系统案例,其稳定性、可靠性已得到验证,可以满足金融级数据库的要求。可以说国产数据库已成为自主创新主力。
正如同电动车针对燃油车的跨越替代,新一代国产数据库正在通过技术升级迭代的方式替代传统集中式数据库。从全球技术趋势来看,以分布式、云原生、 HTAP混合负载、AI&DB、多模等为代表的新技术正在数据库领域取得突破性进展。中国作为全球数字经济最为活跃、数据规模最为庞大、数据场景最为多元的市场,大大促进了数据库的技术发展。如何在技术上保持持续领先,符合数据库技术长期发展路线,也是企业必须考虑的问题。因而,在企业考虑自主创新的同时,要清醒地认识到自主创新不是要替换别人的过去,更是要创造自己可持续的未来。不要将自主创新简单理解为“产品换产品”的定位,而是对通过自主过程掌握核心技术,真正做到可持续的可控
2).依赖“引用开源”存在风险
作为最为流行的两款开源数据库,MySQL和PostgreSQL拥有着庞大的使用基础。很多国内的商业产品采用了基于这两者之上进行构建,或者采用兼容这两款数据库生态方式。无论是哪种方式,都是想充分利用这两者的广泛的生态效应。针对后者而言,如果代码是完全自研,因而对于自主创新还好;但对于前者就需要充分考虑风险问题。据国内某三方组织调研的200多款国产数据库,其中多数是在国外开源数据库基础上开发而成。大部分其上游开源产品就是采用MySQL或PostgreSQL。其上游的生态社区仍然是由国外控制,对下游数据库产品的供应链安全存在一定影响。从一些业内人士反馈信息看,有些短期内就可能存在生态停滞问题,有些从中长期发展角度会受到制约。与之对应的完全国产自研厂商,通过自主设计数据库底层架构、研发数据库内核,并主动开源的中国数据库,在对代码完全掌控的同时,拥有对供应链上游的开源社区的绝对控制权,对产品未来研发方向拥有绝对主导权和话语权,是国产数据库实现供应链安全的必要且最佳手段。
MySQL和PostgreSQL在开源风险方面又有所不同。PostgreSQL采用的许可是一种更为自由的开源许可,与BSD或MIT许可证类似,其全球开发小组主要成员分布在世界各地,其背后不受任何公司实体控制。与之对应的MySQL,则是同时使用了GPL和一种商业许可(即双许可模式)。GPL是公共许可,遵循GPL的软件是公共的。如果某软件使用了GPL软件,那么该软件也需要开源。如果无法满足GPL,则需要获得商业许可。MySQL是被Oracle公司控制,要获得商业许可需与Oracle公司联系,并受到Oracle公司约束。因而从开源角度来看,MySQL的开源风险要高于PostgreSQL。针对MySQL的风险问题,一直是科技从业者比较关注的。根据MySQL开源遵循的GPLv2许可证约定,老版本MySQL是无法变更开源许可证或闭源;针对新版本则不排除这种可能,毕竟是受到Oracle公司约束。从MySQL 的开源生态最近一年来活跃度下降的趋势来看,未雨绸缪,从国内使用者角度来看,尽早建立国内自主创新的MySQL 兼容的生态体系,进而通过国内的MySQL 兼容的自有生态,服务好庞大的MySQL群体成为当前重点。从国内厂商角度来看,需要遵循GPLv2的所有规定和约束,就不会触发知识产权层面的争议,可以合法自由地使用MySQL源代码。
3).“自主开源”路线优于“引用开源”
从目前国产数据库的开源技术路线上,要存在两大类别的,分别是“引用开源”和“自主研发 自主开源”。目前多数的国产数据库采用的是“引用开源”类型。作为后者,从用户角度需要更多关注其对于源代码的掌控能力。可从以下角度进行判断,如是否具有覆盖整个数据库全部技术栈的研发团队?数据库周边开发、测试工具平台是否自研或采用国产厂商产品?其是否掌握软件全部代码及文档,包括相关版权、商标和专利,无知识产权纠纷?如引用国外开源代码,是否符合国际开源政策,符合相关国家进出口条例,合法合规等。只有这样,才能对数据库产品是否做到真正自主创新,有个全面准确的了解,这也是金融企业评估考察的重点。说到底,做到全方位自主创新需要一个完整的体系化团队,对比Oracle 等数据库厂商动辄1、2万人的规模,很难想象一个低于 300人规模的数据库公司可以维护一个完整的开源技术创新体系。
结语 自主创新、自主研发是一条艰难却必须走的发展道路。近年来,在国家创新驱动发展战略指引下,自主信息技术发展取得较大进展,与此同时我们也应认识到,我国整体自主创新能力、研发能力与发达国家相比仍存在一定差距,核心关键技术的创新能力不足,自主创新依旧任重道远。希望国产数据库产业界同仁应把自主研发、自立自强作为发展的根本基点,去深耕、去攻关、去突破!让中国在自主信息技术体系建设的道路上走得更稳健、更自信。