?隨著近些年來國內外局勢的變幻,更多企業開始重視IT基礎設施的自主創新。作為涉及國計民生的支柱性產業,金融業尤為關注此點。而在IT基礎設施之中,數據庫更是作為三大基礎軟件之一、交易和數據的主要載體則受到更多的關注。本文在數據庫技術發展趨勢下,結合金融行業特點,闡述金融企業如何做到數據庫自主創新。在正式展開之前,先談談對“自主創新”的理解。一方面是基礎軟件的供應鏈安全問題:就是采用主權范圍內廠商具有完全知識產權掌控力的軟件,不受國外產品和服務體系供應的限制。另一方面企業可根據自主意志,按自己的需求、想法,在不違反授權的情況下,自由地修改和使用軟件,無論是開源軟件還是商業授權軟件。
1. 企業為何需走上自主創新之路
企業選擇走上自主創新之路,是有其內外部原因的。
1)數據庫自主創新關鍵因素
供應鏈安全
近期的諸多事件,給我們帶來頗多啟示,需要更加關注國家級技術供應鏈的安全問題。在極端情況下,無論是商業產品還是開源項目,都面臨同樣的境地,即只與核心技術掌握在誰的手中有關。這里需要區別的是,核心技術掌握在誰手里,并不是指源代碼。源代碼不是技術,只是技術的載體。脫離了技術主導者,即便擁有源代碼,也無法持續發展。從企業乃至國家層面來講,只有做到從根本上解決技術供應鏈的安全和可持續發展問題,才能真正意義上實現自主創新。
金融合規需求
金融業,作為數據密集型行業,大量業務依賴于數據的產生與流轉。因而金融業對交易與數據的承載者—數據庫,提出非常高的要求,諸如數據庫的穩定性、可靠性等。此外,金融業的數據通常也具有高價值,因此對于數據安全方面也同樣有著極高的要求。作為涉及國計民生的重要行業,國家也將金融業作為重點監管行業。
金融創新基礎
近些年來,金融業務正在悄然發生著變化。以銀行業為例,過去都是網點靠人工完成拉存款、放貸款等工作;現在隨著互聯網化的轉變,催生如在線銀行、手機銀行、數字銀行等多種業務形式。上述形式對底層基礎設施提出新的要求,如何通過底層技術革命,促使金融服務的方式發生代際更替。作為底層基礎實施的重要組成部分,數據庫也被賦予更高的要求,包括分布式、HTAP 混合負載、多模、智能應用等能力受到更多關注。這些都對金融企業如何使用好數據庫、乃至如何掌控這一技術棧的發展提出了更高要求。
2)上層引導,國家政策解讀
除了上述因素外,作為金融監管方,國家積極鼓勵金融業技術自主創新。在2022年1月,銀保監會就下發了《銀行業保險業數字化轉型的指導意見》。意見中提出“要加快數據庫等通用軟件技術服務能力建設,提高新技術應用和自主可控能力。堅持關鍵技術自主可控原則,對業務經營發展有重大影響的關鍵平臺、關鍵組件以及關鍵信息基礎設施要形成自主研發能力,降低外部依賴、避免單一依賴?!?/p>
針對開源技術,國家在戰略層面積極倡導企業通過開源促進自主創新能力建設。如2021年出臺的《關于規范金融業開源技術應用與發展的意見》指出:要將開源技術作為金融機構“提高核心自主創新能力的重要手段”,鼓勵金融機構廣泛應用開源技術,同時還要“加強開源技術研究儲備,掌握開源技術核心”,因此在開源技術方面,金融機構不僅不能停滯不前,還要加大技術和資金投入,不斷強化自身在開源技術上的儲備和應用,最終“依托金融業豐富的業務場景促進開源技術迭代升級。”
2. 開源技術促進自主創新發展
數據庫,作為三大基礎軟件之一,其復雜度非常高。企業如何能夠快速掌握,具備自主創新能力非常關鍵,而開源無疑為企業提供一條捷徑。數據庫產品作為一個“需要被用出來”的基礎軟件,通過開源的模式可以帶來三方面的助力:一是規?;瘓鼍?,通過開源實現快速傳播和部署;二是透明開發的協作機制,通過開源構建全生態,不斷迭代不斷打磨,形成新一代數據生態;三是匯聚創新智慧,讓更多優秀的開發者參與進來,保持數據庫技術的持續領先,與全球領先技術保持同步。在以上三個方面,開源軟件比閉源軟件有很多優勢,其中包含的層面有價格、自由定制、技術支持、安全性以及避免供應商鎖定等。數據庫領域,知名的開源數據庫產品MySQL、PostgreSQL穩居流行數據庫前五名,正是最好的佐證。中國的開源開發者已經成為僅次于美國的第二大開發者群體,并有望在未來10年成為第一,開源已經成為中國基礎軟件實現自主創新的重要路徑之一。
1)正確認知及使用開源軟件
由于一些歷史原因,企業在開源軟件認知和使用上存在些誤區,下面將逐一進行解析。
使用開源不等于自主創新
開源是自主創新的最佳路徑,但使用開源不等于自主創新。開源的本質在于開放、共享、協同,作為一種創新協作模式,開源不僅限于開源代碼的軟件開發,還包括更為廣泛的開放技術領域及協同創新的理念和機制。但企業使用開源產品,并不代表就具備了自主開源能力;廠商使用開源去構建的商業產品,也不能說完全自主創新。這點在后面的“開源路線”中會詳細說明。
開源可用于核心場景
開源不是主流,只會用在非核心系統,這是給很多企業歷史認知帶來的固有印象。但從軟件本身來講,開源和商業并沒有什么本質的區別。從本質來講,開源并非一種商業模式,其本質是一種新型的生產協作關系,用來大幅提高軟件供給側交付效率。通過大量使用者的參與,可快速積累測試用例,幫助產品快速成熟。企業對開源不是主流,其本質更多是來自對開源軟件“不可控”的一種擔心。針對這個擔心, 一方面,可通過企業自身加大投入及積極參與開源社區解決這一問題;一方面也可通過使用開源軟件的商業化服務規避潛在風險。
開源需要付出成本
開源是沒有許可或使用費的,但不代表其沒有成本。與閉源的使用成本取決于軟件規模不同,開源的成本則來自于多個方面。一方面,相較于成熟商業產品,開源軟件在前期的選型、評估階段,需要企業投入更多的精力,需要對開源產品有個詳細了解的過程;一方面,在后期的使用、維護過程中,也需要逐步培養起企業自身技術能力,這同樣需要投入,擁有懂得開源軟件的開發與維護人才,對很多企業來說本身就是一個門檻。能使用和駕馭開源軟件的企業,往往擁有更強大的創新能力和人才積累。
開源同樣也很穩定
開源軟件有一個完整生態,通過社區完成代碼的審核,這使得錯誤會被很快發現并糾正;而閉源則是由軟件開發商完成這一過程,往往耗時很長。通過開源的方式,用戶可更容易地發現定位Bug,并通過開源協作機制更早得解決它們。因此,開源軟件同樣可以做到很穩定。
開源更有利于安全
不同于傳統閉源軟件,開源軟件項目是由多人協作完成,存在代碼量龐大且功能繁雜的特點,依賴和引用關系復雜。一旦出現安全問題,其安全漏洞的放大作用非常顯著。如果發現開源漏洞,在修復的過程中也需要耗費人力和資源,同時對運維團隊有一定的能力要求。因此,企業使用開源需做好版本管理、權限分配、信息防護、安全策略等方面的細致工作,開源一樣是安全的。任何軟件都有Bug,但閉源軟件因為不透明,Bug往往有更大的致命性,有商業支持的開源軟件的穩定性大多明顯好于閉源軟件。
2)開源需重視供應鏈問題
開源軟件的供給問題正在受到更大的關注。如果開源軟件的供給隱患不解決,無疑是把數字基礎設施建立在沙灘上的城堡。重新審視開源風險問題將成為國家軟件供應鏈安全的重中之重。針對開源軟件可能面臨的“斷供”、“后門”等問題值得關注。近年來開源軟件供應鏈事件頻發,伴隨著“開源無國界”的理想主義受到現實的挑戰,開源軟件供應鏈安全問題值得深思。按照美國出口管制條例的規定,所有“公開可獲得”的源代碼(不含加密軟件以及帶加密功能的其他開源軟件),都是不被出口管制的。但如果一個開源項目或開源組織聲明遵從美國的出口管制條例,此時一旦美國修改條例,將一些核心基礎軟件加入到管制中,那么大量核心開源項目將受到出口管制。只有在核心領域掌握核心技術,才能在關鍵時刻不受制約。因此,從長遠來看,要擺脫依賴,消除開源背后深層次的Bug,還需要從核心技術自主創新入手,構建安全可靠的底層信息技術體系,保障關鍵信息技術實施的安全和完善。
3.解讀數據庫的自主創新路徑
1)開源助力數據庫自主創新
如之前談到的,數據庫作為大型基礎軟件,其復雜度非常高。如果實現“彎道超車”,開源無疑是一條真正的可持續發展路徑。在國產化訴求日益高漲的背景下,越來越多的金融企業開始關注開源數據庫的使用。正是通過開源協作、創新與人才培養等方面的增益,加速了自主創新的進程。根據第三方機構DB-Engines的調研,2021年全球的開源數據庫的部署數量已經超過商業數據庫,MySQL、PostgreSQL 開源數據庫是占據排名前五的兩大群體,也是兩個最大的公有云數據庫服務群體。國內的數據庫廠商及有實力的用戶,對自研產品也紛紛采取開源策略,通過構建生態,加速產品推廣普及。通過產、學、研、用相結合,促進國產數據庫的整體發展。
在金融行業,原有集中式數據庫技術高度依賴于國外廠商,IT團隊缺乏自主創新能力,在一定程度上存在信息安全的風險,也無法滿足行業國產化的要求。近些年來,隨著數據庫領域技術迭代,以云原生數據庫、NewSQL、分布式數據庫等具備業界代表性的一大批國產數據庫產品進入人們的視野,實現了換道超車。國產數據庫經歷多年的打磨,已具備成熟、可持續發展的生態,在銀行、保險、證券等金融行業有許多成功案例,其中包括銀行核心系統案例,其穩定性、可靠性已得到驗證,可以滿足金融級數據庫的要求??梢哉f國產數據庫已成為自主創新主力。
正如同電動車針對燃油車的跨越替代,新一代國產數據庫正在通過技術升級迭代的方式替代傳統集中式數據庫。從全球技術趨勢來看,以分布式、云原生、 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人規模的數據庫公司可以維護一個完整的開源技術創新體系。
結語
自主創新、自主研發是一條艱難卻必須走的發展道路。近年來,在國家創新驅動發展戰略指引下,自主信息技術發展取得較大進展,與此同時我們也應認識到,我國整體自主創新能力、研發能力與發達國家相比仍存在一定差距,核心關鍵技術的創新能力不足,自主創新依舊任重道遠。希望國產數據庫產業界同仁應把自主研發、自立自強作為發展的根本基點,去深耕、去攻關、去突破!讓中國在自主信息技術體系建設的道路上走得更穩健、更自信。?