新聞中心
作者 | Eugene Retunsky

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


咨詢
建站咨詢
