High-Availability

尋找有關衡量使用 CDN 的高可用性應用程序的建議

  • November 8, 2010

我在一家財富 500 強公司工作,該公司難以準確衡量高可用性應用程序的性能和可用性(即,在 5 秒頁面到頁面導航的情況下提高 99.5% 的應用程序)。我們將計劃內和計劃外停機時間都考慮在內,以確定此可用性數量。但是,我們最近在組合中添加了一個 CDN,這使我們的指標有點複雜。CDN 現在處理我們大約 75% 的流量,同時將剩餘的流量發送到我們自己的伺服器。

我們試圖衡量我們所謂的“真正的使用者體驗”(即,我們的測試腳本模擬典型的使用者點擊應用程序。)這些監控腳本位於我們的網路之外,這意味著我們訪問了大約 75% 的 CDN時間。

管理層已決定我們採用最壞的情況來衡量可用性。因此,如果我們的源伺服器出現問題,但 CDN 提供的內容還不錯,我們仍然會影響可用性。反過來也是如此。我的想法是,只要“使用者體驗”成功,我們就不應該無謂地懲罰自己。畢竟,CDN 可以提高性能和可用性!

我只是想知道是否有人知道其他財富 500 強公司如何計算他們的可用性數字?例如,我查看 apple.com 的一個店面,該店面使用的 CDN 似乎永遠不會關閉(除非即將發布重大產品公告。)擁有一些確鑿的事實數據會很棒,因為我不知道不要相信我們需要在這些指標上不必要地傷害自己。我們正在根據這些數字做出業務決策。

然而,我可以說,鑑於這些指標對管理層是可見的,問題得到解決並很快得到解決(閱讀:我們很快就消除了繁文縟節。)不幸的是,作為一名開發人員,我不希望管理層認為由於某些外部因素(即 CDN)正在影響數字,因此應用程序處於上升或下降狀態。

想法?

(我錯誤地將這個問題發佈在 StackOverflow 上,對於交叉文章,我深表歉意)

在摘要中,我會說你應該明確定義什麼是“可用”與“不可用”,並根據它來衡量自己。例如,您可以為站點設置一個客戶端性能 SLA,該站點的“折疊”時間為 1 秒,完全呈現頁面的時間為 3 秒。當您不滿足性能 SLA 時,您應該將其視為該時間段的可用性故障。是否訪問 CDN 無關緊要——使用者體驗才是最重要的。

但是,由於您僅每 5 分鐘進行一次測量,因此分別測量 CDN 與主站點的點擊似乎是合理的,併計算出 75% 的可用性來自 CDN,25% 來自主站點。這裡的困難在於 75% 只是一個平均值。為了在給定的時間段內準確地分配責任,您需要知道一個或另一個站點何時實際上不面向客戶,例如,在計劃的更改期間或在檢測到問題時的手動操作之後。您還需要考慮當主站點或 CDN 之一關閉時會發生什麼。客戶是否獲得了 HTTP 500,或者他們只是透明地故障轉移到工作站點?很大程度上取決於您的負載平衡解決方案。您描述的“最壞情況”指標似乎過於簡單。問你自己, ”

至於CDN宕機時是否應該“責備”:絕對。如果您 75% 的點擊進入 CDN,那麼您 75% 的客戶體驗取決於它們。您有責任為您的客戶提供良好的體驗,因此如果 CDN 出現問題,您需要使用您的工程資源來證明這一點並與提供商聯繫。

要考慮的另一件事是當主站點長時間不可用時會發生什麼。正如您所描述的,聽起來 CDN 是主站點上內容的靜態副本。如果主站點長時間關閉,CDN 可能會開始變得陳舊。因此,您的 SLA 的一部分可能應該是新鮮度:“折疊”1 秒,完全呈現頁面 3 秒,內容不超過 15 分鐘。

引用自:https://serverfault.com/questions/119186