分布式信息系統(tǒng)的高可用架構(gòu)設(shè)計(jì)解析_第1頁(yè)
分布式信息系統(tǒng)的高可用架構(gòu)設(shè)計(jì)解析_第2頁(yè)
分布式信息系統(tǒng)的高可用架構(gòu)設(shè)計(jì)解析_第3頁(yè)
分布式信息系統(tǒng)的高可用架構(gòu)設(shè)計(jì)解析_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

前言根據(jù)我國(guó)十四五規(guī)劃,推動(dòng)高質(zhì)量發(fā)展,必須立足新發(fā)展階段、貫徹新發(fā)展理念、構(gòu)建新發(fā)展格局,將“新”貫徹規(guī)劃始終,以“新”推動(dòng)我國(guó)經(jīng)濟(jì)和社會(huì)高質(zhì)量發(fā)展。加快新型基礎(chǔ)設(shè)施建設(shè)是“新”的重要組成,統(tǒng)籌推進(jìn)與傳統(tǒng)基礎(chǔ)設(shè)施等建設(shè),共同打造現(xiàn)代化基礎(chǔ)設(shè)施體系。在云計(jì)算時(shí)代,不論應(yīng)用架構(gòu)還是基礎(chǔ)設(shè)施架構(gòu),都采用分布式架構(gòu)方式構(gòu)建。對(duì)于業(yè)務(wù)連續(xù)性要求比較嚴(yán)苛的金融行業(yè),系統(tǒng)高可用成為一項(xiàng)重要挑戰(zhàn)和課題。本文將結(jié)合金融行業(yè)十多年實(shí)戰(zhàn)經(jīng)驗(yàn)對(duì)其課題進(jìn)行淺析。一、高可用概念與指標(biāo)高可用(HighAvailability)指通過(guò)盡量縮短計(jì)劃之內(nèi)的日常維護(hù)操作和計(jì)劃之外的軟硬件故障所導(dǎo)致的停機(jī)時(shí)間,以提供系統(tǒng)和應(yīng)用得可用性。系統(tǒng)高可用的本質(zhì)要求是指通過(guò)各種手段保證系統(tǒng)服務(wù)的業(yè)務(wù)連續(xù)性,盡量降低對(duì)客戶的影響。SLA是系統(tǒng)可用性的一個(gè)關(guān)鍵指標(biāo),指在一年為單位的時(shí)間周期中,系統(tǒng)可正常使用時(shí)間的占比。例如,全年共計(jì)8760(365×24)個(gè)小時(shí),系統(tǒng)因各種原因有9小時(shí)無(wú)法對(duì)外提供服務(wù),那么,全年可用性即為(8760-9)/8760≈99.9%,即業(yè)界所謂的3個(gè)9(見(jiàn)文章后說(shuō)明)。為提高系統(tǒng)SLA,容錯(cuò)的架構(gòu)設(shè)計(jì)在分布式系統(tǒng)中尤其重要,因?yàn)殚_(kāi)放平臺(tái)相比于主機(jī)的本質(zhì)特點(diǎn)是軟硬件均可能發(fā)生故障,均不可靠。對(duì)各種原因引起的單次故障,采用RTO和RPO兩個(gè)指標(biāo)衡量。RPO(RecoveryPointObjective)指對(duì)應(yīng)用數(shù)據(jù)而言,信息系統(tǒng)的生產(chǎn)數(shù)據(jù)可恢復(fù)到故障發(fā)生前多久的時(shí)間點(diǎn);RTO(RecoveryTimeObjective)指災(zāi)難發(fā)生后,系統(tǒng)服務(wù)從故障時(shí)點(diǎn)到重新提供服務(wù)的時(shí)間點(diǎn)。二者均以時(shí)間作為單位,RPO側(cè)重故障發(fā)生前丟失數(shù)據(jù)的最多時(shí)長(zhǎng),RTO側(cè)重故障發(fā)生后恢復(fù)服務(wù)的最快時(shí)長(zhǎng)。故障恢復(fù)過(guò)程也包括應(yīng)用數(shù)據(jù)恢復(fù),在故障搶修時(shí)需綜合衡量RTO和RPO。例如,金融業(yè)的數(shù)據(jù)更加重要,當(dāng)無(wú)法立即恢復(fù)服務(wù)時(shí)需先完成數(shù)據(jù)恢復(fù),即RPO優(yōu)先于RTO。有部分場(chǎng)景(比如支付渠道類)需要保證RTO優(yōu)先于RPO。這其實(shí)是一種系統(tǒng)服務(wù)時(shí)間(應(yīng)用層級(jí))和業(yè)務(wù)信息數(shù)據(jù)(數(shù)據(jù)庫(kù)層級(jí))的平衡判斷。二、高可用設(shè)計(jì)思想各公司的高可用設(shè)計(jì)不盡相同,但設(shè)計(jì)理念卻存在相似和相同的地方,主要如下:(一)

在內(nèi)部設(shè)計(jì)方面,通過(guò)組件冗余設(shè)計(jì)有效避免單點(diǎn)故障。在機(jī)房方面,將應(yīng)用部署到多個(gè)AZ(采用互相獨(dú)立的供電、網(wǎng)絡(luò)、冷卻等基礎(chǔ)設(shè)施),金融行業(yè)核心系統(tǒng)多采用兩地三中心,甚至三地三中心;在服務(wù)器方面,網(wǎng)絡(luò)設(shè)備存在冗余線路、多路端口等,服務(wù)器配置雙路電源、雙網(wǎng)卡、雙路CPU、磁盤陣列RAID等;在中間件方面,通過(guò)IaaS和PaaS云計(jì)算資源,提供多應(yīng)用服務(wù)實(shí)例。系統(tǒng)的核心資產(chǎn)是數(shù)據(jù),因此數(shù)據(jù)庫(kù)高可用尤其重要。受光速等物理規(guī)律限制,距離一千公里的兩地?cái)?shù)據(jù)同步性會(huì)受限,RPO難以保證為零,這是任何數(shù)據(jù)庫(kù)都面臨的挑戰(zhàn)。由于兩地同時(shí)故障概率很低,Oracle的farsync就基于該理念設(shè)計(jì),通過(guò)將數(shù)據(jù)庫(kù)日志同步傳到近距離的異地城市來(lái)優(yōu)化RPO。傳統(tǒng)數(shù)據(jù)庫(kù)(如Oracle)采用高可用SAN存儲(chǔ)、ADG數(shù)據(jù)庫(kù)復(fù)制等方式提升數(shù)據(jù)可靠性;分布式數(shù)據(jù)庫(kù)則大多采用多份數(shù)據(jù)副本的方式提升數(shù)據(jù)可靠性;hadoop等多種大數(shù)據(jù)軟件亦采用該方式,當(dāng)然也存在部分產(chǎn)品采用存算分離,將數(shù)據(jù)存儲(chǔ)到一體化分布式存儲(chǔ)產(chǎn)品中。(二)

在外部關(guān)聯(lián)方面,通過(guò)服務(wù)降低方式及時(shí)避免外部因素影響。再完善的設(shè)計(jì)都難以預(yù)料系統(tǒng)所在關(guān)聯(lián)環(huán)境遇到的各種風(fēng)險(xiǎn)和故障。當(dāng)系統(tǒng)遇到流量陡增、關(guān)聯(lián)系統(tǒng)故障等各種故障時(shí),可采用“有所取舍”的策略進(jìn)行服務(wù)降級(jí)來(lái)保證系統(tǒng)可用性,限流和熔斷是兩種常見(jiàn)的處理方式。限流是指采用固定窗口、滑動(dòng)窗口、令牌桶等算法對(duì)多業(yè)務(wù)維度限流保證系統(tǒng)可用性。金融行業(yè)多采用對(duì)省市代碼、交易碼、上游系統(tǒng)等多種方式限流保證核心系統(tǒng)不被瞬時(shí)業(yè)務(wù)高峰沖垮。熔斷是指通過(guò)監(jiān)控等方式感知到關(guān)聯(lián)系統(tǒng)問(wèn)題時(shí),關(guān)閉對(duì)其調(diào)用來(lái)保證自身不因雪崩效應(yīng)被影響。金融行業(yè)多采用對(duì)部分交易熔斷來(lái)保障關(guān)鍵核心交易的可用性。這是丟卒保帥的思路保證了系統(tǒng)的整體可用性。限流是避免上游消費(fèi)方系統(tǒng)對(duì)自身的影響,熔斷是避免下游服務(wù)方系統(tǒng)對(duì)自身的影響。二者處理過(guò)程中均需優(yōu)化因服務(wù)降級(jí)帶來(lái)的用戶體驗(yàn),比如,在秒殺場(chǎng)景中,搶購(gòu)請(qǐng)求可能未到達(dá)真正服務(wù)器就因被隨機(jī)選中而拒絕返回,但用戶并不感知背后所發(fā)生的實(shí)際情況,而是感覺(jué)自己可能因運(yùn)氣差、用戶多等原因而未搶到。三、高可用運(yùn)行機(jī)制日常項(xiàng)目研發(fā)中仍然存在部分理念:1)采用高可用的分布式數(shù)據(jù)庫(kù)就能保證系統(tǒng)高可用;2)采用高可用的架構(gòu)設(shè)計(jì)就能保證故障發(fā)生時(shí)的系統(tǒng)高可用。前者忽略了數(shù)據(jù)庫(kù)只是系統(tǒng)的一部分,忽略了部分和整體的關(guān)系,后者沒(méi)有意識(shí)到“實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”。為保證系統(tǒng)的高可用,筆者認(rèn)為:在組織級(jí)方面,建立一系列企業(yè)級(jí)高可用保證運(yùn)行機(jī)制,建立完善的配套監(jiān)控和應(yīng)急容災(zāi)機(jī)制。1)只有建立完善的監(jiān)管控工具,才能通過(guò)交易數(shù)量、響應(yīng)時(shí)間、交易成功率等全方位監(jiān)控指標(biāo)及時(shí)發(fā)現(xiàn)系統(tǒng)異常,保證后續(xù)的人工操作,甚至通過(guò)工具進(jìn)行自動(dòng)化操作,或者通過(guò)AIOps及時(shí)發(fā)現(xiàn)尚未發(fā)生的故障,真正做到防患于未然。2)只有建立完善的應(yīng)急機(jī)制,才能保證檢測(cè)到系統(tǒng)運(yùn)行指標(biāo)異常后有一二線人員及時(shí)介入處置。金融行業(yè)在日常生產(chǎn)運(yùn)維中有“戰(zhàn)時(shí)”應(yīng)急響應(yīng),但部分故障恢復(fù)仍需數(shù)小時(shí),一般企業(yè)的應(yīng)急響應(yīng)可想而已。在系統(tǒng)級(jí)方面,通過(guò)研發(fā)企業(yè)級(jí)混沌工具、沉淀系統(tǒng)級(jí)測(cè)試案例等對(duì)系統(tǒng)高可用性進(jìn)行主動(dòng)驗(yàn)證。隨著分布式和微服務(wù)架構(gòu)的日漸流行,系統(tǒng)復(fù)雜性劇增,傳統(tǒng)的測(cè)試方法已難以覆蓋各種潛在故障?;煦绻こ痰暮诵睦砟钍窃诳刂票ò霃降那疤嵯略谏a(chǎn)環(huán)境創(chuàng)建各類故障以實(shí)際檢測(cè)系統(tǒng)高可用。金融業(yè)可能因各種原因短期內(nèi)不會(huì)在生產(chǎn)演練,但可在灰度環(huán)境和測(cè)試環(huán)境演練。綜上所述,系統(tǒng)高可用是保證系統(tǒng)業(yè)務(wù)連續(xù)性的核心需求,需投入大量人力和軟硬件等資源,需貫穿項(xiàng)目研發(fā)和生產(chǎn)運(yùn)維全過(guò)程。在架構(gòu)設(shè)計(jì)和運(yùn)行機(jī)制設(shè)計(jì)上需按照系統(tǒng)重要性進(jìn)行分級(jí)分類管理,綜合衡量資源成本和業(yè)務(wù)收益,保證故障處置時(shí)的取舍與平衡。這是一項(xiàng)系統(tǒng)性的工程設(shè)計(jì),絕非使用了高可用的分布式數(shù)據(jù)庫(kù)就可以做到的事情。全年可用性說(shuō)明1)3個(gè)9(99.9%):8760×0.1%=8760×0.001=8.76小時(shí)2)4個(gè)9(99.99%):8760×0.01%=8760×0.0001=0.876小時(shí)=52

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論