文|戴云飛,石明
分布式存儲與計算在銀行的實現與應用
文|戴云飛,石明
隨著我國市場經濟體制的確立,經濟全球化的表現愈加明顯,市場競爭日漸激烈,銀行業作為傳統的服務型行業,在新時代面臨的機遇和挑戰都是巨大的。對于信息時代的銀行業來說,信息數據的管理在日常運營中尤為重要。進而到21世紀,信息技術在飛速的提升,應用系統的處理能力和應用實踐已經十分穩定和成熟,作為這些系統的最終產品也就是海量增長的各類數據信息,這些信息的管理和應用才是信息技術人員現在面臨的最為棘手的問題。在銀行日常的運行中,如何能夠以較低的成本實現對各類信息的管理、處理與應用,已經成為各級銀行在數據管理中最為關鍵的課題。
世界數據之父BILL INMOM在的專業書籍中提出了ODS的理論概念,該系統主要用于解決企業運行過程中的分析決策和管理的需求,隨著該理論模型的出現,逐漸形成了新的三層體系的數據結構,即DB-ODS-DW,隨著系統應用的加深和在管理過程中效益發揮的增強,這種體系結構被廣泛的應用在航空、零售、金融、保險等相關領域。
同西方國家的數據管理體系架構相比,我國的ODS系統的建設要晚,近年來,隨著我國信息技術能力的不斷加深,政府和市場也越來越重視到ODS系統于企業管理中的意義,并逐漸將該系統應用到企業管理中,在引用的初期,該系統也僅是作為數據的傳輸中樞;后來,隨著企業規模的增長和數據量的增加,逐漸發展成為及收集、存儲、處理為一體的用于決策支持的數據庫系統。
(一)分布式架構的分類
分布式架構一般分為兩類,一是以垂直擴展為主的架構,也就是在數據系統中增加單機,或者是更換系統中的設備,將低端設備進行升級,以提高系統的數據存儲和管理的能力,這種架構方式也稱為集中式架構,這類架構的典型代表就是早期的啞終端主機架構;第二類架構形式是以水平擴展為主,通過在系統中橫向節點的擴充,將一個位置的節點提高到幾個節點,實現每一個節點可以在系統中獨立運行,每個節點可以通過網絡進行連接和傳輸,系統的擴充能力隨之提高。這種情況時,即便是系統中某一個節點出現故障,整個系統也還可以為操作員提供數據服務。水平架構也被成為分布式架構。
(二)集中式架構的優缺點
集中式架構的系統底層多采用成熟的商業基礎軟件進行構建,這種架構的主要優勢就是性能成熟、具有較強的穩定性,在銀行業具體的應用中,信息技術人員可以以穩定的系統架構為基礎,專注于業務功能的開發。以工商銀行個人信貸系統為例,在其實現了全國數據集中之后,其個人信貸業務的交易成功率和業務增長率都獲得了穩步的提升,也擁有了更為高效的功能產品開發和推廣,其業務量的年增長率平均可以達到百分之三十。隨著核心業務的集中和業務量的急劇上漲,集中式架構保持著穩固的基層架構,保證了系統運行的統一性和穩定性,為業務的快速發展和系統的平穩運行提供了保障。
集中式架構在實踐應用中的主要缺點有以下幾個方面:第一,系統的風險較為集中,因為產品整體的成熟和穩定,所以一旦系統中的某一個軟件或者邏輯出現故障和異常,很可能導致整個集群都失去功能,引發銀行整體的停業;第二,由于我國過多的人口基數,銀行的業務量在未來會穩步的增長,那么系統在運行過程中出現問題或者發生缺陷的概率就會增加;第三,系統建立的成本費用高,由于集中式架構對基礎架構有著嚴格的可靠性要求和高度的依賴性,而這些基礎架構產品往往是被市場中少數的幾個公司壟斷,市場中缺乏有力的競爭對手,架構成本居高不下;第四,由于架構基礎是商業性軟件架構,銀行自身不擁有這類核心技術,所以在系統維護中受制于人,同時受供貨商和整體供應鏈的影響和風險較大。
(三)分布式架構的優缺點
分布式架構的建立是按照一定的緯度將整個系統進行拆分,并通過一定的負載平衡原則,將銀行的各個業務在多個節點上進行分攤。這種架構模式的主要優點是:各個節點松耦合,架構具有較強的開放型和兼容性、對架構底層產品的依賴程度較低,整體架構的成本低,同集中式架構相比,可以使用更為廉價的基礎硬件和開源軟件,也不會受到來自供貨商的制約,在市場中建立更多供貨商的競爭,保證基礎成本的低廉。未來,隨著分布式架構應用規模的擴大,各類功能的成本將會逐漸壓縮。
分布式架構在具體的應用中最大的挑戰就是各個節點的協同處理,隨著系統的運轉,要保證各個節點數據處理的一致性和完整性。在分布式計算技術的應用中,CPA理論是一個重要的指導原則,根據該原則的理論模型,在容錯性、可用性和一致性三者中間,系統只能同時保證兩個特點,例如,如果要保證數據的一致性和可用性,那么就要犧牲容錯性。目前,銀行業在分布式架構處理過程中,根據業務的特點一般都是放棄一致性,通過后期的應用設計,實現最終的一致性。分布式架構在應用中,設計和研發的難度增加,另外,隨著系統中各類節點數量的增加,對系統的運營管理和應急突發處理技術也提出了更高的要求。
近年來,隨著市場中信息技術能力的提升,眾多服務于數據信息的軟件也逐漸成熟。較為有代表性的是LINUX開源軟件,以X86服務器為例,具有較強的可靠性,能夠極大的促進系統的數據處理能力,并促進集群、大數據和網絡技術的廣泛應用,為分布式架構提供了有利的基礎條件。以下介紹了分布式架構在商業銀行、建設銀行、中國銀行中的實現與應用。
(一)分布式架構在商業銀行中的實現與應用
1. 主機領域
隨著新時代的到來,國家和政府也加大了對新型技術建設和投入的力度,各大銀行也都在不斷的推出新的銀行管理系統。農業銀行以系統建設為機,進行對主機架構的優化。首先,分離出交易路由層,實現銀行系統交易的統一和均衡調度的負載,降低各系統對主機的依賴程度,減少系統運行過程中能源的消耗;第二,采用讀與寫的分離設計,實現主機最大程度的開放,提高主機的兼容性,將查詢類的應用處理轉移到X86服務器上,并通過DRDA的訪問方式進行對主機數據庫的訪問,從新型系統的試點統計情況來看,查詢類交易下移之后可以比下移之前節省約一半的主機資源消耗,節約能源的效果十分明顯,可以有效的降低銀行日常運行的成本;第三,將明細數據轉移到銀行系統的開放性平臺中,利用HADOOP架構實現對各類業務的明細查詢,分工明細,可以節約業務辦理的時間,提高系統使用效率;第四,將各類下移的業務系統統一轉移到系統的開放型平臺中,減少對核心主機的使用頻率,降低能源消耗。
2. 開放領域
農業銀行實現了自己的全國數據和核心業務集中之后,在銀行中大力的推行集群架構和信息技術的應用,逐漸采用LINUX技術代替了UNIX技術,使用X86服務器代替了小型機設備,并將集群數據庫逐漸引進到系統架構中,采取了存儲的云端應用,建立了更加開放的分布式架構,同時,加強了對系統的監控和系統功能的研發,降低了傳統的分布式架構中由于節點眾多而造成的運營管理壓力,提高了系統的管理效率和標準化運營水平。
目前,農業銀行的開放式架構已經從應用的接入層、服務層、數據服務層和存儲服務層多個層面實現了分布式管理和部署。其中,應用接入層,也就是業務需求的接入層,負面對需求的接受和后續交易的分配,同時保證整個系統的負載平衡。通過接入層的應用,實現了系統前端和后端的信息互通,系統的后端可以根據實際需求隨時進行自我性能和容量的拓展,具有較強的靈活性。
應用服務層主要是對前端各類需求和指令的邏輯處理,主要平臺是.net和.java,由于分布式中各節點的平衡和相對獨立的運行狀態,所以系統中任何一個節點出現問題時,都可以通過系統前端的均衡負載集群及時的判斷和應急處理,保證故障節點之外的整個系統還可以有效運行,服務層的硬件皆采用X86服務器,保證系統資源的靈活性。
3. 數據服務層數據的存取
數據服務層的主要功能是對數據的存儲,可以具體的分為聯機事物處理和聯機分析處理兩個方向。聯機事物處理一般采用較為成熟的供貨商的產品,在市場中同類企業一般有2~3家,保有一定市場競爭的同時降低了銀行業設備采購的集中風險。在具體的應用中,如果是業務量較大的聯機事務處理,可以采用讀寫分離的設計,實現聯機與批量的分離,或者按照其它的特性對數據進行有規律的拆分,例如網銀系統,每天的交易使用量過億次,巨大的工作量如果采用單數據庫系統的壓力非常大,如果在運行中能夠按照地域、客戶種類、客戶級別等多個緯度進行數據庫的拆分,實現數據的橫向拓展,那么即便是有一個緯度的數據庫出現故障,對整個網銀數據庫的運行影響也是比較小的。目前,隨著我國X86服務器性能穩定的提升和集群數據庫技術的逐漸成熟,銀行也加強了X86服務器在數據庫領取中的推廣和使用。近年來,我國的銀行信貸系統的數據庫設備已經大多轉移到X86服務器上,每天的交易數量超過三千萬次。X86服務器也應用在新一代的銀行卡辦理活動中,隨著新一代銀行卡的推出,新的數據庫計算環境隨之建立,服務器根據新型業務的類別和特點,進行了有針對性的保護設計,保證了架構中單一節點出現故障之后其它節點的連續進行。對于業務量不是很大的情況,利用虛擬技術,構建集中部署、有效隔離和彈性伸縮的數據庫資源池,為系統整合提供了支撐。
聯機分析處理領域,銀行內部也較早的實現了分布式數據庫的集群架構。早在2011年,銀行進行了審計系統的建設,基于分布式數據庫集群的建設,使用了X86服務器,全面的實現了銀行審計業務數據的集中,集中的數據量超過了30TB,滿足了大多是審計人員的工作需要。隨之銀行將分析型系統的數據全部架構在X86服務器集群之上。在隨后的兩年時間里,伴隨著信息技術水平的不斷提升,銀行業在加強數據系統的同時積極的同社會廠商合作,系統運行中的各個難點也不斷的被攻破,分布式的MPP集群數據庫被逐步的建立,目前,銀行的聯機分析處理領域中最大的集群可以達到56個節點,數據總量達2PB,每天的作業量在四萬次以上。在數據處理過程中,遇到業務邏輯相對簡單的領域,多采用HADOOP的架構形式。截至2013年年底,銀行的核心系統的查詢業務已經都轉移到HADOOP平臺中,即滿足了客戶的查詢需求,也提高了系統使用的效率性,節約了系統運行的成本。
4. 存儲服務層
存儲層的主要功能是對各級數據的存儲和備份,目前,銀行系統使用較多的存儲是NAS和SAN兩類,并利用虛擬化、存儲復制等技術實現數據的存儲和利用。產品供應方面市場中保有3家以上,競爭良好,近年來,隨著國有產品技術的提升,國產SAN和NSA在存儲方面的應用也得到了廣泛的推廣。另外,我國的基礎服務器、固態盤和軟件的分布式存儲技術也都獲得了極為明顯的進步。
采用分布式架構,可以降低系統中單個節點對系統基礎的依賴性,通過架構來保證系統整體的穩定性。但是,隨著分布式架構應用的逐漸擴大,系統的設備和數量也在快速的增長,所以在系統具體的運營管理中,還有很多需要完善的地方。在今后分布式架構的管理中,應大力加強對系統的監控管理,同時堅持研發和推廣屬于銀行自己的自動化管理平臺,推廣統一的管理程序,統一系統的管理流程。
(二)分布式架構在建設銀行中的實現與應用
中國建設銀行基于X86分布式架構,將大數據、查詢類以及渠道類業務逐漸轉變為分布式架構。該行經過一定的業務分析,將可以從集中式架構中分離出來的、對數據一致性要求較低的業務拆分開來。比方以前對客戶信息進行管理的這一功能主要集中于大型機上,并利用組件化設計、業務分析,對獨立客戶信息組件進行了定義。將客戶信息管理業務功能從大型機中轉移到分布式架構中。
此外,建行還研究探索了客戶渠道中分庫分表的分布式架構,分布式架構可以對分庫分表進行相應的改造,使其能夠更好的應對不斷增長的電子渠道龐大的數據量與交易量。就客戶渠道而言,手機銀行、網銀擔負著的交易量非常大,就這一問題可以建立一個公共的數據庫,將其拓展成多個同構的公共庫,進而促進數據分布存放的實現。結合客戶的ID取模可以垂直拆分數據庫,進而降低了高并訪問給數據量造成的壓力。經過上述改造,可以將1個客戶的過程流水、限額以及緩存等儲存在1個數據庫中,以便降低跨庫失誤現象的產生,為客戶體驗提供有力的保障。在核心賬戶的交易上,建設銀行還對數據實現從強一致性轉變為最終滿足一致性進行了相關的探索。并且利用失誤的分階段提交、補償機制以及異常錯誤的檢測等漸漸把銀行賬務系統也轉移至分布式架構中。
(三)分布式架構在中國銀行中的實現與應用
中國銀行引入了一種低成本PC服務器(x86平臺)的分布式開源技術體系,在硬件上,采用了相對低廉的x86平臺,降低了IT投入成本。從交易量上看,微信“搖一搖、搶紅包”、支付寶“雙十一”秒殺等活動遠大于其他的商業銀行。這充分說明了利用橫向擴展,分布式架構的處理能力非常強大。此外,也體現出分布式架構已經逐漸走向成熟,該技術具有一定的可靠性,能夠再一定程度上滿足傳統企業對穩定性、應用可用性的要求。
(四)分布式架構在興業銀行中的實現與應用
隨著業務規模地不斷擴大,以及相關產品和服務種類地迅速增加,銀行自身的數據總量在劇烈膨脹、數據類型也在不斷增多。與此同時,隨著我國金融市場的逐步開放,以互聯網為代表的現代信息科技,特別是,門戶網站、社區論壇、微博、微信等新型傳播方式的蓬勃發展,移動支付、搜索引擎和云計算的廣泛應用,構建起了全新的虛擬客戶信息體系,數據海量化、多樣化、快速化和價值化。銀行當前數據分析平臺體系(包含基礎平臺、分析集市、分析倉庫等)積累了豐富的數據,為信用卡各項業務發展提供穩定高效的數據支持。然而,隨著大數據時代的到來,基礎數據正向著大量、多樣、高速、價值方向轉化,傳統數據處理技術已漸漸無法滿足未來數據的變化及發展趨勢,因此銀行搭建了互聯網渠道非結構化數據采集、處理、存儲的大數據基礎平臺,本著“統一規劃,分步實施,循序漸進,迭代上升”的理念,項目以基礎平臺搭建為主,建立分布式處理框架,重點實現異構數據采集、處理和存儲,并探索挖掘客戶互聯網行為標簽。
隨著信息技術的提升和互聯玩+時代的到來,銀行業的信息交換和整合的需求越來越強。隨著銀行操作數據的存儲與計算能力的加強,各個系統之間也不在是過去信息零溝通的孤島局面,各個系統的數據都有了統一的標準和規劃,都為系統的整體提供保證和效用,也為銀行業在日益激烈的市場競爭中贏得有利的局勢,為銀行業今后的穩定發展奠定了基礎。分布式存儲與計算系統架構在銀行中應用,即可以提高系統對數據的高效處理能力,也提高了信息系統的靈活性、兼容性、經濟性和高效性。本文主要介紹了分布式數據架構的發展背景、數據存儲的整體架構,從網絡理論的基礎著手,對系統架構在銀行運營管理中的具體應用進行研析,希望能為分布式存儲與計算在銀行業的實現與應用提供有價值的參考資料,以促進銀行服務的整體發展。
作者單位:戴云飛 ,四川大學軟件工程學院石明, 西南財經大學