近年來,國家不斷提高對信息技術(shù)安全可控的戰(zhàn)略要求,銀行業(yè)希望在快速發(fā)展業(yè)務的同時不斷降低經(jīng)營成本。這不僅促使商業(yè)銀行積極提升自主掌控能力,也促使商業(yè)銀行對基礎(chǔ)軟件的服務能力、軟硬件升級成本控制提出新的要求。與此同時,面對互聯(lián)網(wǎng)金融帶來的交易復雜度及交易頻次的大幅提升,商業(yè)銀行信息系統(tǒng)采用的傳統(tǒng)數(shù)據(jù)庫一體化解決方案,在應對此類場景時遇到了明顯的性能瓶頸,而提升系統(tǒng)性能只靠替換式的硬件升級,成本昂貴。在這種背景下,引入一種高性能、可彈性擴展、能夠支持OLTP場景的數(shù)據(jù)庫成為我行系統(tǒng)建設(shè)的優(yōu)先選擇方案。
一、 分布式數(shù)據(jù)庫的價值與應用場景
分布式事務數(shù)據(jù)庫采用多種模式實現(xiàn)數(shù)據(jù)的分散存儲,將數(shù)據(jù)庫壓力分散到不同服務器上。與集中式數(shù)據(jù)庫相比,分布式數(shù)據(jù)庫可以均衡交易負載,并采用高并發(fā)的架構(gòu)提升系統(tǒng)的交易處理能力,而其統(tǒng)一的資源管理機制也使得數(shù)據(jù)庫的性能擴展不再是設(shè)備的替換式升級,而是通過增加存儲或計算節(jié)點來實現(xiàn)彈性升級,極大地節(jié)約了升級成本。
雖然分布式事務數(shù)據(jù)庫在互聯(lián)網(wǎng)應用場景下的探索取得了良好的成效和大量的實戰(zhàn)經(jīng)驗,積累了很多成熟的技術(shù),但相比互聯(lián)網(wǎng)企業(yè),金融行業(yè)對風險控制的要求更高,所以在面對高復雜度交易場景、業(yè)務實時一致性等方面的需求時,需要更為完善的技術(shù)方案支持。目前絕大部分分布式數(shù)據(jù)庫解決方案都是基于MySQL主從復制結(jié)合分庫分表中間件方式進行改造和集成,無法提供商業(yè)銀行交易場景中的強一致性和完整的分布式事務要求,對業(yè)務和應用有侵入性,需要做一定的技術(shù)調(diào)整和事務妥協(xié),并且此類架構(gòu)離銀行業(yè)務場景中的高可用和多中心容災及多活的高級別安全要求也有一定距離。
所以,我行在選型前先確定了六個需要特別關(guān)注的特性:ACID特性、橫向擴展能力、可用性、可維護性、透明性、兼容性。需要特別說明的是透明性和兼容性,區(qū)域銀行等體量的金融機構(gòu)相比互聯(lián)網(wǎng)企業(yè)來說科技資源有限,所以希望新的分布式數(shù)據(jù)庫對架構(gòu)、開發(fā)、運維的影響能夠降到最低,同時能夠支持傳統(tǒng)系統(tǒng)的遷移。
新一代分布式NewSQL數(shù)據(jù)庫對應用透明,像一個單機數(shù)據(jù)庫一樣使用,支持水平擴展的同時保證分布式事務和數(shù)據(jù)的強一致性,從而避免傳統(tǒng)分庫分表、事務補償?shù)确桨笇ι蠈討眉皹I(yè)務流程的影響,另一方面如果能兼容傳統(tǒng)單機數(shù)據(jù)庫,傳統(tǒng)應用平移時不需要人工改寫代碼,就能極大減少遷移成本。
二、具有北京銀行特色的選型方案
由于金融行業(yè)對風險控制的嚴格要求,以及在交易復雜度、業(yè)務實時一致性等方面訴求不同于互聯(lián)網(wǎng)企業(yè)。所以,我行對于分布式數(shù)據(jù)庫的選擇也比較謹慎,利用兩輪專項POC評測來探索分布式數(shù)據(jù)庫的適用場景及性能指標,穩(wěn)步推進由傳統(tǒng)數(shù)據(jù)庫向分布式數(shù)據(jù)庫的遷移。
在第一輪POC測試中,主要進行了多場景的性能測試。由于Sysbench等開源測試工具對OLTP的性能測試存在較大的局限性,于是我行提出了“標準化交易組”的概念,用銀行真實交易邏輯,模擬多表跨節(jié)點事務,最大程度的還原銀行實際應用場景,檢驗數(shù)據(jù)庫產(chǎn)品的實際交易性能。
第二輪POC測試關(guān)注更為全面的數(shù)據(jù)庫產(chǎn)品特性。在當前數(shù)據(jù)庫主流評測指標的基礎(chǔ)上,結(jié)合銀行的關(guān)注要點,我行自主提出了一套“分布式事務數(shù)據(jù)庫評測指標”(見圖),將分布式事務數(shù)據(jù)庫能力進行了分解,形成具體的指標項,使得評測標準更加標準化,評測結(jié)果更加客觀。
圖1:分布式事務數(shù)據(jù)庫評測指標
選型過程中,從多維度考察了多家廠商的產(chǎn)品,包括TPS、QPS等性能指標,和算法性能、可靠性、安全備份、數(shù)據(jù)庫兼容性、產(chǎn)品化程度等功能指標。同時,我行也得到了Intel實驗室的大力支持,提供最新架構(gòu)的計算和存儲設(shè)備進行對比測試。
結(jié)合兩輪POC結(jié)果,TiDB分布式數(shù)據(jù)庫產(chǎn)品表現(xiàn)出了架構(gòu)的先進性和高效的性能,水平擴展能力、交易處理能力和功能指標均符合我行對分布式數(shù)據(jù)庫產(chǎn)品的要求。其采用的Raft算法保證了數(shù)據(jù)的強一致性,同時可以實現(xiàn)兩地三中心多活的部署方式,以上特性在應用中具備較大優(yōu)勢。除了優(yōu)秀的開源社區(qū)環(huán)境,其背后的團隊在開發(fā)支持、技術(shù)培訓、運維服務、成本控制等方面也表現(xiàn)出了優(yōu)秀的素質(zhì)。
三、NewSQL數(shù)據(jù)庫平臺的建設(shè)進展
我行在進行分布式事務數(shù)據(jù)庫選型之初,就將目標定為可以承載銀行核心系統(tǒng)與核心業(yè)務,所以選型過程和應用遷移都是基于這一目標,在數(shù)據(jù)庫投產(chǎn)后將首先應用于互聯(lián)網(wǎng)支付業(yè)務,之后遷移部分核心系統(tǒng)功能模塊,并進一步擴展到其他場景的使用。其他感興趣的用戶也可以從非核心業(yè)務用起,或先作為備份數(shù)據(jù)系統(tǒng)。
為了更好滿足應用端的需求以及業(yè)務的擴展,對業(yè)務的交易量和數(shù)據(jù)量進行了預估。結(jié)合預估結(jié)果以及行內(nèi)系統(tǒng)建設(shè)要求,北京銀行率先采用了兩地三中心五副本的高可用部署架構(gòu)方案,支持同城兩中心多活,并具備服務器級、機柜級、數(shù)據(jù)中心級容災能力。
隨著業(yè)務不斷發(fā)展,客戶數(shù)量、賬戶數(shù)量、業(yè)務交易量都會上升,這對我行信息系統(tǒng)的數(shù)據(jù)存儲能力、運算能力等方面提出了更高的要求。我行也對系統(tǒng)架構(gòu)進行了長遠規(guī)劃,利用分布式NewSQL數(shù)據(jù)庫集群的橫向水平擴展能力,通過增加存儲或計算節(jié)點來實現(xiàn)彈性升級,節(jié)約成本與實施難度。
2018年3月22日,北京銀行分布式NewSQL數(shù)據(jù)庫集群正式投產(chǎn),成為國內(nèi)首家采用同類方案應用于核心交易場景的銀行。在數(shù)據(jù)庫投產(chǎn)后,將進行生產(chǎn)環(huán)境多活和災備的驗證,并開始應用切換。
四、對開源軟件的一些理解
銀行在開展技術(shù)能力轉(zhuǎn)型建設(shè)的過程中,必然會應用越來越多的開源技術(shù)。開源軟件是當前軟件發(fā)展的趨勢,互聯(lián)網(wǎng)企業(yè)的大規(guī)模應用和快速迭代使開源軟件成為先進技術(shù)事實上的代表。傳統(tǒng)銀行業(yè)使用開源軟件的初衷是希望快速獲得互聯(lián)網(wǎng)企業(yè)同樣的能力,但是否存在困難與阻礙呢?
第一,大部分銀行的科技資源狀況使之不具備源代碼級的掌控能力和基于開源組件的架構(gòu)設(shè)計能力。大多選擇采用由國外社區(qū)控制的軟件或是直接購買國內(nèi)互聯(lián)網(wǎng)公司封裝好的全家桶解決方案,很難做到真正意義的自主、安全、可控。
第二、開源軟件變化快、分支多、依賴“試錯”的創(chuàng)新,跟銀行追求穩(wěn)健、長期的內(nèi)部機制存在差異甚至沖突,反映在選型、測試、變更、運維等各個環(huán)節(jié)。
第三、開源軟件的極客思維更多面向開發(fā)者,而非使用者,災備、監(jiān)控、審計等企業(yè)級功能經(jīng)常落后于核心功能,在培訓、ISV支持、維保服務上跟傳統(tǒng)企業(yè)的需求還有差距。
所以銀行業(yè)采用開源軟件并取得成功的成本可能會比原有模式更高。值得欣慰的是,隨著多年的技術(shù)積累,國內(nèi)越來越多的類似PingCAP這樣專注于底層核心基礎(chǔ)軟件研發(fā)的團隊開始嶄露頭角,通過全球開源協(xié)作的方式極大的提升軟件的迭代速度和成熟度,且愿意傾聽傳統(tǒng)行業(yè)的客戶需求,有一顆做好產(chǎn)品與服務的誠心。不同于部分銀行在新興業(yè)務上采用互聯(lián)網(wǎng)公司提供的整體外包解決方案,北京銀行尋求自主可控能力,主動在模式和管理上創(chuàng)新,與互聯(lián)網(wǎng)思維和技術(shù)不斷切磋、碰撞、融合。通過研究、評測、應用、部署等工作,在實踐中做到了自主掌控。雙方在合作中互惠互利,利用雙方優(yōu)勢,實現(xiàn)了信息系統(tǒng)服務能力的快速提升,打造出具有北京銀行特色的創(chuàng)新驅(qū)動力。
五、結(jié)語
今后我行會嘗試將更多高頻高并發(fā)、對可擴展性和可用性有較高要求的業(yè)務場景遷移到分布式系統(tǒng)上。充分發(fā)揮分布式數(shù)據(jù)庫的優(yōu)勢,探索和開辟創(chuàng)新發(fā)展的新路徑。同時也希望我行在分布式數(shù)據(jù)庫建設(shè)過程中的經(jīng)驗可以分享給更多的金融機構(gòu)。借此北京銀行愿與各同業(yè)機構(gòu)和互聯(lián)網(wǎng)企業(yè)攜手并進,為推動銀行數(shù)據(jù)庫應用升級貢獻自己的一份力量!
分享到微信 ×
打開微信,點擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。