日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
終于有人把"高可用"說(shuō)清楚了!

圖片來(lái)自 Pexels

為漢川等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及漢川網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、漢川網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

無(wú)論是一個(gè)域,一個(gè) BG,還是一個(gè)站點(diǎn),雖然范圍有大有小,對(duì)象有所不同,但其高可用的理念都是相通的,今天將自己對(duì)高可用的一點(diǎn)點(diǎn)思考以及總結(jié)的“nPRT 公式”分享給大家。

本文采用“高可用是什么,為什么要高可用,怎么做高可用,為什么這么做,軟件風(fēng)險(xiǎn)又在哪里”的邏輯來(lái)介紹。

高可用是一種控制風(fēng)險(xiǎn)的能力

高可用是一種面向風(fēng)險(xiǎn)設(shè)計(jì),使系統(tǒng)具備控制風(fēng)險(xiǎn),提供更高的可用性的能力。

為什么要高可用

對(duì)于一個(gè)公司而言,“為什么要高可用”可以完整理解為“公司為什么要(做系統(tǒng))高可用”。

以公司為對(duì)象,從內(nèi)看包括:人,軟件(物),硬件(物);從外看包括:客戶(hù),股東,社會(huì);從自身看包括:公司。

高可用的大前提,所有事物都不是 100% 可靠的:

  • 所有事物都是變化的(唯一不變的是變化)。
  • 所有變化的都不是 100% 可靠的。
  • 結(jié)論:所有事物都不是 100% 可靠的。

內(nèi)因,人、物都不是 100% 可靠的:

  • 從人的層面:人都是有可能犯錯(cuò)的。
  • 從軟件層面:軟件都是有可能有 Bug 的。
  • 從硬件層面:硬件都是有可能會(huì)壞的。

從概率學(xué)角度分析,凡是有可能會(huì)出錯(cuò)的,只要變化次數(shù)足夠多,最終出錯(cuò)的概率會(huì)無(wú)限趨向于 1。

外因,無(wú)高可用,對(duì)外影響面是很大的:

  • 從客戶(hù)角度:無(wú)高可用,客戶(hù)服務(wù)可能會(huì)中斷。
  • 從股東層面:無(wú)高可用,股價(jià)可能會(huì)下跌。
  • 從社會(huì)角度:無(wú)高可用,社會(huì)秩序可能受影響。

根因(本質(zhì)):控制風(fēng)險(xiǎn)。

從公司自身角度:控制風(fēng)險(xiǎn),保障公司價(jià)值,避免傷及根本。

如何做高可用

如何做高可用,本質(zhì)上就是:如何控制風(fēng)險(xiǎn)。

風(fēng)險(xiǎn)相關(guān)概念

風(fēng)險(xiǎn):指未來(lái)會(huì)發(fā)生危害的一種可能性,但實(shí)際未發(fā)生,記為r。

故障:指已發(fā)生或正在發(fā)生危害的一種事實(shí),是風(fēng)險(xiǎn)變現(xiàn)實(shí)的結(jié)果。

風(fēng)險(xiǎn)概率:指一個(gè)風(fēng)險(xiǎn)變故障的概率。用它來(lái)表示風(fēng)險(xiǎn)觸發(fā)為故障的難易程度,記為 P(r)。

故障影響范圍:指在單位時(shí)間內(nèi),一個(gè)故障造成的危害影響,記為 R(r)。

故障影響時(shí)長(zhǎng):指一個(gè)故障持續(xù)的時(shí)間,記為 T(r)。

故障影響面:指一個(gè)故障影響范圍乘以故障影響時(shí)長(zhǎng)的總和。這里用故障影響面來(lái)表示故障總的危害程度,記為 F(r)。

風(fēng)險(xiǎn)期望:指每個(gè)風(fēng)險(xiǎn)變故障的概率乘以每個(gè)風(fēng)險(xiǎn)變故障后的故障影響面的總和。這里用風(fēng)險(xiǎn)期望來(lái)表示風(fēng)險(xiǎn)的潛在危害程度,記為 E(r)。

風(fēng)險(xiǎn)期望的公式

根據(jù)上節(jié)的定義,可以推導(dǎo)出風(fēng)險(xiǎn)期望的公式如下:

r 代表風(fēng)險(xiǎn),風(fēng)險(xiǎn)期望會(huì)隨著風(fēng)險(xiǎn)的數(shù)量 n 和每個(gè)風(fēng)險(xiǎn)的 P、R、T 下降而下降,簡(jiǎn)稱(chēng) nPRT 公式。(注:如果要引用該公式請(qǐng)注明出處。)

控制風(fēng)險(xiǎn)的 4 大因素(nPRT)

①減少風(fēng)險(xiǎn)數(shù)量,n

從源頭遠(yuǎn)離風(fēng)險(xiǎn),做到與風(fēng)險(xiǎn)載體無(wú)連接,無(wú)關(guān)系;那么該風(fēng)險(xiǎn)概率就是0,也不關(guān)心該風(fēng)險(xiǎn)發(fā)生后的故障影響面是大是小,完全不關(guān)心。

例如:重大節(jié)日活動(dòng),施行全站封網(wǎng),變更的數(shù)量就會(huì)得到一個(gè)明顯的下降,就是典型的減少風(fēng)險(xiǎn)數(shù)量。

例如:系統(tǒng) A 完全不依賴(lài) Oracle,那系統(tǒng) A 就不用關(guān)心 Oracle 的任何風(fēng)險(xiǎn),哪怕美國(guó)總統(tǒng)突然緊急宣布 Oracle 立即立刻禁止在中國(guó)使用,系統(tǒng) A 也無(wú)所謂。

例如:最近新冠大流行,人傳人很可怕,如果你今天選擇不上班不出門(mén),那你今天就不用擔(dān)心被外面的行人和同事傳染。

②降低風(fēng)險(xiǎn)變故障的概率(即:增加風(fēng)險(xiǎn)變故障的難度),P

把風(fēng)險(xiǎn)當(dāng)成一個(gè)對(duì)象看待,給它層層設(shè)卡,增加風(fēng)險(xiǎn)變故障的門(mén)檻和難度,不要再讓“不小心多了一個(gè)空格或字符,系統(tǒng)就掛了”這種慘案輕易出現(xiàn)。

例如:人員 B 要對(duì)系統(tǒng) C 進(jìn)行變更,可以對(duì)人員 B 增加變更認(rèn)證考試,對(duì)變更內(nèi)容要求線(xiàn)下(或仿真)測(cè)試,對(duì)變更內(nèi)容進(jìn)行 CR,系統(tǒng) C 提供變更效果預(yù)覽能力(類(lèi)似監(jiān)控模式或試運(yùn)行)。

萬(wàn)一人員 B 想惡意變更搞破壞,還可以增加非同人復(fù)核,系統(tǒng)C可以增加防錯(cuò)設(shè)計(jì)進(jìn)行保護(hù)等等。

例如:以新冠為例,帶口罩,勤洗手,多通風(fēng)等就可以降低染上新冠的概率。

③減小故障影響范圍,R

以大拆小,將一個(gè)整體拆分成 N 個(gè)小的個(gè)體,每個(gè)個(gè)體之間進(jìn)行相互隔離,單個(gè)個(gè)體出問(wèn)題僅影響單個(gè)個(gè)體,實(shí)現(xiàn)小而美。

例如:分布式架構(gòu)就是這個(gè)的典范,集中式一損俱損,分布式一損即 N 分之一損。

例如:以新冠為例,網(wǎng)格化管理,各省或市間的流動(dòng)進(jìn)行限制,跨省必須核酸+隔離 14 天,有效控制新冠的傳播范圍。

④縮短故障影響時(shí)長(zhǎng),T

故障影響時(shí)長(zhǎng)由故障發(fā)現(xiàn)時(shí)間和故障止血時(shí)間決定,所以要早發(fā)現(xiàn)早止血。

發(fā)現(xiàn)方式分為:事前的預(yù)警,事后的告警。盡可能朝事前預(yù)警去做,給止血爭(zhēng)取時(shí)間甚至將風(fēng)險(xiǎn)扼殺在搖籃中。

止血方式分為:切換,回滾,擴(kuò)容,降級(jí) or 限流,BUG 修復(fù)等。故障出現(xiàn)時(shí)第一優(yōu)先原則為快速止血(如切換、回滾、擴(kuò)容),嚴(yán)禁去定位根因;當(dāng)無(wú)法快速止血時(shí)以少流血為第二優(yōu)先原則,如降級(jí)、限流。

止血效率:自動(dòng) vs 人工 ;一鍵化 vs 多步操作。盡可能用自動(dòng)化去代替人工操作,若人工操作時(shí)盡量實(shí)現(xiàn)一鍵化,提升止血速度。

例如:對(duì)于容量水位,可以在警戒線(xiàn)之前劃一條預(yù)警線(xiàn),提前預(yù)警,從容應(yīng)對(duì)。

例如:分布式應(yīng)用集群,任何一臺(tái)應(yīng)用服務(wù)器有問(wèn)題時(shí),負(fù)載均衡會(huì)通過(guò)心跳檢查自動(dòng)把有問(wèn)題的應(yīng)用服務(wù)器剔除,將請(qǐng)求轉(zhuǎn)發(fā)給其他(熱)備份冗余的服務(wù)器上。

例如:以新冠為例,但由于每個(gè)生命都是獨(dú)一無(wú)二的,沒(méi)有辦法切換,也沒(méi)有辦法回滾,也不能降級(jí)(涉及人道主義),只能對(duì)癥下藥慢慢治療。

高可用架構(gòu)設(shè)計(jì)的 7 大核心原則

根據(jù) nPRT 公式,在高可用架構(gòu)設(shè)計(jì)時(shí)有以下 7 個(gè)核心原則:

①少依賴(lài)原則:能不依賴(lài)的,盡可能不依賴(lài),越少越好(n)

由于所有事物都不是 100% 可靠的,當(dāng) 2 個(gè)事物之間有了關(guān)系,那么就會(huì)相互影響,就互為對(duì)方的一個(gè)風(fēng)險(xiǎn),一個(gè)出問(wèn)題可能會(huì)影響另外一個(gè)。我們統(tǒng)一用依賴(lài)來(lái)泛指這里的“關(guān)系”。

例如:一個(gè)系統(tǒng)同時(shí)依賴(lài) Oracle,MySQL,OB 三種關(guān)系型數(shù)據(jù)庫(kù),少依賴(lài)原則是改成僅依賴(lài)最成熟穩(wěn)定的 OB,不依賴(lài) Oracle 和 MySQL。

什么場(chǎng)景適合多依賴(lài)?當(dāng)引入依賴(lài)(n 變大)可以減小 PRT 中的一個(gè)或多個(gè),且使 E(r) 整體下降時(shí)。

例如:為解決 DB 風(fēng)險(xiǎn),引入分布式緩存,只要 2 者不同時(shí)掛的時(shí)候依然可用。

②弱依賴(lài)原則:一定要依賴(lài)的,盡可能弱依賴(lài),越弱越好(P)

事物 a 強(qiáng)依賴(lài)事物 b,一旦 b 出問(wèn)題時(shí),那么 a 也會(huì)出問(wèn)題,一損俱損。所以任何強(qiáng)依賴(lài)都要盡可能的轉(zhuǎn)化成弱依賴(lài),可以直接降低出問(wèn)題的概率。

例如:交易核心鏈路在交易成功后要要給用戶(hù)發(fā)放積分權(quán)益;交易核心系統(tǒng)需要依賴(lài)積分權(quán)益系統(tǒng),好的方式是采用弱依賴(lài),使用異步化的方式,這樣積分權(quán)益系統(tǒng)不可用時(shí),大概率不會(huì)影響交易核心鏈路。

③分散原則:雞蛋不要放一個(gè)籃子,分散風(fēng)險(xiǎn)(R)

打散拆分成 N 份;避免全局只有 1 份,否則一有問(wèn)題影響范圍就是 100%。

例如:所有交易數(shù)據(jù)都放在同一個(gè)庫(kù)同一張表里面,萬(wàn)一這個(gè)庫(kù)掛了,此時(shí)影響所有交易。

例如:將自己所有的錢(qián)買(mǎi)了同一只股票,萬(wàn)一這只股票是樂(lè)視就慘了。

④均衡原則:均勻分散風(fēng)險(xiǎn),避免不均衡(R)

最好 N 份中的每份都是均衡的;避免某個(gè)份額過(guò)大,否則過(guò)大的那份一有問(wèn)題就影響范圍過(guò)大了。

例如:xx 應(yīng)用集群有 1000 臺(tái),但由于引流組件 Bug,導(dǎo)致所有流量引到了其中 100 臺(tái)上面,導(dǎo)致負(fù)載嚴(yán)重不均衡,最后因負(fù)載無(wú)法扛著全面崩潰。類(lèi)似重大故障已經(jīng)發(fā)生了多次。

例如:將自己所有的錢(qián)買(mǎi)了 10 只股票,其中一只占比 99%,萬(wàn)一這只股票是樂(lè)視就慘了。

⑤隔離原則:控制風(fēng)險(xiǎn)不擴(kuò)散,不放大(R)

每份之間是相互隔離的;避免一份有問(wèn)題影響其他的也有問(wèn)題,傳播擴(kuò)散了影響范圍。

例如:交易數(shù)據(jù)拆分成 10 庫(kù) 100 表,但是部署在同一臺(tái)物理機(jī)上;萬(wàn)一某張表有一條大 SQL 把網(wǎng)卡打滿(mǎn)了,那 10 庫(kù) 100 表都會(huì)受影響。

例如:將自己所有的錢(qián)均分買(mǎi)了 10 只股票,每只都占 10%,但 10 只都是樂(lè)視系的。

例如:古代赤壁之戰(zhàn)就是一個(gè)典型的反面例子,鐵鎖連船導(dǎo)致隔離性被破壞,一把大火燒了 80w 大軍。

隔離是有級(jí)別的,隔離級(jí)別越高,風(fēng)險(xiǎn)傳播擴(kuò)散的難度就越大,容災(zāi)能力越強(qiáng)。

例如:一個(gè)應(yīng)用集群由 N 臺(tái)服務(wù)器組成,部署在同一臺(tái)物理機(jī)上,或同一個(gè)機(jī)房的不同物理機(jī)上,或同一個(gè)城市的不同機(jī)房里,或不同城市里,不同的部署代表不同的容災(zāi)能力。

例如:人類(lèi)由無(wú)數(shù)人組成,生活在同一個(gè)地球的不同洲上,這意味著人類(lèi)不具備星球級(jí)別的隔離能力,當(dāng)?shù)厍虺霈F(xiàn)毀滅性影響時(shí),人類(lèi)是不具備容災(zāi)的。

隔離原則是一個(gè)極其重要的原則,它是前面 4 個(gè)原則的前提。

沒(méi)有做好隔離,前面 4 個(gè)原則都是脆弱的,風(fēng)險(xiǎn)很容易傳播擴(kuò)散開(kāi),破壞前面 4 個(gè)原則的效果。

大量真實(shí)系統(tǒng)故障是因?yàn)楦綦x性做得不好導(dǎo)致的,如:線(xiàn)下影響線(xiàn)上,離線(xiàn)影響在線(xiàn),預(yù)發(fā)影響生產(chǎn),一條爛 SQL 影響整個(gè)庫(kù)(或整個(gè)集群)等等。

分散,均衡,隔離是控制風(fēng)險(xiǎn)影響范圍的 3 個(gè)核心原則。打散拆分成 N 份,每一份都是均衡的,且相互隔離,一份有問(wèn)題,影響范圍為 1/N。

⑥無(wú)單點(diǎn)原則:要有冗余或其他版本,做到有路可退(T)

快速止血的方式是切換,回滾,擴(kuò)容等;回滾和擴(kuò)容屬于特殊的切換,回滾指的是切換到某個(gè)版本,擴(kuò)容指的是將流量切換到新擴(kuò)容的機(jī)器上。

切換得有地方可切才行,所以不能有單點(diǎn)(這里特指強(qiáng)依賴(lài)的單點(diǎn),弱依賴(lài)的可以降級(jí)),要有冗余備份或其他版本;單點(diǎn)會(huì)限制整體的可靠性。

假設(shè)單點(diǎn)的可靠性假設(shè)是 99.99%,它要提升到 99.999% 是非常困難的,但是如果無(wú)單點(diǎn)而是依賴(lài) 2 個(gè)(1 個(gè)掛掉沒(méi)有關(guān)系,只要不同時(shí)掛就行),那整體可靠性就是 99.999999% 會(huì)有質(zhì)的提升。

單點(diǎn)故障會(huì)導(dǎo)致無(wú)法快速止血,拉長(zhǎng)整個(gè)止血時(shí)間,去單點(diǎn)至關(guān)重要。這里的單點(diǎn)不僅僅指的是系統(tǒng)節(jié)點(diǎn),也包含人員,如訂閱告警的人,應(yīng)急的人等等。

對(duì)于(重要)數(shù)據(jù)節(jié)點(diǎn),必須滿(mǎn)足無(wú)單點(diǎn)原則,否則極端情況下可能造成數(shù)據(jù)永久丟失,永遠(yuǎn)無(wú)法恢復(fù);(重要)數(shù)據(jù)節(jié)點(diǎn)滿(mǎn)足無(wú)單點(diǎn)原則后,保障數(shù)據(jù)一致性比可用性要求更重要。

例如:一個(gè)商戶(hù)僅支持一個(gè)支付渠道,就是典型的單點(diǎn),萬(wàn)一這個(gè)支付渠道掛了就不能支付了。

例如:一個(gè)家庭的所有收入僅依賴(lài)父親一個(gè)的薪資收入,萬(wàn)一這個(gè)父親病了,就沒(méi)有收入了。

無(wú)單點(diǎn)原則和分散原則的區(qū)別:

  • 當(dāng)節(jié)點(diǎn)無(wú)狀態(tài)的情況下,打散拆分成 N 份,每份都是相同的功能,互為冗余,即:節(jié)點(diǎn)無(wú)狀態(tài)情況下,分散原則和無(wú)單點(diǎn)原則等價(jià),滿(mǎn)足一個(gè)即可。
  • 當(dāng)節(jié)點(diǎn)有狀態(tài)的情況下,打散拆分成 N 份,每份都是不相同的,每份都沒(méi)有冗余,需要針對(duì)每份再做冗余,即:節(jié)點(diǎn)有狀態(tài)情況下,既要滿(mǎn)足分散原則又要滿(mǎn)足單點(diǎn)原則。

⑦自我保護(hù)原則:少流血,犧牲一部分,保護(hù)另外一部分(P&R&T)

外部的輸入都不是 100% 可靠的,有時(shí)候是無(wú)意的錯(cuò)誤,有時(shí)候甚至是惡意的破壞,因此針對(duì)外部輸入要有防錯(cuò)設(shè)計(jì),給自己多一些保護(hù)。

極端情況下可能無(wú)法(快速)止血,可以考慮少流血,犧牲一部分保護(hù)另外一部分。例如:限流,降級(jí)等。

例如:大促峰值期間,一般會(huì)提前降級(jí)掉很多功能,同時(shí)限流,主要是為了保護(hù)峰值絕大部分人的交易支付體驗(yàn)。

例如:人體在失血過(guò)多或疼痛過(guò)度時(shí)就會(huì)觸發(fā)休克現(xiàn)象,這也是一種典型的自我保護(hù)機(jī)制。

軟件風(fēng)險(xiǎn)在何方

前面介紹了控制風(fēng)險(xiǎn)的方法,回到軟件系統(tǒng)這個(gè)領(lǐng)域,它的風(fēng)險(xiǎn)又在哪里?

以軟件系統(tǒng)為對(duì)象,從內(nèi)看包括:計(jì)算系統(tǒng)和存儲(chǔ)系統(tǒng);從外看包括:人員,硬件,上游系統(tǒng),下游系統(tǒng);以及(隱含的)時(shí)間。

由于每個(gè)對(duì)象都是由其他對(duì)象組成的,因此每個(gè)對(duì)象還可以繼續(xù)往細(xì)分解(理論上可以無(wú)限分解下去),上面的分解方式主要是為了簡(jiǎn)化理解。

軟件系統(tǒng)風(fēng)險(xiǎn)的來(lái)源

風(fēng)險(xiǎn)源于(有危害的)變化,一個(gè)對(duì)象的風(fēng)險(xiǎn)來(lái)源于所有跟它有關(guān)系的對(duì)象的(有危害的)變化。

因此,軟件系統(tǒng)風(fēng)險(xiǎn)的來(lái)源,分為以下 7 大類(lèi):

①計(jì)算系統(tǒng)變化:運(yùn)行變慢,運(yùn)行錯(cuò)誤

系統(tǒng)運(yùn)行所依賴(lài)的服務(wù)器資源(如 CPU,MEM,IO 等),應(yīng)用資源(RPC 線(xiàn)程數(shù),DB 連接數(shù)等),業(yè)務(wù)資源(業(yè)務(wù) ID 滿(mǎn)了,余額不足,業(yè)務(wù)額度不夠等)的負(fù)載等都會(huì)影響系統(tǒng)運(yùn)行的風(fēng)險(xiǎn)期望。

②存儲(chǔ)系統(tǒng)變化:運(yùn)行變慢,運(yùn)行錯(cuò)誤,數(shù)據(jù)錯(cuò)誤

系統(tǒng)運(yùn)行所依賴(lài)的服務(wù)器資源(如 CPU,MEM,IO 等),存儲(chǔ)資源(并發(fā)數(shù)等),數(shù)據(jù)資源(單庫(kù)容量,單表容量等)的負(fù)載和數(shù)據(jù)一致性等都會(huì)影響存儲(chǔ)系統(tǒng)運(yùn)行的風(fēng)險(xiǎn)期望。

③人的變化:變更出錯(cuò)

變更人員的數(shù)量,安全生產(chǎn)意識(shí),熟練程度,變更的數(shù)量,變更的方式等都會(huì)影響變更的風(fēng)險(xiǎn)期望。

由于變更的人多,變更的次數(shù)也多,導(dǎo)致變更成為螞蟻所有故障來(lái)源里的 TOP1,這也是為什么“變更三板斧”這么出名的原因。

“變更三板斧”正確的排序應(yīng)該是“可灰度,可監(jiān)控,可應(yīng)急”;可灰度代表的是 R,可監(jiān)控和可應(yīng)急代表的是 T。

思考:如果變更三板斧讓你再加一板斧,你覺(jué)得應(yīng)該是什么?

④硬件變化:損壞

硬件的數(shù)量,質(zhì)量,使用年限,保養(yǎng)等都會(huì)影響硬件的風(fēng)險(xiǎn)期望,硬件損壞會(huì)影響上層軟件系統(tǒng)不可用。

⑤上游變化:請(qǐng)求變大

請(qǐng)求分為 3 個(gè)維度:(由無(wú)數(shù) API 匯集而成的)網(wǎng)絡(luò)流量,(由無(wú)數(shù) KEY 請(qǐng)求組成的)API,KEY。

  • 網(wǎng)絡(luò)流量過(guò)大會(huì)造成網(wǎng)絡(luò)堵塞,影響網(wǎng)絡(luò)通道中的所有網(wǎng)絡(luò)流量請(qǐng)求。
  • API 請(qǐng)求過(guò)大會(huì)造成對(duì)應(yīng)服務(wù)集群過(guò)載,影響整個(gè)服務(wù)機(jī)器上的所有 API 請(qǐng)求,甚至往外傳播。
  • KEY 請(qǐng)求過(guò)大(俗稱(chēng)“熱點(diǎn) KEY”)會(huì)造成單機(jī)過(guò)載,影響單機(jī)上所有 KEY 請(qǐng)求,甚至往外傳播。

所以大促保障的時(shí)候,不僅僅是關(guān)注核心 API 的容量保障,還需要考慮網(wǎng)絡(luò)流量和熱點(diǎn) KEY。

⑥下游變化:響應(yīng)變慢,響應(yīng)錯(cuò)誤

下游服務(wù)的數(shù)量,服務(wù)等級(jí),服務(wù)可用率等影響下游服務(wù)的風(fēng)險(xiǎn)期望。下游響應(yīng)變慢可能會(huì)拖慢上游,下游響應(yīng)錯(cuò)誤可能會(huì)影響上游運(yùn)行結(jié)果。

⑦時(shí)間變化:時(shí)間到期

時(shí)間到期往往被人忽視,但它往往具有突然性和全局破壞性,一旦時(shí)間到期觸發(fā)故障會(huì)導(dǎo)致非常被動(dòng),所以要提前識(shí)別,盡早預(yù)警,如:秘鑰到期,證書(shū)到期,費(fèi)用到期,跨時(shí)區(qū),跨年,跨月,跨日等。

例如:2019 年日本運(yùn)營(yíng)商軟銀因證書(shū)到期引發(fā) 3000w 用戶(hù)長(zhǎng)達(dá) 4 小時(shí)通信中斷。

以上每一大類(lèi)風(fēng)險(xiǎn)都可以基于 nPRT 公式進(jìn)行逐一分析處理。

風(fēng)險(xiǎn)的數(shù)量:一生三,三生萬(wàn)物

任何一個(gè)事物既是由其他事物組成的又是其他事物的組成部分,無(wú)限循環(huán)下去;一生三,三生萬(wàn)物,風(fēng)險(xiǎn)的數(shù)量是無(wú)窮無(wú)盡的。

向內(nèi)看,內(nèi)含內(nèi),可以無(wú)限小下去;當(dāng)原子粒度的問(wèn)題傳播開(kāi)時(shí),也可能影響軟件系統(tǒng)的可用性,就像 100 納米的新冠病毒就可以影響人體的可用性一樣。

向外看,外有外,可以無(wú)限大下去;當(dāng)太陽(yáng)系毀滅,軟件系統(tǒng)的可用性自然就不復(fù)存在。

雖然風(fēng)險(xiǎn)無(wú)窮無(wú)盡,但是只要我們對(duì)風(fēng)險(xiǎn)多一些了解,根據(jù)控制風(fēng)險(xiǎn)的一些理念和原則,還是可以更好的降低風(fēng)險(xiǎn)期望。

談一談敬畏之心:

  • 我們對(duì)世界的認(rèn)知是有限的,這也讓我們少了許多恐懼,同時(shí)也讓我們少了一些敬畏之心。
  • 我們真正要敬畏的不是處罰條例,而是我們不知道的,以及我們不知道我們不知道。

結(jié)束語(yǔ)

總結(jié)如下:

  • 所有事物都是變化的。
  • 所有事物都不是 100% 可靠的。
  • 因此才有了風(fēng)險(xiǎn),風(fēng)險(xiǎn)是不可見(jiàn)的,可見(jiàn)的是故障。
  • 風(fēng)險(xiǎn)是不能消滅光的,但是可以遠(yuǎn)離,可以減少。
  • 故障是不可避免的,但是可以推遲,可以縮小影響范圍,縮短影響時(shí)間。
  • nPRT 公式不僅僅適用于軟件系統(tǒng)風(fēng)險(xiǎn),也適用于其他風(fēng)險(xiǎn)領(lǐng)域,希望對(duì)大家有用。

作者:樂(lè)羊

編輯:陶家龍

出處:轉(zhuǎn)載自公眾號(hào)阿里技術(shù)(ID:ali_tech)


分享標(biāo)題:終于有人把"高可用"說(shuō)清楚了!
網(wǎng)址分享:http://m.5511xx.com/article/dpjjope.html