一個大型的互聯(lián)網(wǎng)系統(tǒng),意味著大用戶量、業(yè)務模塊多、服務器多、各種資源占用多,在拿到一個大型的互聯(lián)網(wǎng)應用,運維保障工作應該從哪些方面抓起呢?
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設、網(wǎng)站制作與策劃設計,承留網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十余年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:承留等地區(qū)。承留做網(wǎng)站價格咨詢:13518219792首先還是先看運維的目標,追求更高的SLA、更低的成本。所有事情都是以這個目標為出發(fā)點,SLA指更高的服務質量,落實到數(shù)據(jù)上就是線上服務的可用性和性能,可用性是3個9的時候能不能達到4個9?能不能持續(xù)保持4個9?平均響應時間是100ms的時候能不能優(yōu)化到80ms?更低的成本指的是在同樣的SLA下,能不能用更少的服務器、更精簡的架構跑起來?所有的制度和自動化工具,都是為完成這一目標。
再看SLA和成本,兩者并不是獨立的,一般而言高SLA意味著高成本,例如用10臺服務器跑的服務改用100臺服務器跑,服務性能和質量的SLA肯定是有提升的,所以這兩個指標其實是一個對立與統(tǒng)一的平衡,兩個之間此消彼長,共同進步。當SLA和成本產(chǎn)生沖突時,為了服務的穩(wěn)定性,我們一般的做法也是先穩(wěn)住服務質量,再考慮優(yōu)化成本,也可以說用成本先穩(wěn)定住質量,再慢慢找出用這么多服務器、這么多資源的原因,畢竟如果服務質量沒有了、用戶流失了,一切都是零。
更高的SLA其實意味著更少的線上故障,如果我們以此為出發(fā)點去梳理運維的工作的全貌,其實要抓的工作階段就變成了故障前、故障中、故障后,我們要盡量加大故障前的工作投入,減少流入故障中的問題數(shù)量,一旦流入故障中,我們要想辦法快速止損,止損完在故障后做好故障復盤,形成改進措施避免同類問題再次發(fā)生,繼而流轉到故障前,循環(huán)往復.........為了更形象的理解,畫了一張圖來展現(xiàn)。
上圖將運維的工作從故障生的角度分成了8大塊,每一塊可能對應了很多個系統(tǒng)和制度作為支撐,全部形成了整個運維服務體系,我們?nèi)粘W龅墓ぞ吆椭贫染褪菫榱嗣總€業(yè)務環(huán)節(jié)執(zhí)行的更高效,PS 對于大型系統(tǒng)運維的一個關鍵在于各種標準化,標準化意味著批量操作意味著整齊劃一,現(xiàn)在拆開了說一下這8塊工作。
1、故障前—目標:減少問題流入“故障中”
①抓-變更
故障不是無緣無故的就生發(fā)了,很多發(fā)生在于變化,變化當中很大的一個又是迭代上線,從每年故障的歷史數(shù)據(jù)看,有很大一部分故障都是由于上線變更造成的,所以要嚴管變更,控制好質量后再上線。
管理變更主要是控制線上的“馬路殺手”,要做好單元測試、集成測試、線上灰度,然后再全量上線,保障萬無一失,從成本的角度看,上線后再回滾也是成本大的一種方式,影響了用戶,然后還要重新返工。
有些變更類故障不是上線后馬上能發(fā)現(xiàn)的,比如java程序的full gc,可能上線一天后才能發(fā)生,所以這個時候要一些制度作為輔助,比如說重大節(jié)日前幾天就不允許上線了,下班時間要找老板審批后走緊急上線等等,加大非正常時間上線的變更成本,讓開發(fā)和運維對線上服務慢慢培養(yǎng)起敬畏之心。
②抓-容量
容量的管理關乎到質量和成本,很多時候對于容量是模糊和缺失的,具體表現(xiàn)就是發(fā)生了容量故障、看到了cpu和內(nèi)存報警了才想到擴容,公司要優(yōu)化成本抓機器使用達標率才知道縮容,基本是被動的,而且沒有量化數(shù)據(jù)。沒有量化的容量管理就像中國廚師做飯一下,根據(jù)經(jīng)驗多加點鹽、少加點醋,這個多和少憑的是感覺,基本是不可主動管理的,對某個人的經(jīng)驗依賴性很大。
再提成本,容量的管理對成本是至關重要的,有了容量數(shù)據(jù),再結合目前的用戶就知道目前的服務器數(shù)量合理不合理,有多少浪費的,又或是需要擴容了,有了容量數(shù)據(jù)也可以暴露很多性能問題,比如一臺32核128G的機器才跑10個QPS,這顯然是不合理和需要重點優(yōu)化的。
根據(jù)實際經(jīng)驗,容量的指標一定要用業(yè)務指標不要用機器指標,舉個例子,很多時候如果代碼質量差,比如前面說的10QPS,機器的CPU、內(nèi)存等跑的反而挺高的,這個時候應該擴容么?業(yè)務指標一般指像QPS、在線用戶數(shù)、長鏈接數(shù)量等這些,理論情況下,先有了不同配置的單機容量數(shù)據(jù),再計算出集群的容量,繼而算出模塊的容量,再繼而算出整個產(chǎn)品的容量,在做容量測量用的最多的工具是壓測和全鏈路壓測,這個根據(jù)不同的情景使用。
對于容量數(shù)據(jù)首先保證有,再爭取越來越準,然后根據(jù)代碼、架構、機型改動情況動態(tài)更新。
③抓-災備
災備和成本也是相互矛盾的一對,做多機房災備成本一定高,因為機房之間要保有相互承載用戶的余量,不做多機房災備成本肯定是要低的,但如果某個機房垮了無法服務,業(yè)務就無處可切,就真的垮了,所以我們要根據(jù)業(yè)務的級別做合理的災備。
災備意味著做冗余,合理的災備可以保障在故障出現(xiàn)時,快速進行業(yè)務切換,保障用戶的可用性。一般而言災備分為熱備和冷備,冷備是指準備好資源平時空放,只有故障時才用一下,造成很大的資源浪費,所以一般能做熱備的就不做冷備。
做熱備的方法有很多,現(xiàn)在很多業(yè)務都是面向服務的,最常見的熱備方案其一是搭載負載均衡,通過心跳健康檢查服務自動調(diào)度,其二如果是移動、聯(lián)通、電信某條鏈路出現(xiàn)故障就通過域名解析進行切換。
最典型的冷備方案就是keepalived,通過vip漂移的方式對某個服務進行冷備,原理就不說了。
災備做好了,可以大大降低故障出現(xiàn)時的業(yè)務壓力,先把服務切了再查故障,心態(tài)要輕松很多,加之如果能夠自動切換(好像可以叫故障自愈)那就更好了。
④抓-巡檢
巡檢的意義在于發(fā)現(xiàn)潛在的問題,將尚未形成故障的問題提前暴露,提前解決。在方法上,可以人工巡檢也可以通過系統(tǒng)實現(xiàn),巡檢完后發(fā)送巡檢報告,將一些核心指標的變化情況根據(jù)業(yè)務的屬性進行標記通知。
無論是手動還是系統(tǒng)巡檢,都要對每個模塊的核心指標進行梳理,形成每個模塊的核心指標的鳥瞰screen,一來每天到辦公室首先要巡檢一下業(yè)務情況,二來在遇到故障的時候要迅速看一下各個指標的變化做故障定位。
各模塊的巡檢screen一般要包括QPS、錯誤、時延、外部依賴錯誤、機器指標這幾個大項,便于一眼發(fā)現(xiàn)問題所在,快速找到根因,定位故障影響范圍。
2、故障中—目標:快速發(fā)現(xiàn)問題、快速止損
如果前面的工作都保質保量的做了,故障依然出現(xiàn),那就考慮怎么應對處理吧,故障的處理關鍵有3個環(huán)節(jié)。
⑤抓-告警
不說告警沒配等特殊情況,告警應該是故障的第一事件,當oncall人員收到告警,判斷影響后,分發(fā)給相應的同學處理,直到故障恢復。
所以在告警一定要管理好,告警要根據(jù)事件的影響程度分級,告警短信和郵件里盡可能攜帶更多的判斷信息,做的好的甚至可以做一下故障參考預判。
告警的建設上一定要圍繞3個點準、少、快,準是告警的信息準,少是告警的數(shù)量少都是收斂后的有效告警,快指的是告警的實效性高速度快。
⑥抓-定位
oncall同學收到告警簡單的判斷后,會把告警分發(fā)給處理人,這個時候就到了故障定位環(huán)節(jié)。
故障定位依賴于對業(yè)務架構細致的了解、依賴于線上的經(jīng)驗,一般會借助監(jiān)控進行排查,這時候在巡檢階段建的核心指標screen就派上用場了,通過screen和核心指標基本可以做個預判,然后再通過日志分析或登錄服務器查看詳細日志進行根因排障。
定位也是有輕重緩急的,首先要找到故障模塊和故障范圍,找到后先根據(jù)預案將業(yè)務切掉再去排查原因,減少線上用戶的影響。
⑦抓-預案
預案是指在定位到故障模塊和故障范圍后為了保障業(yè)務的穩(wěn)定,及時止損所進行的操作,
為了故障發(fā)生后盡快止損減少影響,在平時要考慮好各種故障發(fā)生的肯能性,并做好預案是非常重要的,預案也分為容災預案和降級預案,容災預案基本無損,降級預案可能會影響一些用戶體驗了,但是不影響主體功能,如果什么預案都沒有只能生抗了。
3、故障后—目標:消滅同類故障
⑧故障管理
故障管理是整個故障的善后工作,追責任的部分除外,那他的意義就是防止同類故障再次發(fā)生。一般會以故障復盤會的方式約所有相關方進行全過程復盤,最后形成的文檔叫“故障報告”,我認為里面最重要的兩個內(nèi)容一個是故障原因(到底是天災還是人禍?根因找到了沒有),一個是后續(xù)的改進措施。
管理中有句話叫“再好的制度如果不執(zhí)行等于沒有“,在改進措施的執(zhí)行上,很多好了傷疤忘了痛的做法屢見不鮮,改進措施改著改著就沒了,造成了同類故障重復出現(xiàn),這個過程中一定要確保形成的改進措施保質保量的完成。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。