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