自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

速度和可靠性可以兩全其美

譯文 精選
開發(fā) 項目管理
通過采用整體方法并利用我將在下面介紹的工程原理和實踐,我們可以兩全其美——速度和可靠性。這不是非此即彼的情況,而是兩者之間微妙的平衡。

作者 | Eugene Retunsky 

策劃 | 云昭

51CTO讀者成長計劃社群招募,咨詢小助手(微信號:CTOjishuzhan)

通過采用整體方法并利用工程原理和實踐,我們可以兩全其美——速度和可靠性。

當(dāng)涉及到在線服務(wù)時,正常運行時間是至關(guān)重要的,但這并不是唯一需要考慮的事情。想象一下,經(jīng)營一家網(wǎng)上商店——讓你的網(wǎng)站99.9%的時間都可用聽起來不錯,但如果0.1%的停機時間發(fā)生在假日購物季呢?這可能意味著失去大筆銷售額。如果你的大多數(shù)客戶只對少數(shù)受歡迎的商品感興趣呢?如果這些頁面不可用,那么網(wǎng)站的其他部分是否正常工作也沒關(guān)系。

有時,“在高峰時刻隨時待命”干系到你生意的成敗。不僅僅是電子商務(wù)——一小部分機場處理著大部分的空中交通,只有極少數(shù)名人家喻戶曉,每年只有少數(shù)賣座電影占據(jù)票房主導(dǎo)地位。到處都是相同的分布模式。

為了取得成功,重要的是不僅要保持正常運行時間,還要為重大事件做好準備。一些團隊在關(guān)鍵時間之前實施變更凍結(jié),如黃金日、黑色星期五或網(wǎng)絡(luò)星期一。這種方法是合理的,但它可能是有限的,因為它不允許團隊對意外的機會或關(guān)鍵情況做出快速反應(yīng)。此外,并不是所有的需求都可以預(yù)測,也不總是清楚這些高影響事件何時會發(fā)生。這就是“重要時的可靠性”的用武之地。我們需要能夠適應(yīng)和快速響應(yīng)客戶需求的變化,而不會被代碼凍結(jié)期所阻礙,并為不可預(yù)見的情況做好準備。

通過將時間視為一種寶貴的資源,并了解不同時刻的相對重要性,組織可以更好地轉(zhuǎn)化客戶價值,并相應(yīng)地調(diào)整風(fēng)險和可用性預(yù)算。這種方法使組織能夠靈活應(yīng)對需求變化,而不會錯過關(guān)鍵功能或機會。最后,這是關(guān)于當(dāng)運氣來臨時做好準備。

需要注意的是,一個系統(tǒng)不是靜態(tài)的,而是不斷變化的。系統(tǒng)本身、托管的基礎(chǔ)設(shè)施和工程組織都會隨著時間的推移而變化。這意味著有關(guān)系統(tǒng)的知識也會發(fā)生變化,這可能會影響可靠性。

除此之外,無論我們?nèi)绾闻Ψ乐故鹿屎屯C,事故和停機都是不可避免的。錯誤將被發(fā)送,錯誤的配置將被部署,并且會發(fā)生人為錯誤。也可能存在相互依賴性,從而導(dǎo)致停機。一個事件很少有單一的原因,通常是多種因素共同作用的結(jié)果。解決方案也是如此,當(dāng)它們涉及到原則和實踐的結(jié)合,以減輕停機的影響時,這些解決方案是最有效的。

操作系統(tǒng)通常意味著要應(yīng)對現(xiàn)實世界的壓力,如時間、市場和管理需求,以更快地交付。這可能導(dǎo)致走捷徑,并可能損害系統(tǒng)的可靠性。用戶群和組織的增長和擴展也會帶來額外的復(fù)雜性,并導(dǎo)致意外或不可預(yù)見的行為和故障模式。然而,通過采用整體方法并利用我將在下面介紹的工程原理和實踐,我們可以兩全其美——速度和可靠性。這不是非此即彼的情況,而是兩者之間微妙的平衡。

1、什么是可靠性

可靠性是任何系統(tǒng)的重要組成部分,因為它不僅保證可用性,而且保證正常運行。一個系統(tǒng)可能是可訪問的,但如果它不能準確地運行,它就缺乏可靠性。目標是在系統(tǒng)內(nèi)實現(xiàn)可用性和準確性,這需要控制故障并將其影響降至最低。然而,并非所有故障都具有同等的重要性。例如,阻止結(jié)賬和付款的問題遠比圖像加載中的小故障更重要。重要的是要專注于確保重要功能在關(guān)鍵時刻正確工作。

換句話說,我們希望專注于在高峰時段保持可用性和正確運行,為最重要的功能提供服務(wù),無論是流行頁面還是流程的關(guān)鍵部分。確保系統(tǒng)在繁忙時期正常工作是很困難的,但重要的是要以深思熟慮和徹底的方式來處理。這包括對系統(tǒng)的技術(shù)、操作和組織方面的思考。這種方法的關(guān)鍵部分包括:

設(shè)計具有彈性、容錯和自我修復(fù)能力的系統(tǒng)。

在極端條件下主動測試系統(tǒng),以識別潛在的弱點并防止倒退。

有效的操作實踐:定義托管拓撲、自動擴展、自動化部署/回滾、實施更改管理、監(jiān)控和事件響應(yīng)協(xié)議。

應(yīng)對增長、市場需求和工程質(zhì)量的競爭壓力。

培養(yǎng)一種重視協(xié)作、知識共享、開放、簡單和工藝的文化。它還需要關(guān)注結(jié)果,以避免猶豫不決,并為客戶提供盡可能好的體驗。

此外,我們將擴展“重要時的可靠性(Reliability when it matters)”的概念,并為組織提供切實可行的步驟,以確保關(guān)鍵時刻的可用性和功能。我們將討論關(guān)鍵要素,如設(shè)計可靠性系統(tǒng)、主動測試和監(jiān)控,并深入研究自動化部署和事件響應(yīng)協(xié)議等實際步驟。

2、可靠性度量:優(yōu)化的重要工具

在優(yōu)化服務(wù)或系統(tǒng)時,首先定義目標并建立監(jiān)控進度的方法至關(guān)重要。您選擇的指標應(yīng)能讓您全面了解系統(tǒng)的可靠性,易于理解、共享,并突出需要改進的領(lǐng)域。以下是一些常見的可靠性指標:

  • 事件頻率:每單位時間內(nèi)發(fā)生的事件數(shù)。
  • 事件持續(xù)時間:事件持續(xù)的總時間。

雖然這些指標是一個很好的起點,但它們并沒有顯示事故對客戶的影響。讓我們考慮以下圖表:

圖片

?藍色-每五分鐘的請求數(shù),紅色-錯誤,綠色-0..1中的可靠性

假設(shè)我們有兩個事件,一個在凌晨1點,另一個在下午2點,每個事件都導(dǎo)致大約10%的請求在30分鐘內(nèi)失敗。將這些事件視為對可靠性同樣有影響,并不能反映它們對客戶的真實影響。通過考慮交通量,可靠性指標可以更好地表明高峰交通期間的事件具有更大的影響,值得更高的優(yōu)先級。

我們的目標是有一個明確的信號,表明高峰交通期間的事故是一個應(yīng)該解決的主要問題。這種區(qū)別有助于確定任務(wù)的優(yōu)先級,并確保資源得到有效利用。例如,它可以防止營銷團隊為吸引更多訪客所做的努力被浪費。此外,跟蹤每個發(fā)布的事件頻率可以幫助改進部署和測試過程,并減少意外問題。最終,這將導(dǎo)致更快的交付和更低的風(fēng)險。

3、深入挖掘指標

要更深入地了解這些指標并找到需要改進的地方,請嘗試跟蹤以下內(nèi)容:

  • 檢測時間:注意到一個事件需要多長時間。
  • 通知時間:通知相關(guān)方需要多長時間。
  • 修復(fù)時間:修復(fù)一個事件需要多長時間。
  • 事件間隔時間:這可以揭示系統(tǒng)故障的模式或趨勢。
  • 操作項完成率:完成任務(wù)的百分比。
  • 行動項目解決時間:實施解決方案所需的時間。
  • 高嚴重事故的百分比:這衡量系統(tǒng)的總體可靠性。

最后,在每周運營期間定期審查這些指標有助于關(guān)注進展、識別成功并確定優(yōu)先級。通過將此作為您文化的常規(guī)組成部分,您可以使用這些指標中的數(shù)據(jù)來推動更好的決策并逐步優(yōu)化系統(tǒng)。

記住,衡量標準的有用性在于從中采取的行動及其推動進步的能力。這是一個不斷完善數(shù)據(jù)和行動項目的反饋循環(huán),以保持系統(tǒng)的改進。

4、彈性設(shè)計

一個沒有彈性的系統(tǒng)可能無法順利處理高峰時間。以下是一些有助于確保系統(tǒng)在各種條件下的可靠性的注意事項:

要做的:

  • 為組件故障做好準備:通過劃分服務(wù)或使用隔離,可以限制爆炸半徑并減少故障的影響。
  • 實現(xiàn)容錯:實現(xiàn)重試、請求對沖和背壓等機制將提高系統(tǒng)的可用性和性能。
  • 使用速率限制和流量配額:不要僅僅依靠上游依賴關(guān)系來保護自己。使用速率限制和流量配額來確保您的系統(tǒng)保持可靠。
  • 分類功能: 通過將職能劃分為“關(guān)鍵”、“正?!焙汀氨M最大努力”類別來確定職能的優(yōu)先級。這將有助于在高需求期間不惜一切代價保持基本功能的可用性。
  • 實現(xiàn)錯誤定步和甩負荷:這些機制有助于防止或減輕流量濫用或濫用。
  • 持續(xù)挑戰(zhàn)系統(tǒng):持續(xù)挑戰(zhàn)系統(tǒng)并考慮潛在故障,以確定需要改進的領(lǐng)域。
  • 恢復(fù)計劃:實施故障轉(zhuǎn)移機制,并在發(fā)生故障時計劃恢復(fù)。這將有助于減少停機時間,并確保在具有挑戰(zhàn)性的條件下提供基本服務(wù)。
  • 進行戰(zhàn)略權(quán)衡:在具有挑戰(zhàn)性的外部條件下,進行戰(zhàn)略權(quán)衡并優(yōu)先考慮基本服務(wù)。

不要做的:

  • 不要以為調(diào)用者會按預(yù)期使用您的服務(wù)。
  • 不要忽視罕見但潛在的失??;規(guī)劃和設(shè)計預(yù)防措施。
  • 不要忽視硬件故障的可能性。

5、可靠性測試

可靠性測試對于在高需求期間保持系統(tǒng)的可用性和功能性至關(guān)重要。為了確保系統(tǒng)的可靠性,重要的是:

  • 針對可測試性進行設(shè)計,以便可以單獨測試每個組件。
  • 有足夠好的測試覆蓋率作為敏捷的先決條件。
  • 按重要性校準測試,將重點放在基本功能上,并對次要或?qū)嶒灩δ芙o予一點放松。
  • 進行廣泛的非功能測試,如負載測試、壓力測試、故障注入測試、浸泡測試和模糊/組合測試。

有必要避免以下情況:

  • 盲目追求高覆蓋率。
  • 假設(shè)一個數(shù)據(jù)點可以提供全面的理解。確保結(jié)果具有可重復(fù)性。
  • 測試環(huán)境和工具投資不足。

適當(dāng)?shù)臏y試不僅可以確保正確性,作為活的文檔,防止非功能性的倒退,還可以幫助工程師更深入地理解系統(tǒng),在試圖挑戰(zhàn)系統(tǒng)的同時發(fā)揮他們的創(chuàng)造力,并最終為所有利益相關(guān)者創(chuàng)造更具彈性、更可靠的系統(tǒng)。

記住,如果你不故意對你的系統(tǒng)進行壓力測試,你的用戶會為你做的。那一刻何時到來,你將無法選擇。

6、以可靠性為導(dǎo)向的運維

運維分布式系統(tǒng)就像指揮管弦樂隊,這是一門精細的藝術(shù),需要高水平的技能和對細節(jié)的關(guān)注。許多工程師傾向于低估操作的重要性,或者將其視為軟件開發(fā)的次要因素。然而,在現(xiàn)實中,操作可能會對系統(tǒng)的可靠性產(chǎn)生重大影響。

就像指揮家的技巧和對管弦樂隊的理解對于確保和諧的表演至關(guān)重要。例如,云計算提供商通常提供基于開源產(chǎn)品的服務(wù)。這不僅僅是關(guān)于使用軟件,還有你如何使用它。這是云計算提供商業(yè)務(wù)的重要組成部分。

為了確??煽啃?,需要考慮運維的三個關(guān)鍵方面:

  • 運行服務(wù):這涉及到托管配置、部署過程和定期維護任務(wù),如安全補丁、備份等。
  • 事件預(yù)防:實時監(jiān)控系統(tǒng)以快速檢測和解決問題,定期測試系統(tǒng)的性能和可靠性、容量規(guī)劃等。
  • 事件響應(yīng):制定明確的事件響應(yīng)協(xié)議,定義團隊成員在事件中的角色和責(zé)任,以及有效的審查、溝通和后續(xù)機制,以解決問題,防止類似事件發(fā)生或最大限度地減少其在未來的影響。

事件響應(yīng)方面尤其重要,因為它可以作為現(xiàn)實核查。畢竟,所有采取的措施都是不夠的。這是一個謙遜的時刻,也是一個意識到世界比我們想象的要復(fù)雜得多的時刻。我們需要盡可能誠實地找出導(dǎo)致這起事件的所有工程和程序缺陷,并看看我們未來可以做得更好。

為了使事件回顧有效,考慮采用以下做法:

  • 假設(shè)讀者事先不了解您的服務(wù)。首先,你寫這個回顧是為了分享知識,寫得清楚,讓別人理解。
  • 確定事件的影響。這有助于調(diào)整在后續(xù)措施中投資所需的工作量。只有相對嚴重的事件才需要一個深入的過程,不要對每一個不可能產(chǎn)生持久影響的小問題都進行回顧,從而使回顧正?;?/li>
  • 不要停留在舒適的答案上。深入挖掘,不必擔(dān)心個人的自負。目標是改進流程,而不是責(zé)怪個人或感到內(nèi)疚。
  • 優(yōu)先考慮本可以防止或大大降低事件嚴重程度的行動項目。目標是盡可能少的行動項目,每個項目都有關(guān)鍵的優(yōu)先級。

就不止步于“舒適的答案”而言,重要的是要確定并解決長期可靠性的根本原因。以下是一些可能導(dǎo)致服務(wù)中斷的表面級別問題的示例:

  • 推送配置時出現(xiàn)的人為錯誤
  • 不可靠的上游依賴性導(dǎo)致無響應(yīng)。
  • 交通高峰導(dǎo)致我們的服務(wù)暫時無法使用。

根據(jù)這些診斷,很難提出長期提高可靠性的行動項目。另一方面,更深層次的根本原因聽起來可能是:

  • 我們的系統(tǒng)允許在沒有安全檢查的情況下將無效配置部署到整套業(yè)務(wù)。
  • 我們的服務(wù)沒有處理上游的不可用性,并加劇了停機。
  • 我們的服務(wù)沒有保護自己不受過度流量的影響。

解決根本原因可能更具挑戰(zhàn)性,但這對于實現(xiàn)長期可靠性至關(guān)重要。這只是我們在運營方面應(yīng)該努力的一個簡短概述,但還有更多的東西需要探索和考慮。從事件響應(yīng)協(xié)議到容量規(guī)劃,有許多細微差別和最佳實踐需要注意。

7、系統(tǒng)可靠性中的人為因素

雖然程序和機制在確保系統(tǒng)可靠性方面發(fā)揮著至關(guān)重要的作用,但最終是人類將其付諸實踐。因此,這不僅僅是要擁有正確的工具,還要培養(yǎng)正確的心態(tài),為這些機制注入活力,使其有效運行。以下是有助于(不僅如此)保持可靠性的一些關(guān)鍵品質(zhì)和習(xí)慣:

  • 與其他團隊和組織合作,以共享知識并朝著共同目標努力。
  • 一定程度的謙遜和對新信息的開放態(tài)度,以適應(yīng)和發(fā)展系統(tǒng)。
  • 專注于簡單性和工藝性,以創(chuàng)建可進化和可維護的系統(tǒng)。
  • 行動驅(qū)動、注重結(jié)果的心態(tài),避免停滯不前和猶豫不決。
  • 一種類似于兒童的好奇和實驗方法,不斷尋求了解系統(tǒng)是如何工作的,并找到改進它的方法。

8、總結(jié)

確保系統(tǒng)的可靠性是一項全面的工作,包括找出正確的指標,考慮到彈性進行設(shè)計,以及實施可靠性測試和操作。通過關(guān)注可用性、功能性和滿足最重要的需求,組織可以更好地轉(zhuǎn)化客戶價值,并相應(yīng)地調(diào)整風(fēng)險和優(yōu)先級。

建立和維護一個即使在最惡劣的條件下也能處理的系統(tǒng),不僅有助于推動業(yè)務(wù)成功并取悅客戶,而且還能給從事該系統(tǒng)的人帶來成就感??煽啃允且粋€持續(xù)的過程,需要關(guān)注、技能和紀律。通過遵循最佳實踐,不斷挑戰(zhàn)系統(tǒng),培養(yǎng)有韌性的心態(tài),團隊和組織可以創(chuàng)建強大可靠的系統(tǒng),能夠承受任何挑戰(zhàn)。

原文鏈接:https://dzone.com/articles/the-art-of-being-ready-reliability-in-extreme-cond


責(zé)任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2021-11-10 10:07:14

混合云云計算

2017-07-24 11:24:01

數(shù)據(jù)中心冷卻絕熱

2010-07-29 09:00:22

RIAJavaScriptHTML 5

2020-09-16 10:30:14

多云云計算多云基礎(chǔ)設(shè)施

2014-10-08 11:00:07

Wi-Fi銳捷網(wǎng)絡(luò)

2024-11-21 15:00:00

大語言模型數(shù)據(jù)

2022-05-25 23:25:17

低代碼數(shù)字化軟件

2019-08-30 12:10:05

磁盤數(shù)據(jù)可靠性RAID

2010-12-28 19:50:21

可靠性產(chǎn)品可靠性

2020-01-08 11:04:27

混合云云計算私有云

2020-03-30 21:36:57

硬件CPU顯卡

2022-03-17 18:52:41

PostgreSQ序列數(shù)據(jù)集群

2022-09-05 08:51:43

WindowsLinux操作系統(tǒng)

2018-01-18 16:40:02

潤乾word報表

2013-10-12 10:19:44

虛擬化可靠性

2022-08-05 12:59:50

物聯(lián)網(wǎng)IoT

2021-09-15 09:39:56

公共云云遷移云端

2012-08-01 14:00:55

JMPMinitab可靠性分析

2019-09-09 16:27:28

點贊
收藏

51CTO技術(shù)棧公眾號