恒豐銀行科技部總經(jīng)理 張曉丹
張曉丹在恒豐銀行新的兩地三中心建設(shè)過程中對(duì)BAT等云數(shù)據(jù)中心建設(shè)的經(jīng)驗(yàn)和想法進(jìn)行了梳理,將傳統(tǒng)金融行業(yè)的高可用性、高安全性、高一致性與數(shù)據(jù)中心進(jìn)行了融合。張曉丹說:“金融行業(yè)做兩地三中心建設(shè)首先是有監(jiān)管要求。銀行監(jiān)管要求規(guī)定:一千億資產(chǎn)的銀行需要進(jìn)行兩地三中心的建設(shè);超過一千億以上資產(chǎn)的銀行要建設(shè)異地?cái)?shù)據(jù)中心;一千億資產(chǎn)規(guī)模以下建立同城數(shù)據(jù)中心,滿足異地災(zāi)難性的要求。”
可用性與連續(xù)性應(yīng)并重
金融行業(yè)做兩地三中心建設(shè)需要提高可用性,包括如何高效的利用容量和資源控制成本。但多活數(shù)據(jù)中心系統(tǒng)數(shù)量與高可用性并不存在直接的線性關(guān)系,應(yīng)將連續(xù)性和可用性做出界定,在具體實(shí)踐中,張曉丹建議:可把連續(xù)性界定為同城的園區(qū)級(jí)或者地域級(jí)大型災(zāi)備概念,可用性面對(duì)的是一個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)整個(gè)的可用性。也就是設(shè)計(jì)災(zāi)備的時(shí)候一定要進(jìn)行數(shù)據(jù)的同步控制,因?yàn)橐粋€(gè)相對(duì)獨(dú)立的系統(tǒng)不會(huì)受另外一個(gè)系統(tǒng)的影響,如果兩個(gè)系統(tǒng)做數(shù)據(jù)的高度同步復(fù)制,一定會(huì)耦合在一起,反而影響整體的可用性。所以,連續(xù)性的發(fā)展,過渡重視了災(zāi)備,強(qiáng)調(diào)了災(zāi)備的RTO、RPO時(shí)間,從而反過來影響可用性。
銀行等金融機(jī)構(gòu)的傳統(tǒng)IT架構(gòu)一直在強(qiáng)調(diào)提高可用性,為了提高可用性,就會(huì)從不同層次上不斷的增加冗余,不斷的增加冗余后,最后帶來的問題是成本很高,冗余容量很大,可能10%的最終冗余容量都用不掉。此外,冗余點(diǎn)越多,每個(gè)系統(tǒng)的耦合點(diǎn)越多,本質(zhì)上也降低了系統(tǒng)的可用性。所以,如何提高可用性,平衡連續(xù)性,高效利用容量資源控制成本,這些都是兩地三中心建設(shè)中要考慮的問題。
三中心地位應(yīng)有區(qū)別
建設(shè)兩地三中心,而不是強(qiáng)調(diào)三個(gè)中心一定多活。在傳統(tǒng)數(shù)據(jù)復(fù)制技術(shù)無(wú)法消除本身的技術(shù)缺陷之前,三個(gè)中心的地位應(yīng)有區(qū)別。生產(chǎn)中心地位最為重要,同城數(shù)據(jù)中心相對(duì)次要,異地中心地位稍低一些。這樣的兩地三中心構(gòu)成一個(gè)相對(duì)多活的架構(gòu)。
消除中心與中心之間的耦合度
新一代兩地三中心多活系統(tǒng)要盡可能消除各個(gè)數(shù)據(jù)中心與中心之間的網(wǎng)絡(luò)、應(yīng)用、數(shù)據(jù)等各方面的耦合度,避免一個(gè)中心的問題會(huì)影響到另外一個(gè)中心。同時(shí),應(yīng)對(duì)應(yīng)用系統(tǒng)進(jìn)行連續(xù)性和可用性分析,對(duì)于不同級(jí)別的要求,賦予不同的技術(shù)方案、運(yùn)維方案,以提供不同成本的一解決方案。
連續(xù)性分為技術(shù)的連續(xù)性和業(yè)務(wù)的連續(xù)性,業(yè)務(wù)的連續(xù)性就是當(dāng)你的技術(shù)無(wú)法解決,要通過業(yè)務(wù)人員手工補(bǔ)數(shù)據(jù)等進(jìn)行解決。數(shù)據(jù)中心連續(xù)性特性是為了防止出現(xiàn)站點(diǎn)級(jí)或者地域級(jí)災(zāi)難,地域級(jí)災(zāi)難也就是當(dāng)城市整體出現(xiàn)海嘯、地震、大面積停電、停水等地域級(jí)的問題。
國(guó)家針對(duì)連續(xù)性的分級(jí)標(biāo)準(zhǔn),一般分為0到5級(jí)一共6級(jí)的分類,其核心指標(biāo)包括RTO以及RPO。也就是當(dāng)出現(xiàn)災(zāi)難時(shí),另外一個(gè)地方進(jìn)行恢復(fù)的時(shí)候是否會(huì)有丟失,最高級(jí)別的RPO就是數(shù)據(jù)丟失為零,或者接近零,同城和異地方案均需滿足上述要求。
基礎(chǔ)設(shè)施架構(gòu)如何提升高可用性?
從基礎(chǔ)設(shè)施架構(gòu)方面如何提升可用性?從水的制冷功能,電力的冗余,甚至上游的水源是不是來自兩個(gè)不同的水庫(kù)?供電是否來自兩個(gè)不同的發(fā)電站?包括數(shù)據(jù)中心是否建設(shè)在飛機(jī)的主航線下等等細(xì)節(jié)。
從存儲(chǔ)級(jí)別、服務(wù)器系統(tǒng)級(jí)別、數(shù)據(jù)庫(kù)中間件級(jí)別,運(yùn)營(yíng)級(jí)別分別進(jìn)行不同的高可用的保證,最終達(dá)到高可用的指標(biāo)。如果一個(gè)系統(tǒng)運(yùn)行達(dá)到5個(gè)9的可用性,一年停機(jī)時(shí)間只能5分鐘,4個(gè)9的可用性,系統(tǒng)一年的停機(jī)時(shí)間50分鐘。需要達(dá)到4個(gè)9和5個(gè)9這樣的指標(biāo)不是靠運(yùn)維,必須靠系統(tǒng)的冗余設(shè)計(jì)來解決。
可用性的設(shè)計(jì)主要考慮不同的冗余時(shí)間, 7×24或者5×8,冗余資源越來越多,最后成本會(huì)難以控制。
如何平衡連續(xù)性、可用性和容量?
對(duì)于不同的連續(xù)性級(jí)別,主中心配多少容量,同城配多少容量,異地配多少容量,需要有一個(gè)總體的規(guī)劃。其設(shè)計(jì)需要平衡連續(xù)性、可用性和容量。
數(shù)據(jù)同步有三種方式,一是最大保護(hù)模式,最大可用模式以及最大性能模式,最大性能模式是兩個(gè)數(shù)據(jù)庫(kù)異步;最大保護(hù)模式是每一筆交易寫下來,還要同時(shí)寫到異地的數(shù)據(jù)中心,這個(gè)數(shù)據(jù)中心是同城的幾十公里,或者異地的上千公里,另外一個(gè)數(shù)據(jù)中心寫完后才可以回復(fù)上層應(yīng)用已完成。但存在的問題是如果距離跨度大,性能會(huì)急劇下降,所以不可能上千公里的進(jìn)行部署。在同城50公里范圍內(nèi)可以勉強(qiáng)支持,如果一筆交易中間出現(xiàn)問題,兩個(gè)系統(tǒng)的耦合點(diǎn)出現(xiàn)異常,造成一筆交易不成,后續(xù)交易全部停在那兒。所以,一般沒人太敢用這種模式。
最大可用模式,則是平時(shí)是雙寫,一旦偵測(cè)到同步的數(shù)據(jù)庫(kù)有問題,或者兩邊的耦合線路有問題,質(zhì)量下降,就把這個(gè)同步停下來,現(xiàn)在金融行業(yè)大部分用這個(gè)技術(shù)。銀行交易量極大,比如工商銀行、建設(shè)銀行,一天的交易量達(dá)到三億筆,如果數(shù)據(jù)不一致,幾乎無(wú)法保障。傳統(tǒng)銀行是柜面上依據(jù)憑條進(jìn)行交易目錄,出問題后可以重新錄一遍。但現(xiàn)在全部通過系統(tǒng),一旦數(shù)據(jù)丟失,如想保障非常困難。
如何實(shí)現(xiàn)數(shù)據(jù)多活?
所以,在現(xiàn)有數(shù)據(jù)庫(kù)復(fù)制技術(shù)環(huán)節(jié)下,很難做到三個(gè)中心的同等地位,在同城的兩個(gè)中心也無(wú)法保證同樣的地位。阿里現(xiàn)有一些技術(shù)可以在同城之間實(shí)現(xiàn)數(shù)據(jù)多活,在應(yīng)用層能實(shí)現(xiàn)應(yīng)用的多寫。同時(shí)在多寫的過程中實(shí)現(xiàn)三寫兩同步,其概念就是在同城有三個(gè)數(shù)據(jù)中心,一筆交易下來,同時(shí)往三個(gè)中心寫,只要任意兩個(gè)中心回復(fù),系統(tǒng)即認(rèn)為交易完成。當(dāng)三個(gè)中心之間的耦合,如果任意兩個(gè)中心出現(xiàn)了互通的不穩(wěn)定,或者一個(gè)中心出現(xiàn)問題,也不會(huì)波及到另外兩個(gè)中心的對(duì)外業(yè)務(wù)。當(dāng)然,如果三個(gè)中心的耦合共同出了問題,對(duì)外服務(wù)自然也會(huì)中斷。
張曉丹說:“基于上述思路,恒豐銀行用一個(gè)全球的負(fù)載均衡,靠DNS自動(dòng)把流量和數(shù)據(jù)分解到兩個(gè)數(shù)據(jù)中心。根據(jù)需要,有些流量也可以分解到異地的第三個(gè)中心,Web層面及APP都是負(fù)載均衡,外面用戶的訪問可以均衡的分在兩個(gè)中心和三個(gè)中心,每個(gè)中心可以均衡的負(fù)載多個(gè)節(jié)點(diǎn),寫節(jié)點(diǎn)又可以分在兩個(gè)相對(duì)獨(dú)立的中心模塊,數(shù)據(jù)庫(kù)盡可能解決多可用性,但是同城之間是一個(gè)熱備,到異地可以是冷備。”
從張曉丹的介紹可以看出,上述整體方案不僅平衡了連續(xù)性要求,可用性要求,在容量方面也做了充分考慮,為金融行業(yè)新一代兩地三中心多活系統(tǒng)提供了很好的實(shí)踐。