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