平臺或系統(tǒng)的容災(zāi)方案,該如何考量和設(shè)計?
相信不少人在生活中都接觸過所謂的“故障場景”,而這些“故障”的出現(xiàn),無疑給用戶和企業(yè)都帶來了一定的不良影響。那么,怎么讓系統(tǒng)或平臺在發(fā)生意外故障后仍能不間斷地運行呢?這篇文章里,作者討論了容災(zāi)方案的規(guī)劃與設(shè)計,一起來看。
日常生活當(dāng)中,我們經(jīng)常會接觸到因平臺系統(tǒng)故障服務(wù)無法正常訪問的情況。在過去的一年,很多頭部游戲、生活服務(wù)類產(chǎn)品接連爆出宕機事故,因為涉及面廣、影響范圍大,產(chǎn)生了很多“名場面”,在網(wǎng)絡(luò)上也是被頻繁的討論。
產(chǎn)品經(jīng)理在規(guī)劃系統(tǒng)和設(shè)計容災(zāi)方案時,需要從數(shù)據(jù)安全、業(yè)務(wù)穩(wěn)定、經(jīng)濟可行等角度出發(fā),考量各種故障場景,明確產(chǎn)品或系統(tǒng)應(yīng)保持的容災(zāi)級別或范圍,通過架構(gòu)升級、建立容災(zāi)響應(yīng)機制等手段,保證在發(fā)生意外故障后,業(yè)務(wù)系統(tǒng)仍能不間斷地運行。
本文也是結(jié)合自身工作當(dāng)中接觸到的的一些云平臺容災(zāi)經(jīng)歷,做了部分歸納整理,供相互學(xué)習(xí)和交流。
一、常見的故障場景
一般平臺產(chǎn)品故障場景主要包括單產(chǎn)品故障、服務(wù)器斷電或斷網(wǎng)和硬件故障場景。當(dāng)然也存在一些其他的原因,像編碼的邏輯問題或漏洞、用戶的運行環(huán)境和生產(chǎn)環(huán)境功能不一致等問題,這類情形一般是流程管控上的瑕疵,通過加強制度審查,是能規(guī)避掉大部分潛在風(fēng)險的。
1. 單產(chǎn)品故障
單產(chǎn)品故障是指組成我們業(yè)務(wù)平臺的某一項產(chǎn)品服務(wù)發(fā)生了管控故障,不能正常履行既定職能,導(dǎo)致服務(wù)中斷的情況,故障主要包括以下場景:
- 產(chǎn)品部署的資源夯死,數(shù)據(jù)讀寫異常;
- 未知問題產(chǎn)生的進(jìn)程阻斷;
- 產(chǎn)品所在的容器異常;
- 服務(wù)器宕機,無法訪問。
2. 斷電斷網(wǎng)
斷電場景主要是指支撐業(yè)務(wù)平臺的服務(wù)器機房整體斷電了或部分機柜斷電了,從而導(dǎo)致的異常。
斷網(wǎng)場景則是因為平臺上行鏈路和數(shù)據(jù)中心出口設(shè)備故障產(chǎn)生了異常。
3. 硬件故障
核心設(shè)備硬件損傷后無法恢復(fù)引起的故障。
二、明確容災(zāi)級別或范圍
在規(guī)劃產(chǎn)品或系統(tǒng)容災(zāi)方案過程中,首先要明確自身的具體需求,是要保障核心服務(wù)還是要保障所有服務(wù),當(dāng)故障發(fā)生后需要在多長時間內(nèi)響應(yīng)和處理問題,諸如此類的問題都要好好考慮清楚。
1. 容災(zāi)級別
從容災(zāi)保障對象層面來看,容災(zāi)大致分為兩個級別:平臺級容災(zāi)和業(yè)務(wù)級容災(zāi)。平臺級容災(zāi)僅實現(xiàn)核心的數(shù)據(jù)備份、核心服務(wù)的雙活或主備,不涉及全量的業(yè)務(wù)應(yīng)用。而業(yè)務(wù)級容災(zāi)則是在平臺級容災(zāi)的基礎(chǔ)上,根據(jù)業(yè)務(wù)系統(tǒng)的容災(zāi)需求,從業(yè)務(wù)系統(tǒng)網(wǎng)絡(luò)層、應(yīng)用層、數(shù)據(jù)庫層等構(gòu)建跨站點集群,以實現(xiàn)網(wǎng)絡(luò)雙活、應(yīng)用雙活、數(shù)據(jù)主從。
2. 主備和雙活
定義好容災(zāi)級別后,就要考慮具體的容災(zāi)形式。通常情況下可以考慮兩種容災(zāi)方式,雙活模式和主備模式。
- 主備模式是依托兩套環(huán)境,一套為主環(huán)境,另一套作為備用環(huán)境。正常情況下由主環(huán)境系統(tǒng)提供服務(wù),另一個環(huán)境系統(tǒng)不承擔(dān)任何流量,數(shù)據(jù)在主備之間同步復(fù)制。只有在主環(huán)境生產(chǎn)系統(tǒng)癱瘓,備用環(huán)境系統(tǒng)才會切換啟用。
- 雙活模式同樣也是兩套環(huán)境的業(yè)務(wù)系統(tǒng),和主備不同的是兩個環(huán)境會同時處于運行當(dāng)中,類似于負(fù)載均衡,流量指向可通過工具控制,數(shù)據(jù)同步也是實時的,所以也就無所謂誰是主、誰是備了。
以上提到的容災(zāi)級別和容災(zāi)形式是做容災(zāi)方案規(guī)劃設(shè)計時需要去考慮的,當(dāng)然所有落地的方案都要基于實際去考量,不過度規(guī)劃,合適的才是最好的。
三、建立容災(zāi)響應(yīng)機制
在明確實施路徑后,還應(yīng)在制定應(yīng)急響應(yīng)計劃,其中有幾個關(guān)鍵因素需要特別注意。
首先,確定合理且完整的演練方案和應(yīng)急響應(yīng)流程。制定的計劃中要明確每個人的任務(wù)和職責(zé),充分培訓(xùn)和訓(xùn)練演練的參與人員,使其能夠熟練掌握操作技能和相關(guān)知識。
其次,應(yīng)建立健全的溝通機制和協(xié)調(diào)機構(gòu),確保各個環(huán)節(jié)的信息和指令能夠及時傳達(dá)和執(zhí)行。
1. 容災(zāi)演練
容災(zāi)演練是為了最大程度降低因故障引起的影響,確保產(chǎn)品或系統(tǒng)可持續(xù)提供對外服務(wù),持續(xù)不斷的去完善故障恢復(fù)應(yīng)急保障機制,檢驗故障發(fā)生后的快速恢復(fù)效果,提升運維人員的應(yīng)急處置能力,驗證容災(zāi)處理重大問題的能力,夯實產(chǎn)品或系統(tǒng)的運行基礎(chǔ)。
- 驗證故障恢復(fù)處置能力,包括故障發(fā)現(xiàn)、故障處置、故障恢復(fù)等;
- 熟悉故障發(fā)生時的應(yīng)急操作,鍛煉運維團隊?wèi)?yīng)急能力;
- 根據(jù)容災(zāi)演練結(jié)果,逐步沉淀形成故障應(yīng)急預(yù)案指導(dǎo)手冊,形成標(biāo)準(zhǔn)化的應(yīng)急處置流程。
2. 容災(zāi)演練流程
容災(zāi)演練流程主要包括演練切換階段、演練回切階段和演練總結(jié)階段。演練切換階段包括演練準(zhǔn)備與環(huán)境檢查、模擬故障、容災(zāi)切換和結(jié)果驗證;演練回切階段主要包括故障恢復(fù)、檢查恢復(fù)結(jié)果、容災(zāi)切換(回切)和結(jié)果驗證等;演練總結(jié)階段包括演練問題消缺、容災(zāi)方案完善、演練數(shù)據(jù)整理和產(chǎn)品消缺等工作。
最后
在規(guī)劃設(shè)計容災(zāi)方案的時候,一定要考慮清楚想要的是什么,結(jié)合業(yè)務(wù)的具體需要,并不是越高大上越好。選定方案要綜合考慮到成本、架構(gòu)、業(yè)務(wù)訴求等諸多方面,選擇更合適、更有性價比的方案,容災(zāi)是手段,系統(tǒng)穩(wěn)定運行是目的。
本文由 @金金魚 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!