隨著國家“互聯網 +”戰略不斷深入,更多智能化的金融服務應用而生。同時,新技術與金融業務融合創新發展帶來業務量高并發、業務需求頻繁變更帶來的風險、數據庫運行壓力大、技術選擇受制于人等情況,對金融機構核心業務系統帶來挑戰,F有金融基礎設施也面臨技術升級、系統整合和數據綜合利用等難題。
與此同時,分布式處理架構在系統運行風險控制、可擴展性、敏捷開發、灰度發布等方面顯示了優勢,并隨著不斷應用、優化和完善,技術逐步成熟。選擇分布式架構,采用云計算和分布式處理架構構建新一代的金融核心業務系統逐步成為轉型的選擇,也是金融業信息化發展的趨勢。
分布式架構的關鍵設計
分布式架構作為傳統的主機集中式架構替代技術之一,將是開發構建人民銀行業務系統的有效選擇。在進行分布式架構開發、設計、管理時,應注意把握好以下四個方面。
1.系統分層解耦,實現處理能力線性可擴展。為適應系統的彈性擴展,分布式架構設計時應盡量做到系統不同層次之間的解耦。一是應用層與服務層解耦。應用層“以用戶為中心”,專注于用戶體驗與業務功能;服務層通過將系統專業化分工,采用服務化方式,提供“去中心化”的服務調用,并通過服務編排組合可快速滿足多應用多前端(如個人電腦、手機、平板等)的功能實現。通過服務無狀態化等手段,可實現服務快速擴展應對業務處理高峰。二是服務層與數據層解耦,通過分布式數據庫訪問中間件或數據庫集群,實現數據庫節點的動態可擴展。三是上層軟件與底層基礎設施解耦,通過應用架構的分布式設計,降低了對商用閉源服務器的依賴,可使用基于開放PC服務器的橫向擴展方式滿足高性能處理需求。
2. 數據分布設計,突破數據庫單機能力瓶頸。分布式架構設計的核心是如何合理分布數據,以解決由于數據量巨大導致單機數據處理能力存在的性能瓶頸。在進行數據分布設計時,一是要進行數據切分,包括垂直切分和水平切分,可根據不同業務種類及數據相關性進行垂直切分,也可根據區、時間、用戶等維度進行水平切分。二是要進行數據冗余,為滿足系統高性能處理需求,可采用讀寫分離等方式進行冗余,減輕核心交易業務處理壓力 ;對于讀操作,還可以根據不同的查詢維度提供多份冗余副本。三是滿足一致性要求,根據 CAP 理論,對于共享數據系統,不可能一致性、可用性、分區容忍性三者同時滿足,只能同時擁有三項中的兩者。在分布式環境下,需要在可用性、數據一致性之間進行權衡。BASE 理論提供了在保證用戶體驗的前提下,向客戶屏蔽短暫數據不一致,但確保數據最終一致性的理論指導。
3. 自動化容錯處理,實現系統運行高可用。分布式架構基于 PC 服務器,動輒采用數十臺、上百臺服務器甚至更多,節點間通信和節點故障概率較集中式架構增大,故障發生為常態,其容錯處理和故障隔離至關重要。一是要進行健康檢查,定期探測通信鏈路和服務節點的健康狀況。二是通過負載均衡、壓測、限流等保障服務的可用性。當發生故障時,可通過業務降級、服務熔斷、故障隔離、回退等業務與技術相結合手段保障關鍵交易流程的可用性。三是對于基礎設施,采用云計算技術,建立資源池,對基礎設施進行統一管理、彈性供應,提升硬件故障時系統的高可用性。四是建立數據化運營體系,分布式架構下系統調用鏈路變長,需要對整個業務處理流程進行數字化跟蹤,通過多層次、可視化、可量化的系統運行情況分析,持續優化性能瓶頸,保障系統穩定運行。
4. 敏捷開發管理,實現系統快速開發上線。分布式架構意味著將系統解耦為更多小模塊,設計復雜性更高,容錯性需要考慮得更加全面,采用傳統軟件開發管理模式必然導致項目復雜度明顯上升。分布式架構下的開發管理應輕量化、敏捷化。一是采用小團隊開發模式。傳統大型應用系統采用幾十人甚至上百人維護一個項目工程,源代碼易沖突、協同成本高、項目發布周期長。分布式架構下應用模塊的粒度被細分,采用小團隊開發模式,廣泛應用持續集成、自動化測試、自動發布等技術,應用開發、測試、發布更敏捷。二是向服務化開發模式轉變。通過架構解耦、服務重用,提取并積累業務共享服務,可快速實現不確定性的、頻繁變化的業務需求,業務支持更敏捷。三是開發運維一體化(DevOps)。強調從需求、開發、設計、測試、部署、運營的全過程管理,開發團隊參與到應用系統運營、優化中,實時分析系統運行的健康狀況,提高系統可用性與質量,運維響應更敏捷。
人民銀行分布式架構轉型研究與探索
當前,分布式架構轉型已成為重要趨勢。人民銀行行領導指出,金融機構應主動探索系統架構轉型,積極研究建立靈活、可延展性強、安全可控的分布式系統架構。人民銀行承擔“制定和執行貨幣政策 , 維護金融穩定 , 提供金融服務”三大職能,其應用系統安全關系國計民生,需在保障應用安全穩定運行的前提下,穩步推進應用系統向分布式架構轉型。
1. 開展了分布式架構技術研究。以“人民銀行新型技術架構”課題研究為契機,系統研究了云計算、大數據、分布式服務、分布式數據庫、分布式緩存等技術 ;結合人民銀行核算類、信息類等系統業務特點,提出了“分布式處理、統一管理、彈性擴展、快速聯網接入”為主要特征的人民銀行新型技術架構。該架構包含基礎設施層、分布式中間件層、業務服務層和應用層,并通過開發管理平臺實現敏捷化的全過程開發管理。
2. 初步提出了分布式架構轉型策略。根據人民銀行業務特點與技術發展現狀,初步提出“分層分步分類,按業務特點穩步推進”的架構轉型策略;A設施層,通過引入云計算平臺,選用成熟的商用云計算、大數據產品,實現基礎設施層彈性可擴展,同時操作系統使用開源軟件自行研發。中間件層,結合信息化項目,借助商用技術產品、開源技術開展分布式技術研發實踐。業務服務層,根據央行業務的獨特性,抽取分析公共業務服務,實現服務共享和業務服務化。根據應用系統特點,對于金融統計、征信、反洗錢、賬戶管理等聯機分析處理(OLAP)系統,分布式基礎產品或技術已相對成熟,可加快向分布式架構演進。對于會計核算等聯機事務處理(OLTP)系統,因其交易量大、并發度高、可靠性要求高,需進一步研究分布式關鍵技術,通過自主研發或合作模式,有序推進架構遷移。應用層,按照系統全生命周期進行梳理,根據業務分類進行敏捷化開發和管理。此外,逐步建設數據應用服務中心,將各類業務數據收集并加工,賦予數據分析職能,為業務部門提供數據分析服務。
3. 在部分系統進行了試點應用。目前,人民銀行在存款保險系統、賬戶管理系統、征信監測管理系統等系統建設中探索使用分布式架構。以賬戶管理系統為例,通過采用開源分布式技術路線,實現全國賬戶數據的集中存儲和管理。經過業務特點分析與充分的驗證測試,賬戶管理系統采用垂直切分與水平切分相結合的數據分片策略,將數據分布在不同的數據庫節點上,以提高系統并發讀寫、邏輯校驗等處理能力。同時,系統在數據水平切分設計時考慮了可擴展性,當未來單節點數據量超過額定值后,可將當前節點再次切分,擴展新的數據庫節點存放新增數據,以解決數據的重新分布問題。
人民銀行分布式架構轉型剛剛開始,為適應敏捷開發,人民銀行軟件開發中心也正在組織架構調整,通過統一需求分析、統一架構設計、統一方案制定,優化軟件開發流程,構建人民銀行業務應用服務中心。分布式架構在金融業應用案例還不多,希望同業之間加強溝通,相互借鑒,共同推進金融業系統架構轉型。