日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

高可用的本质

發(fā)布時(shí)間:2024/8/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高可用的本质 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

我是樂(lè)羊,一個(gè)熱愛(ài)風(fēng)險(xiǎn)防控的人,之前參與過(guò)螞蟻Glocal多個(gè)站點(diǎn)從0到1的建站和高可用建設(shè),目前正在參與螞蟻大安全的高可用建設(shè)。無(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)。

1 風(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(mén)(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)。

2 風(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)注明出處。

3 控制風(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ì)癥下藥慢慢治療。

4 高可用架構(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)化理解。

1 軟件系統(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)行逐一分析處理。

2 風(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ǔ)

  • 所有事物都是變化的。
  • 所有事物都不是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ì)大家有用。

作者:開(kāi)發(fā)者小助手_LS

原文鏈接

本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載

?

總結(jié)

以上是生活随笔為你收集整理的高可用的本质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。