安全生產(chǎn)-系統(tǒng)穩(wěn)定性建設(shè)
原創(chuàng)作者 | 彭文清(馬恪)
前言
安全是產(chǎn)品的底座,是體驗(yàn)的基礎(chǔ),也是企業(yè)的一項(xiàng)核心競(jìng)爭(zhēng)力。安全生產(chǎn)是一項(xiàng)系統(tǒng)性的工作,同時(shí)也是一件比較瑣碎的事,需要做方方面面的考慮盡一切可能保障系統(tǒng)安全穩(wěn)定運(yùn)行。個(gè)人之前一直負(fù)責(zé)商品的穩(wěn)定性工作,在這方面有比較多的經(jīng)歷和實(shí)踐。
記得在18年的時(shí)候,我們做商品發(fā)布的組件化改造,當(dāng)時(shí)正好碰上網(wǎng)站剛開始類目調(diào)整,一度連續(xù)3個(gè)月每個(gè)月都有故障,當(dāng)時(shí)穩(wěn)定性的壓力很大。當(dāng)然那也是一個(gè)契機(jī),商品的穩(wěn)定性建設(shè)也是從那個(gè)時(shí)候開始起步,然后逐步的完善。
大綱
安全生產(chǎn)建設(shè)大致上可以分為這三個(gè)階段:
事前:故障預(yù)防,這里需要考慮的就是怎么通過(guò)預(yù)先的設(shè)計(jì),最大限度的保證質(zhì)量,降低風(fēng)險(xiǎn),提升穩(wěn)定性。
事中:應(yīng)急處置,出了問(wèn)題以后怎么處理,快恢手段有哪些,流程是什么。
事后:復(fù)盤改進(jìn),事后肯定要總結(jié)經(jīng)驗(yàn),舉一反三解決同類的問(wèn)題,不要被同一棵石頭絆倒兩次。
故障預(yù)防
魏文王問(wèn)扁鵲:你醫(yī)術(shù)為啥這么好?扁鵲說(shuō):我醫(yī)術(shù)在我三兄弟里面算差的。最好的是我大哥,還沒(méi)有任何癥狀就撲滅了,次好是我二哥,一點(diǎn)點(diǎn)輕微的癥狀就解決了。再次就是我,出了嚴(yán)重的問(wèn)題我才開始醫(yī)治,所以雖然我名滿天下,但是我醫(yī)術(shù)可比我的大哥二哥差得遠(yuǎn)啦。
做個(gè)類比,故障預(yù)防做的好的就是大哥,應(yīng)急處置做的好的就是二哥,總結(jié)復(fù)盤做的好的就只能是扁鵲了。所以預(yù)防生產(chǎn)事故的發(fā)生是最重要的,也是最基礎(chǔ)的。
架構(gòu)設(shè)計(jì)
單個(gè)技術(shù)點(diǎn)在絕大部分時(shí)候都可以正常工作,但是當(dāng)規(guī)模和復(fù)雜度達(dá)到一定程度的時(shí)候,失敗其實(shí)無(wú)處不在。--《安全生產(chǎn)指南》
面向失敗設(shè)計(jì)是應(yīng)對(duì)安全生產(chǎn)最重要的方法論和指導(dǎo)方針。只有對(duì)各種失敗場(chǎng)景有提前的布防才可以在出問(wèn)題的時(shí)候有效應(yīng)對(duì)。那么面向失敗設(shè)計(jì)具體有哪些方式方法?
- 冗余設(shè)計(jì)避免單點(diǎn)
冗余最早是航空器常用的技術(shù)術(shù)語(yǔ),飛機(jī)設(shè)計(jì)最顯著的一個(gè)特點(diǎn)就是冗余,比如一般大型客機(jī)都會(huì)有兩套甚至四套引擎,類似的還有兩套基本同質(zhì)的主副駕駛系統(tǒng)。為什么要這么設(shè)計(jì),還有額外的成本,根本原因還是因?yàn)槿哂嘣O(shè)計(jì)可以在一套出現(xiàn)問(wèn)題時(shí)另一套依然能保障系統(tǒng)正常運(yùn)行。
在ICBU的場(chǎng)景中中美新容災(zāi)就是我們最主要的冗余設(shè)計(jì),也是穩(wěn)定性保障最核心的手段。商品是ICBU內(nèi)第一個(gè)構(gòu)建起中美異地容災(zāi)能力的業(yè)務(wù)場(chǎng)景,也正是因?yàn)橛辛诉@個(gè)能力幫助商品避免了不少的故障發(fā)生。?
- 服務(wù)分治避免雪崩
其實(shí)就是做好隔離。中國(guó)古代的木船設(shè)計(jì)有一個(gè)很重要的發(fā)明叫“水密隔艙”,現(xiàn)在很多軍用艦船也有借鑒。典型的像航空母艦據(jù)說(shuō)有2000多個(gè)獨(dú)立的密閉隔倉(cāng),作用就是當(dāng)船舶遭遇意外或者破損進(jìn)水時(shí),可以通過(guò)隔離受損艙室減緩下沉。它是一種安全生產(chǎn)的設(shè)計(jì),對(duì)我們有借鑒意義,系統(tǒng)要做模塊化的設(shè)計(jì)、薄弱點(diǎn)或者風(fēng)險(xiǎn)點(diǎn)可以被單獨(dú)隔離和降級(jí),保障整體可用性。我們之前發(fā)生過(guò)一次問(wèn)題,因?yàn)镋S集群中一臺(tái)物理機(jī)故障導(dǎo)致上層應(yīng)用的線程池被耗盡從而引起服務(wù)不可用,根本原因就是隔離沒(méi)有做好。

?
服務(wù)冪等保證一致服務(wù)或接口應(yīng)該保證冪等,多次調(diào)用和一次調(diào)用結(jié)果應(yīng)該是一致的,避免重復(fù)調(diào)用導(dǎo)致數(shù)據(jù)或邏輯異常。

服務(wù)無(wú)狀態(tài)可漂移服務(wù)或接口最好設(shè)計(jì)成無(wú)狀態(tài)模式,從擴(kuò)展性的角度來(lái)講,無(wú)狀態(tài)模式可以很容易的根據(jù)流量情況彈性伸縮。

- 運(yùn)行狀態(tài)精確監(jiān)控
把我們的應(yīng)用系統(tǒng)比做飛機(jī),我們的系統(tǒng)也需要各種傳感器和儀表盤去實(shí)時(shí)監(jiān)控系統(tǒng)運(yùn)行狀態(tài),系統(tǒng)對(duì)于運(yùn)維人員來(lái)說(shuō)應(yīng)該是個(gè)白盒而不是黑盒。核心的業(yè)務(wù)或者系統(tǒng)監(jiān)控有助于提前發(fā)現(xiàn)問(wèn)題,細(xì)粒度、多維度的監(jiān)控有助于快速定位問(wèn)題。
- 自動(dòng)化運(yùn)維管控
最好的處理是不需要處理。核心思路是一切操作標(biāo)準(zhǔn)化、流程化、自動(dòng)化,降低人為干預(yù)、提升操作效率。像商品發(fā)布/商品管理都有一些自動(dòng)容災(zāi)預(yù)案,可以在出現(xiàn)問(wèn)題時(shí)自動(dòng)快恢。下面的案例是周末出現(xiàn)的一次風(fēng)險(xiǎn)預(yù)警就是通過(guò)自動(dòng)執(zhí)行快恢避免了線上故障的發(fā)生。

另外今年旺鋪的一次風(fēng)險(xiǎn)預(yù)警,在出現(xiàn)容量性能問(wèn)題的時(shí)候也是通過(guò)自動(dòng)彈性擴(kuò)容快速解決了問(wèn)題。
編碼開發(fā)
- 并發(fā)控制
在服務(wù)能力受限的情況下,我們需要主動(dòng)控制客戶端并發(fā)數(shù)。特別是任務(wù)型場(chǎng)景,通常有靜態(tài)限流和動(dòng)態(tài)限流兩種選擇。靜態(tài)限流比較簡(jiǎn)單但有一個(gè)局限就是資源利用率不高。動(dòng)態(tài)限流的原理是根據(jù)服務(wù)端的響應(yīng)情況動(dòng)態(tài)調(diào)整客戶端速率,簡(jiǎn)單來(lái)講就是計(jì)算服務(wù)超時(shí)/異常的數(shù)量,超時(shí)多了請(qǐng)求就放慢一點(diǎn)。
- 數(shù)據(jù)控制
數(shù)據(jù)是信息系統(tǒng)中的血液,通過(guò)數(shù)據(jù)的流動(dòng)才能將一個(gè)個(gè)業(yè)務(wù)或功能模塊串聯(lián)在一起。一方面是數(shù)據(jù)的生產(chǎn)要嚴(yán)格校驗(yàn)保證數(shù)據(jù)的合法性和準(zhǔn)確性。另一方面是數(shù)據(jù)的消費(fèi),需要評(píng)估單次處理的數(shù)據(jù)量、數(shù)據(jù)處理頻次,不要因?yàn)楦卟l(fā)、海量數(shù)據(jù)導(dǎo)致系統(tǒng)內(nèi)存、負(fù)載承壓。商品曾經(jīng)因?yàn)檫@個(gè)經(jīng)歷過(guò)最慘痛的教訓(xùn):

- 防御編程
批量容錯(cuò):比如一個(gè)列表肯定不能因?yàn)槟骋恍杏袉?wèn)題而導(dǎo)致整個(gè)列表出不來(lái)。同樣的同步任務(wù)也不能因?yàn)槟骋粋€(gè)任務(wù)異常而堵塞整個(gè)任務(wù)隊(duì)列。所以需要對(duì)這些場(chǎng)景做好容錯(cuò)處理,其實(shí)還是在強(qiáng)調(diào)隔離風(fēng)險(xiǎn)。像商品的引擎同步任務(wù)、質(zhì)量分計(jì)算任務(wù)都有獨(dú)立的在線實(shí)時(shí)隊(duì)列、實(shí)時(shí)重試隊(duì)列、離線隊(duì)列,目的就是為了不影響實(shí)時(shí)增量任務(wù)的正常執(zhí)行。
數(shù)據(jù)兼容:另外有些存量業(yè)務(wù),可能已經(jīng)積累了很多的歷史數(shù)據(jù)。拿商品來(lái)舉例,今天我們的認(rèn)知里moq就是最小起訂量肯定是數(shù)字,包裝重量肯定也是數(shù)字,但其實(shí)之前商品的部分屬性是可以自定義的,有些可能是用戶隨便填的,所以在功能升級(jí)迭代的過(guò)程中需要考慮對(duì)歷史數(shù)據(jù)的兼容。
- 簡(jiǎn)化代碼
越簡(jiǎn)單東西的越可靠,越復(fù)雜的東西容錯(cuò)性越低。把簡(jiǎn)單的事情想復(fù)雜,把復(fù)雜的事情做簡(jiǎn)單。少用同步鎖:系統(tǒng)設(shè)計(jì)和編碼盡量使用無(wú)鎖實(shí)現(xiàn),避免引起不必要的死鎖問(wèn)題。商品同樣因?yàn)橥芥i的原因出現(xiàn)過(guò)線上問(wèn)題:

慎用線程池:其實(shí)跟同步鎖類似,它是一個(gè)比較危險(xiǎn)的操作,要做好測(cè)試和驗(yàn)證。
容災(zāi)防護(hù)
過(guò)載保護(hù)過(guò)載保護(hù)是保障系統(tǒng)整體可用的重要手段之一,設(shè)計(jì)過(guò)載保護(hù)可以有效避免因?yàn)榱髁繂?wèn)題導(dǎo)致的系統(tǒng)不可用。所以我們的應(yīng)用要具備自我防護(hù)的能力,web型應(yīng)用接入流量清洗系統(tǒng),服務(wù)型應(yīng)用做好服務(wù)限流。
依賴降級(jí)當(dāng)前大部分的業(yè)務(wù)系統(tǒng)都比較復(fù)雜,特別是在分布式架構(gòu)中,一個(gè)請(qǐng)求可能依賴多個(gè)系統(tǒng)支撐共同完成。調(diào)用鏈路中的任何一個(gè)節(jié)點(diǎn)都可能影響整體穩(wěn)定性。所以一方面我們要保證自身服務(wù)的穩(wěn)定性,另外一方面也要考慮在依賴服務(wù)出現(xiàn)問(wèn)題后怎么保證主鏈路的可用。而依賴降級(jí)的前提是先理清依賴關(guān)系:
1.弱依賴就自動(dòng)降級(jí)比如校驗(yàn)類的。
2.有一些是強(qiáng)依賴但可以異步處理的就降級(jí)后異步重試。
3.有一些是強(qiáng)依賴又不能異步的,就需要產(chǎn)品化了,把降級(jí)能力作為產(chǎn)品設(shè)計(jì)的一部分。
下圖是商品發(fā)布鏈路的部分容災(zāi)降級(jí)點(diǎn):

這其中超過(guò)95%都從來(lái)沒(méi)有使用過(guò)。安全生產(chǎn)的建設(shè)就是這樣,很多穩(wěn)定性保障措施大部分時(shí)候都默默無(wú)聞,但是真正使用到的時(shí)候卻都是關(guān)鍵的時(shí)刻。
監(jiān)控預(yù)警
- 監(jiān)控標(biāo)準(zhǔn)化
一堆無(wú)意義的"System Error"無(wú)濟(jì)于事,標(biāo)準(zhǔn)錯(cuò)誤碼和SPM監(jiān)控是當(dāng)前比較好的一個(gè)實(shí)踐。
- 預(yù)警有效性
召回優(yōu)先:預(yù)警有效性其實(shí)比較難做,監(jiān)控覆蓋度越廣,預(yù)警機(jī)制越靈敏,報(bào)警量可能就會(huì)越多,誤報(bào)也會(huì)越多。商品無(wú)人值守樣板間在開始時(shí)候也是召回優(yōu)先,誤報(bào)慢慢收斂,這是一個(gè)持續(xù)治理的過(guò)程。
報(bào)警分層:另外可以根據(jù)監(jiān)控場(chǎng)景對(duì)報(bào)警分層, 通過(guò)報(bào)警分層一定程度上可以兼顧召回和免打擾。重要的業(yè)務(wù)系統(tǒng)監(jiān)控推送到核心預(yù)警群,非故障場(chǎng)景或者輔助定位的監(jiān)控報(bào)警可以推送到其他普通預(yù)警群。同樣也需要對(duì)報(bào)警通知方式做分層,比如成本率下跌2%可能是釘釘通知,下跌5%就需要電話通知。
測(cè)試回歸
測(cè)試回歸是質(zhì)量保障很重要的一個(gè)環(huán)節(jié)。
- 單元測(cè)試
單測(cè)我相信有人會(huì)懷疑它的價(jià)值,而且在剛開始的時(shí)候的確比較耗費(fèi)時(shí)間精力,但是它是一個(gè)難而正確的事情,這里分享兩點(diǎn):
單測(cè)是代碼的照妖鏡,我們會(huì)發(fā)現(xiàn)通常單測(cè)很難跑起來(lái)的往往就是代碼設(shè)計(jì)不合理,耦合過(guò)多,單測(cè)可以幫助自己優(yōu)化代碼。
單測(cè)是質(zhì)量的保證。前端時(shí)間跟我對(duì)接的前端同學(xué)突然跟我說(shuō),“文清,沒(méi)想到這次項(xiàng)目這么順利”,這個(gè)項(xiàng)目也是我個(gè)人第一次在一個(gè)項(xiàng)目里寫完整的單測(cè)代碼。從我個(gè)人的實(shí)踐經(jīng)歷來(lái)看,單測(cè)特別是對(duì)于喜歡重構(gòu)的人來(lái)說(shuō)還是非常有價(jià)值的。
- 巡檢/流量回放
我們當(dāng)前的業(yè)務(wù)大部分都比較復(fù)雜,有非常多的分支流程。舉個(gè)例子商品有5000多個(gè)葉子類目,每個(gè)類目的商品表單是不一樣的,這么多的場(chǎng)景靠人肉是根本覆蓋不了的,只能靠機(jī)器和自動(dòng)化去回歸。前臺(tái)頁(yè)面場(chǎng)景巡檢是一個(gè)比較好的方式,它可以模擬用戶操作。對(duì)于后臺(tái)服務(wù)流量回放也是一種可行的方案,商品無(wú)人值守樣板間也在使用巡檢和流量回放來(lái)保障發(fā)布質(zhì)量。
- 壓測(cè)
新的服務(wù)上線前需要評(píng)估流量和性能情況,根據(jù)預(yù)估對(duì)服務(wù)進(jìn)行壓測(cè)以驗(yàn)證是否能夠滿足需求。同時(shí)整個(gè)鏈路能夠支撐的QPS上限也需要通過(guò)壓測(cè)確定,幫助我們合理的評(píng)估系統(tǒng)水位。
變更發(fā)布
回過(guò)頭去分析會(huì)發(fā)現(xiàn)其實(shí)我們大部分問(wèn)題都是變更引入的。商家技術(shù)部三規(guī)九條里有規(guī)定變更發(fā)布三原則 “可灰度、可監(jiān)控、可回滾”。發(fā)布之前要做好發(fā)布計(jì)劃和評(píng)審,檢查是否滿足這三個(gè)要素。
灰度分為功能灰度和發(fā)布灰度,功能灰度可以根據(jù)自己的團(tuán)隊(duì)情況設(shè)計(jì)。發(fā)布灰度首先從流程上建議增加小流量灰度環(huán)境,部分流量可以劫持到小流量環(huán)境,一些重大的問(wèn)題可以在小流量環(huán)境提前發(fā)現(xiàn)。另外有條件的應(yīng)用也建議分單元/分區(qū)域分開部署,短時(shí)間內(nèi)模擬藍(lán)綠部署,為容災(zāi)切流創(chuàng)造條件。
對(duì)于回滾,切記要做回滾驗(yàn)證,不要一股腦不暫停回滾完。因?yàn)橹芭龅竭^(guò)一個(gè)案例,越回滾問(wèn)題越嚴(yán)重,原因是當(dāng)時(shí)的問(wèn)題是遠(yuǎn)程緩存異常導(dǎo)致應(yīng)用啟動(dòng)后出現(xiàn)數(shù)據(jù)異常,回滾重啟后又導(dǎo)致已發(fā)布機(jī)器本地緩存失效放大了影響面。
應(yīng)急處置
故障預(yù)防是降低問(wèn)題發(fā)生的概率,不是消滅問(wèn)題。根據(jù)墨菲定律,只要存在可能就一定會(huì)發(fā)生。所以應(yīng)急處置就是我們的兜底手段,是保證高可用性的重要一環(huán)。
容災(zāi)切流
出現(xiàn)故障我們首先需要做的不是定位原因,而是及時(shí)止血和快速恢復(fù),而容災(zāi)切流往往是快恢的首選,時(shí)效性最高。
web型應(yīng)用:當(dāng)前成熟的方案是vipserver容災(zāi)機(jī)制。原理也很簡(jiǎn)單,多單元的機(jī)器都掛載到vipserverkey下,正常情況下因?yàn)橥瑱C(jī)房規(guī)則生效請(qǐng)求都是單元內(nèi)調(diào)用。當(dāng)需要容災(zāi)時(shí)拉黑異常單元下的機(jī)器,同機(jī)房規(guī)則失效流量就會(huì)串流到其他單元從而達(dá)到跨單元容災(zāi)的效果。

服務(wù)型應(yīng)用:當(dāng)前還沒(méi)有特別標(biāo)準(zhǔn)的方案,商品的做法是使用代理服務(wù)多地注冊(cè),在容災(zāi)切流時(shí)通過(guò)調(diào)用不同單元的代理服務(wù)來(lái)達(dá)到跨單元切流的效果。

變更回滾
出現(xiàn)線上問(wèn)題的時(shí)候,如果無(wú)法通過(guò)容災(zāi)切流的手段解決就要看一下有沒(méi)有變更發(fā)布,判斷如果可能跟變更有關(guān)就先回滾,重要的還是要做好回滾驗(yàn)證。
擴(kuò)容重啟
遇到突發(fā)流量、下游系統(tǒng)慢或本身資源容量不足都可能導(dǎo)致應(yīng)用自身負(fù)載承壓。在遇到資源瓶頸的時(shí)候快速擴(kuò)容就是首選,這個(gè)時(shí)候考驗(yàn)的是系統(tǒng)的彈性能力。當(dāng)前也有一些可行的方案:
- VPA:基于CPU/內(nèi)存垂直彈性,調(diào)整的是cpu核數(shù)和內(nèi)存大小,不過(guò)有上限。
- HPA:基于CPU/內(nèi)存水平彈性,缺點(diǎn)就是擴(kuò)容速度不夠快,還是要經(jīng)歷應(yīng)用啟動(dòng)的過(guò)程,應(yīng)對(duì)突發(fā)的流量波峰可能不太可行。
- KPA:基于流量/響應(yīng)水平彈性,據(jù)稱是CSE的替代者,猜測(cè)應(yīng)該可以通過(guò)回放內(nèi)存鏡像來(lái)實(shí)現(xiàn)快速擴(kuò)容。
當(dāng)無(wú)法擴(kuò)容的時(shí)候,重啟是解決系統(tǒng)性能問(wèn)題的另一個(gè)重要手段。據(jù)不科學(xué)的統(tǒng)計(jì),90%的暫不明原因的性能問(wèn)題可以通過(guò)重啟暫時(shí)解決或一定程度上緩解。
限流降級(jí)
面對(duì)容量問(wèn)題,除了擴(kuò)容以外另一個(gè)選擇就是限流和降級(jí),可以根據(jù)重要程度優(yōu)先對(duì)邊緣應(yīng)用和非核心場(chǎng)景做限制。
- 分層分場(chǎng)景:我們支撐的業(yè)務(wù)肯定是有優(yōu)先級(jí)的,有核心的業(yè)務(wù),也有邊緣場(chǎng)景。當(dāng)需要做限流降級(jí)處置的時(shí)候不能一刀切,要根據(jù)重要程度先對(duì)非重要的應(yīng)用作限制。
- 分用戶粒度:同樣我們服務(wù)的用戶也是有優(yōu)先級(jí)的。以商品為例有付費(fèi)商家和免費(fèi)商家,那么在整體資源受限的情況下就可以先對(duì)免費(fèi)商家做降級(jí)處理。
- 根據(jù)資源占用分層:像商品場(chǎng)景存在品量非常多的商家,這部分用戶的某些操作可能對(duì)系統(tǒng)資源占用比較大,比較常見(jiàn)的就是引起數(shù)據(jù)熱點(diǎn)或者數(shù)據(jù)偏移,而這些都是影響性能的因素,所以對(duì)資源占用大戶也要有對(duì)應(yīng)的處置措施,比如禁讀禁寫。
應(yīng)急公告
如果短時(shí)間內(nèi)無(wú)法恢復(fù)(參考1-5-10標(biāo)準(zhǔn)),那么就需要掛應(yīng)急公告減少用戶進(jìn)線,每個(gè)業(yè)務(wù)場(chǎng)景的應(yīng)急公告應(yīng)該預(yù)先編制完成,在有需要時(shí)一鍵執(zhí)行。
應(yīng)急參考
應(yīng)急處置的方案有很多,但是在處理線上問(wèn)題時(shí)應(yīng)該是有優(yōu)先級(jí)的,先做什么其次做什么最后做什么。下圖是整理的一份應(yīng)急處置SOP參考文檔。它不是操作手冊(cè),不能在出問(wèn)題時(shí)再去查閱,而是每個(gè)人腦子里應(yīng)該有這樣一張圖,對(duì)于線上應(yīng)急處理流程爛熟于胸。

?
故障演練
所有的安全生產(chǎn)的措施都做好了,那么怎么驗(yàn)證它可以正常工作,故障演練是很好的手段。一方面可以檢驗(yàn)穩(wěn)定性保障措施的可用性,另外一方面也可以鍛煉技術(shù)人員的應(yīng)急處理能力。我看到過(guò)不止一次有人在處理故障時(shí)很緊張手都在抖。所以常態(tài)化的故障演練,特別是突襲演練可以讓更多人參與到應(yīng)急處理的過(guò)程中去,多實(shí)踐才可以在真正發(fā)生問(wèn)題的時(shí)候有條不紊。
復(fù)盤改進(jìn)
歸納總結(jié)
出問(wèn)題不可怕,重要的是分析這個(gè)過(guò)程中存在什么問(wèn)題,流程機(jī)制上有什么漏洞,從而幫助我們做的更好。商品的穩(wěn)定性措施就是在一次次面對(duì)各種問(wèn)題的過(guò)程中總結(jié)和實(shí)踐的。
經(jīng)驗(yàn)分享
歸納總結(jié)是利己,避免自己再犯相同的錯(cuò)誤。經(jīng)驗(yàn)分享是利他,幫助別人不要掉到同樣的坑里。另外技術(shù)風(fēng)險(xiǎn)防控平臺(tái)里的大部分故障都是公開的,可以看看自己的應(yīng)用有沒(méi)有同樣的風(fēng)險(xiǎn)。
總結(jié)
風(fēng)險(xiǎn)意識(shí):做好穩(wěn)定性最重要的是要有風(fēng)險(xiǎn)意識(shí),對(duì)生產(chǎn)保持敬畏之心。有風(fēng)險(xiǎn)意識(shí)才會(huì)在產(chǎn)研的全流程中關(guān)注穩(wěn)定性的事情。比如新引入了一個(gè)依賴,就會(huì)考慮它異常了對(duì)于自己有什么影響,有沒(méi)有容災(zāi)方案,能不能降級(jí)等等。另外有風(fēng)險(xiǎn)意識(shí)也會(huì)慢慢的形成一些良好的習(xí)慣,比如定期Review系統(tǒng)水位,我個(gè)人每天早上剛到公司做的第一件事就是看一下監(jiān)控和報(bào)警。
減少損失:應(yīng)急處置的第一原則是把損失降到最低,先恢復(fù),再定位。
風(fēng)險(xiǎn)自愈:安全生產(chǎn)建設(shè)最終的目的應(yīng)該是具備自愈能力,在系統(tǒng)出現(xiàn)問(wèn)題時(shí)能夠及時(shí)介入并自動(dòng)恢復(fù)。
向人體學(xué)習(xí),他擁有一套三重的免疫系統(tǒng),這是一個(gè)百年的相當(dāng)穩(wěn)定的系統(tǒng)。-- 魯肅
所以事前要有風(fēng)險(xiǎn)意識(shí),事中要及時(shí)止損,事后查漏補(bǔ)缺構(gòu)建風(fēng)險(xiǎn)自愈的能力。更重要的是秉持長(zhǎng)期主義的精神,相信最終能夠做好安全生產(chǎn)的事情。






























