能夠理解爲自白書,知道本身太落後啦~web
互聯網技術架構給咱們的啓示數據庫
——中國建設銀行信息技術管理部副總經理 王申科編程
據阿里官方公佈的數據,2013年「雙11」這一天,天貓、淘寶成交額共計350.19億元,至關於10月全國日均消費額的一半,較去年的191億元增加83%。支付寶交總交易筆數達到1.88億筆,其中無線支付達到4518萬筆,分別是去年同一天的1.77倍和5倍。 安全
參照央行發佈的2013年第二季度支付體系運行數據,二季度全國銀行卡消費業務筆數約爲30.6億筆,平均天天約3400萬筆,那麼支付寶「雙11」1天的支付筆數就至關於二季度全國的POS機交易量的5.5倍,也至關於國際支付機構Paypal一個月的支付量,比肩Visa全球日刷卡量。 服務器
做爲一名商業銀行IT從業人員,筆者一直關注阿里、騰訊、Google等互聯網企業的技術路線、技術架構和技術管理理念,探究其如何可以支持如此的業務創新和技術保障能力。網絡
1、幾個基本計算機理論與模型架構
1.分佈式系統。包括分佈式操做系統、分佈式程序設計語言及其編譯系統、分佈式文件系統和分佈式數據庫系統等。框架
Google在構建搜索系統時,第一次將分佈式系統和互聯網結合起來,用分佈式系統來解決互聯網問題。Google的分佈式系統設計有幾個重要的特徵:視失敗爲常態;重視橫向伸縮性;預測性能,追求低延遲,廉價的硬件和軟件,推崇重用,靈活設計,加入足夠的監測點和調試功能來幫助往後的調試,優先虛擬計算。 Google的這些設計思想,成爲互聯網應用開發事實上的標準和規範。 運維
2.CAP:一致性理論。CAP理論(C: Consistency 一致性,A: Availability 可用性,P: Tolerance of network Partition 分區容忍性)指出,一個分佈式系統不可能知足一致性、可用性和分區容錯性這3個需求,最多隻能同時知足其中的兩個需求。所以應用系統的關注點不一樣,採用的策略也是不同的,只有準確把握了應用需求,纔有可能利用好CAP理論。對互聯網應用,可用性與分區容忍性優先級要高於數據一致性。 異步
3.ACID 和 BASE 模型。ACID 是指在數據庫管理系統中事務具備的4個特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)。在數據庫系統中,一個事務是由一系列數據庫操做組成的一個完整的邏輯過程。事務的核心思想就是爲了保證數據的一致性。ACID 模型被引伸爲強調數據一致性的開發理念,被銀行、證券等機構普遍採用。
BASE 則是另一個理念和思路,Basically Available 爲基本可用,Soft-state 爲軟狀態/柔性事務,Eventual Consistency 爲最終一致性。BASE模型徹底不一樣於ACID模型。犧牲高一致性,得到可用性。對一個「基本可用」系統來講,須要把系統中的全部功能點進行優先級的劃分,對於系統內部的狀態,採用一種柔性的策略,假如系統內分佈了3個功能模塊,容許它們在某一時刻3個模塊的狀態能夠不一致。而後經過業務和技術的手段,例如採用異步機制或者批處理方式,來保證系統經過柔性狀態一致來得到可用性。當前互聯網應用在業務容許範圍裏廣泛參考 BASE 模型來進行系統設計。
4.SOA 面向服務架構。是一種鬆散耦合的架構理念和模型,針對粗粒度應用組件進行分佈式部署、組合和使用。服務層是SOA的基礎,能夠直接被應用調用。
2、互聯網應用的技術基礎
1.基於x86服務器集羣和開源軟件搭建技術設施,分佈式架構+開源軟件是其基本特徵。X86服務器是互聯網應用基本計算資源,例如Google、阿里等公司,每一個數據中心動輒部署上萬臺、幾十萬臺和百萬臺X86服務器,進行動態資源調度。開源操做系統Linux、開源web服務器Apache、開源數據庫MySQL、開源腳本語言Php/Perl……這些著名的開源軟件支撐了互聯網公司發展。開源軟件的發展一樣離不開互聯網發展的支持。初期的開源軟件代碼缺陷和設計缺陷不少,正是經過應用發現軟件缺陷、不斷修補的方式,既支持了互聯網公司的發展,又促進了開源軟件的發展。從對開源軟件的使用和修改開始,互聯網公司就逐步積累和掌握了自主研發能力。
2.積極進取的創新精神。以阿里巴巴爲例,短短几年前後自主開發了以下技術產品:分佈式文件系統和分佈式存儲、搜索引擎技術、分佈式計算、分佈式機房、消息中間件、分佈式鎖管理、虛擬化和計算資源調度;Apache和Nginx等開源軟件定製、Java虛擬機調優(JVM)、開源數據庫調優;文件系統優化、網卡協議棧優化、操做系統資源隔離、操做系統資源管理、操做系統內存優化、虛擬化軟件底層研發;低功耗處理機、協處理器輔助應用、數據中心省電技術、新一代存儲技術、新一代網卡應用。
3.基於場景的需求分析和應用開發。總結阿里巴巴開發的原則以下:SOA服務化,全部系統採起服務化模式,系統之間進行必要的分拆和隔離,經過服務調用和消息通知的方式進行協同;BASE和ACID相結合,可以採起BASE模式的業務必定是異步方式,而核心的帳務信息必定是採起實時方式,保證ACID;無單點設計、可監控、可測試、可回滾、可禁用、短事務與柔性事務、異步設計、無狀態、使用成熟技術、業務分等級、業務可降級、多數據中心部署。
4.平臺化建設理念,提升開發效率和系統質量。蘋果公司的App store提供標準的開發平臺,全球開發者能夠充分發揮本身的聰明才智,開發個性化的應用,並經過蘋果應用商店發佈。蘋果公司向開發者提供了應用程序開發框架,以方便開發者的開發工做。開發框架包含三類組件:應用程序接口庫、開發工具和測試模擬器。
5.自動化部署和運維體系。阿里巴巴開發了一套資產信息採集程序和採集流程,將服務器、網絡設備、存貯等資產信息,採集到數據庫中。應用系統再也不關心具體的資源信息,不管資產仍是資源都是處於動態的變化中。經過資產信息和資源的變動流程,資產信息,硬件信息和應用信息的任何變動,必須經過系統進行變動記錄,詳細記錄每一個設備的生命週期裏的各類變化。變動流程和工做流系統對接,經過工做流系統進行分級審批以後,才能進行相應的變動。以自動化採集爲核心的資產管理體系,主動監控確保資源池一致性,保證資產信息的準確性。對資源進行回收和從新分配的時候,先要確保資源的狀態。對於資源的數據,必須採起主動監控的作法,確保數據的可靠性,其具體作法是天天對設備的信息進行從新抓取,並與數據庫裏的狀態進行匹配,發現不一致的數據,報警並鎖定資源,不容許對資源進行任何操做。經過這種自動化的方式,杜絕人爲錯誤,確保資產數據和資源池信息的數據一致性,是資源池可信的重要保證。
6.成本控制意識和自主掌控能力。互聯網企業的IT成本控制意識較強,面對激烈的市場競爭和客戶體驗的需求,須要敏捷的技術反應,徹底依賴通用技術和國際大名牌的IT設備和軟件供應商沒法知足這類需求。開源和廉價的X86服務器是最佳的選擇。短短几年時間,互聯網公司的技術研發能力和研發速度,明顯強於老牌的IT公司。這是一種以市場需求爲導向,以客戶體驗爲基礎,以技術架構創新爲手段,引領業務和技術創新的新模式。
3、商業銀行應用系統的技術基礎
1.通用信息技術和商業化軟件是基礎,集中式系統部署。多數商業銀行信息化建設遵循通用信息技術的路線,即採用商業化的大、中、小型計算機硬件系統及其配套的編程語言、操做系統、中間件工具軟件和數據庫,進行集中式部署。例如採用IBM大型機和P系列服務器、Unix操做系統、Oracle或DB2數據庫等,採用Cisco公司網絡設備和EMC等公司的存貯設備。銀行的各類應用基本運行在這樣的技術平臺上。最近幾年,隨着雲計算理念的普及和X86服務器性能和可用性的不斷提高,已經出現規模性部署X86服務器,構建雲環境的趨勢。
2.面臨徹底依賴供應商的被動局面。商業銀行在信息技術支持和保障能力、技術進步和創新能力、技術採購議價能力、設備升級週期和擴容、成本控制等方面,很大程度上依賴信息技術供應商。從歷史看,商業銀行應用系統大多采用三層架構:服務層、應用層和數據層,最近幾年逐步加入ESB層。每層採用雙機或集羣技術支撐業務應用。早期以縱向(scale-up)升級擴容爲主,如今逐步採用橫向(scale-out)擴容方式或虛擬化方式。這種歷史發展過程當中造成的架構和技術路線,很難適應發展迅速的互聯網時代應用需求。
3.交易系統突出資金安全和核算的準確性,數據一致性要求高,客戶體驗差。從模擬手工流程一路走來,商業銀行信息化建設始終圍繞內部業務管理、經營和風險控制的目標。應用系統存在存在以下問題:一是煙囪式結構,渠道不統一,整合性差;二是應用範圍小,非企業級;三是標準不一致和數據質量差;四是着眼銀行內部流程,對外客戶體驗不佳;五是網上銀行和手機銀行等具備互聯網特徵的應用,仍然構建在傳統的技術架構上,其應用系統也主要是把櫃面應用搬到網上銀行和手機銀行之上而已。
4、5點啓示
1.用互聯網的思惟,認真思考和規劃商業銀行的信息化建設工做。互聯網的創新正快速改變人們行爲習慣、思惟習慣,改變整個社會。銀行的生存和發展離不開外部的世界,銀行不去適應這種社會的變革,就會落後甚至淘汰。時下互聯網金融和金融互聯網的討論和創新如火如荼,顯著地影響人們的金融習慣,勢必引發銀行業重大變革。面���這樣洶涌的互聯網浪潮和變化愈來愈快的世界,咱們必需要有危機感。
2.引入分佈式架構和開源軟件,構建集中式和分佈式共存的架構體系。從應對市場的總體效果看,互聯網分佈式架構明顯優於商業銀行傳統集中式架構,核心差異在於兩類不一樣的應用架構理念,以及兩類不一樣的技術團隊管理、支持方式。所以,從應用入手,着手調整商業銀行傳統的技術架構和供應商管理方式,制定商業銀行的技術架構設計規範和部署策略,實現架構的科學管理。
3.突出核心能力,理性看待「去IOE」。僅從技術角度看,「去IOE」的實質是分佈式架構和集中式架構、開源軟件和商用軟件的選擇問題,各自的利弊見仁見智。商業銀行IT從業人員的核心競爭力主要體如今對銀行業務理解,以及對信息技術的熟練應用和應用架構設計能力,用信息化支持、推進和引領業務創新。
4.從設備供應商向服務供應商轉型。著名的IT公司要加快從設備供應商向服務供應商轉型,成爲用戶可信賴的戰略合做夥伴。從採購成本、服務水平、硬件和軟件能力、安全和掌控能力等方面看,用戶對諸如IBM、Oracle、EMC等國際著名公司的滿意度不斷降低,隨之出現「去IOE」的呼聲和行動。商業銀行新一輪信息化建設爲供應商轉型提供了一個很好的機會,供應商能夠和一些商業銀行創建戰略合做聯盟,成立專門的行業隊伍,蒐集需求,優化升級通用技術和軟件,及時解決用戶實際遇到的問題,順應並引領互聯網時代的技術需求。
5.積極主動與互聯網公司開展合做。當前互聯網公司已經取得了豐碩的成果,不但在業務創新上領先於傳統行業,並且在新技術研究和應用中也積累了豐富的經驗,在雲計算、分佈式系統和大數據處理等技術上領先傳統IT廠商,而且還在不斷加大投入,以保持技術優點。商業銀行要開始與先進的互聯網公司開展深刻合做,學習和吸取可能爲銀行所用的新業務模式和新技術,進一步拓寬業務思路,拓展技術視野和選擇範圍。