掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
作者 | Eugene Retunsky

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)紅橋,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
策劃 | 云昭
讀者成長計劃社群招募,咨詢小助手(微信號:CTOjishuzhan)
通過采用整體方法并利用工程原理和實踐,我們可以兩全其美——速度和可靠性。
當(dāng)涉及到在線服務(wù)時,正常運(yùn)行時間是至關(guān)重要的,但這并不是唯一需要考慮的事情。想象一下,經(jīng)營一家網(wǎng)上商店——讓你的網(wǎng)站99.9%的時間都可用聽起來不錯,但如果0.1%的停機(jī)時間發(fā)生在假日購物季呢?這可能意味著失去大筆銷售額。如果你的大多數(shù)客戶只對少數(shù)受歡迎的商品感興趣呢?如果這些頁面不可用,那么網(wǎng)站的其他部分是否正常工作也沒關(guān)系。
有時,“在高峰時刻隨時待命”干系到你生意的成敗。不僅僅是電子商務(wù)——一小部分機(jī)場處理著大部分的空中交通,只有極少數(shù)名人家喻戶曉,每年只有少數(shù)賣座電影占據(jù)票房主導(dǎo)地位。到處都是相同的分布模式。
為了取得成功,重要的是不僅要保持正常運(yùn)行時間,還要為重大事件做好準(zhǔn)備。一些團(tuán)隊在關(guān)鍵時間之前實施變更凍結(jié),如黃金日、黑色星期五或網(wǎng)絡(luò)星期一。這種方法是合理的,但它可能是有限的,因為它不允許團(tuán)隊對意外的機(jī)會或關(guān)鍵情況做出快速反應(yīng)。此外,并不是所有的需求都可以預(yù)測,也不總是清楚這些高影響事件何時會發(fā)生。這就是“重要時的可靠性”的用武之地。我們需要能夠適應(yīng)和快速響應(yīng)客戶需求的變化,而不會被代碼凍結(jié)期所阻礙,并為不可預(yù)見的情況做好準(zhǔn)備。
通過將時間視為一種寶貴的資源,并了解不同時刻的相對重要性,組織可以更好地轉(zhuǎn)化客戶價值,并相應(yīng)地調(diào)整風(fēng)險和可用性預(yù)算。這種方法使組織能夠靈活應(yīng)對需求變化,而不會錯過關(guān)鍵功能或機(jī)會。最后,這是關(guān)于當(dāng)運(yùn)氣來臨時做好準(zhǔn)備。
需要注意的是,一個系統(tǒng)不是靜態(tài)的,而是不斷變化的。系統(tǒng)本身、托管的基礎(chǔ)設(shè)施和工程組織都會隨著時間的推移而變化。這意味著有關(guān)系統(tǒng)的知識也會發(fā)生變化,這可能會影響可靠性。
除此之外,無論我們?nèi)绾闻Ψ乐故鹿屎屯C(jī),事故和停機(jī)都是不可避免的。錯誤將被發(fā)送,錯誤的配置將被部署,并且會發(fā)生人為錯誤。也可能存在相互依賴性,從而導(dǎo)致停機(jī)。一個事件很少有單一的原因,通常是多種因素共同作用的結(jié)果。解決方案也是如此,當(dāng)它們涉及到原則和實踐的結(jié)合,以減輕停機(jī)的影響時,這些解決方案是最有效的。
操作系統(tǒng)通常意味著要應(yīng)對現(xiàn)實世界的壓力,如時間、市場和管理需求,以更快地交付。這可能導(dǎo)致走捷徑,并可能損害系統(tǒng)的可靠性。用戶群和組織的增長和擴(kuò)展也會帶來額外的復(fù)雜性,并導(dǎo)致意外或不可預(yù)見的行為和故障模式。然而,通過采用整體方法并利用我將在下面介紹的工程原理和實踐,我們可以兩全其美——速度和可靠性。這不是非此即彼的情況,而是兩者之間微妙的平衡。
可靠性是任何系統(tǒng)的重要組成部分,因為它不僅保證可用性,而且保證正常運(yùn)行。一個系統(tǒng)可能是可訪問的,但如果它不能準(zhǔn)確地運(yùn)行,它就缺乏可靠性。目標(biāo)是在系統(tǒng)內(nèi)實現(xiàn)可用性和準(zhǔn)確性,這需要控制故障并將其影響降至最低。然而,并非所有故障都具有同等的重要性。例如,阻止結(jié)賬和付款的問題遠(yuǎn)比圖像加載中的小故障更重要。重要的是要專注于確保重要功能在關(guān)鍵時刻正確工作。
換句話說,我們希望專注于在高峰時段保持可用性和正確運(yùn)行,為最重要的功能提供服務(wù),無論是流行頁面還是流程的關(guān)鍵部分。確保系統(tǒng)在繁忙時期正常工作是很困難的,但重要的是要以深思熟慮和徹底的方式來處理。這包括對系統(tǒng)的技術(shù)、操作和組織方面的思考。這種方法的關(guān)鍵部分包括:
設(shè)計具有彈性、容錯和自我修復(fù)能力的系統(tǒng)。
在極端條件下主動測試系統(tǒng),以識別潛在的弱點并防止倒退。
有效的操作實踐:定義托管拓?fù)?、自動擴(kuò)展、自動化部署/回滾、實施更改管理、監(jiān)控和事件響應(yīng)協(xié)議。
應(yīng)對增長、市場需求和工程質(zhì)量的競爭壓力。
培養(yǎng)一種重視協(xié)作、知識共享、開放、簡單和工藝的文化。它還需要關(guān)注結(jié)果,以避免猶豫不決,并為客戶提供盡可能好的體驗。
此外,我們將擴(kuò)展“重要時的可靠性(Reliability when it matters)”的概念,并為組織提供切實可行的步驟,以確保關(guān)鍵時刻的可用性和功能。我們將討論關(guān)鍵要素,如設(shè)計可靠性系統(tǒng)、主動測試和監(jiān)控,并深入研究自動化部署和事件響應(yīng)協(xié)議等實際步驟。
在優(yōu)化服務(wù)或系統(tǒng)時,首先定義目標(biāo)并建立監(jiān)控進(jìn)度的方法至關(guān)重要。您選擇的指標(biāo)應(yīng)能讓您全面了解系統(tǒng)的可靠性,易于理解、共享,并突出需要改進(jìn)的領(lǐng)域。以下是一些常見的可靠性指標(biāo):
雖然這些指標(biāo)是一個很好的起點,但它們并沒有顯示事故對客戶的影響。讓我們考慮以下圖表:
?藍(lán)色-每五分鐘的請求數(shù),紅色-錯誤,綠色-0..1中的可靠性
假設(shè)我們有兩個事件,一個在凌晨1點,另一個在下午2點,每個事件都導(dǎo)致大約10%的請求在30分鐘內(nèi)失敗。將這些事件視為對可靠性同樣有影響,并不能反映它們對客戶的真實影響。通過考慮交通量,可靠性指標(biāo)可以更好地表明高峰交通期間的事件具有更大的影響,值得更高的優(yōu)先級。
我們的目標(biāo)是有一個明確的信號,表明高峰交通期間的事故是一個應(yīng)該解決的主要問題。這種區(qū)別有助于確定任務(wù)的優(yōu)先級,并確保資源得到有效利用。例如,它可以防止?fàn)I銷團(tuán)隊為吸引更多訪客所做的努力被浪費(fèi)。此外,跟蹤每個發(fā)布的事件頻率可以幫助改進(jìn)部署和測試過程,并減少意外問題。最終,這將導(dǎo)致更快的交付和更低的風(fēng)險。
要更深入地了解這些指標(biāo)并找到需要改進(jìn)的地方,請嘗試跟蹤以下內(nèi)容:
最后,在每周運(yùn)營期間定期審查這些指標(biāo)有助于關(guān)注進(jìn)展、識別成功并確定優(yōu)先級。通過將此作為您文化的常規(guī)組成部分,您可以使用這些指標(biāo)中的數(shù)據(jù)來推動更好的決策并逐步優(yōu)化系統(tǒng)。
記住,衡量標(biāo)準(zhǔn)的有用性在于從中采取的行動及其推動進(jìn)步的能力。這是一個不斷完善數(shù)據(jù)和行動項目的反饋循環(huán),以保持系統(tǒng)的改進(jìn)。
一個沒有彈性的系統(tǒng)可能無法順利處理高峰時間。以下是一些有助于確保系統(tǒng)在各種條件下的可靠性的注意事項:
要做的:
不要做的:
可靠性測試對于在高需求期間保持系統(tǒng)的可用性和功能性至關(guān)重要。為了確保系統(tǒng)的可靠性,重要的是:
有必要避免以下情況:
適當(dāng)?shù)臏y試不僅可以確保正確性,作為活的文檔,防止非功能性的倒退,還可以幫助工程師更深入地理解系統(tǒng),在試圖挑戰(zhàn)系統(tǒng)的同時發(fā)揮他們的創(chuàng)造力,并最終為所有利益相關(guān)者創(chuàng)造更具彈性、更可靠的系統(tǒng)。
記住,如果你不故意對你的系統(tǒng)進(jìn)行壓力測試,你的用戶會為你做的。那一刻何時到來,你將無法選擇。
運(yùn)維分布式系統(tǒng)就像指揮管弦樂隊,這是一門精細(xì)的藝術(shù),需要高水平的技能和對細(xì)節(jié)的關(guān)注。許多工程師傾向于低估操作的重要性,或者將其視為軟件開發(fā)的次要因素。然而,在現(xiàn)實中,操作可能會對系統(tǒng)的可靠性產(chǎn)生重大影響。
就像指揮家的技巧和對管弦樂隊的理解對于確保和諧的表演至關(guān)重要。例如,云計算提供商通常提供基于開源產(chǎn)品的服務(wù)。這不僅僅是關(guān)于使用軟件,還有你如何使用它。這是云計算提供商業(yè)務(wù)的重要組成部分。
為了確保可靠性,需要考慮運(yùn)維的三個關(guān)鍵方面:
事件響應(yīng)方面尤其重要,因為它可以作為現(xiàn)實核查。畢竟,所有采取的措施都是不夠的。這是一個謙遜的時刻,也是一個意識到世界比我們想象的要復(fù)雜得多的時刻。我們需要盡可能誠實地找出導(dǎo)致這起事件的所有工程和程序缺陷,并看看我們未來可以做得更好。
為了使事件回顧有效,考慮采用以下做法:
就不止步于“舒適的答案”而言,重要的是要確定并解決長期可靠性的根本原因。以下是一些可能導(dǎo)致服務(wù)中斷的表面級別問題的示例:
根據(jù)這些診斷,很難提出長期提高可靠性的行動項目。另一方面,更深層次的根本原因聽起來可能是:
解決根本原因可能更具挑戰(zhàn)性,但這對于實現(xiàn)長期可靠性至關(guān)重要。這只是我們在運(yùn)營方面應(yīng)該努力的一個簡短概述,但還有更多的東西需要探索和考慮。從事件響應(yīng)協(xié)議到容量規(guī)劃,有許多細(xì)微差別和最佳實踐需要注意。
雖然程序和機(jī)制在確保系統(tǒng)可靠性方面發(fā)揮著至關(guān)重要的作用,但最終是人類將其付諸實踐。因此,這不僅僅是要擁有正確的工具,還要培養(yǎng)正確的心態(tài),為這些機(jī)制注入活力,使其有效運(yùn)行。以下是有助于(不僅如此)保持可靠性的一些關(guān)鍵品質(zhì)和習(xí)慣:
確保系統(tǒng)的可靠性是一項全面的工作,包括找出正確的指標(biāo),考慮到彈性進(jìn)行設(shè)計,以及實施可靠性測試和操作。通過關(guān)注可用性、功能性和滿足最重要的需求,組織可以更好地轉(zhuǎn)化客戶價值,并相應(yīng)地調(diào)整風(fēng)險和優(yōu)先級。
建立和維護(hù)一個即使在最惡劣的條件下也能處理的系統(tǒng),不僅有助于推動業(yè)務(wù)成功并取悅客戶,而且還能給從事該系統(tǒng)的人帶來成就感。可靠性是一個持續(xù)的過程,需要關(guān)注、技能和紀(jì)律。通過遵循最佳實踐,不斷挑戰(zhàn)系統(tǒng),培養(yǎng)有韌性的心態(tài),團(tuán)隊和組織可以創(chuàng)建強(qiáng)大可靠的系統(tǒng),能夠承受任何挑戰(zhàn)。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流