Netflix開源Mantis:基于微服務的運維監控平臺

19-10-28 banq
                   

今天,我們很高興地宣布:Mantis開源了,該平臺可幫助Netflix工程師更好地了解其應用程序的行為,以確保為我們的會員提供最高質量的體驗。我們認為,在Netflix面臨的挑戰并不一定是Netflix獨有的,這就是我們與廣大社區共享它的原因。

作為流式微服務生態系統,Mantis平臺為工程師提供了在不影響運營洞察力的情況下,將觀察和運維復雜分布式系統的成本降至最低的功能。工程師們在Mantis之上構建了具有成本效益的應用程序,以快速發現問題,觸發警報并進行補救,以最大程度地減少或完全避免Netflix服務的停機。

在其他系統可能需要十多分鐘才能準確處理指標的情況下,Mantis將其從數十分鐘減少到幾秒鐘,從而有效地減少了我們的平均檢測時間。這是至關重要的,因為任何數量的停機時間都是殘酷的,并且對我們的成員造成了難以置信的巨大影響-在停機期間,每一秒都很重要。例如,今天發生五分鐘的中斷相當于我們上次發布Mantis博客時發生的兩小時的中斷。

使發現新問題變得容易

僅使用度量和日志的傳統方式不足以應對大規模且不斷增長的系統。指標和日志要求您提前知道要回答什么。另一方面,Mantis通過使我們能夠回答新問題而不必添加新的儀器,從而使我們能夠完全避開此缺點。Mantis代替了日志或指標,而是使事件民主化,使開發人員可以根據需要從任何檢測到的應用程序中獲取事件流。通過按需消費,您可以將所有數據自由發布到Mantis。

在解決問題方面具有成本效益

傳統上,通過發布100%的運營數據以使您將來能夠解決新問題在規模上是令人望而卻步的。Mantis使用按需響應模型,在這些事件被訂閱之前,您無需為這些事件付費。為了進一步降低成本,Mantis為同等訂戶重新發布了相同的數據。通過這種方式,Mantis與其他系統的區別在于,它使我們能夠在事件上實現基于流的可觀察性,同時使工程師能夠使用工具來降低原本會對業務造成不利影響的成本。

背后的指導原則

以下是構建螳螂的指導原則。

  1. 我們應該可以訪問原始事件。將事件發布到Mantis中的應用程序應該可以自由發布每個事件。如果我們在此階段過早地轉換事件,那么在獲取洞察力方面已經處于劣勢,因為原始形式的數據已經丟失。
  2. 我們應該能夠實時訪問這些事件。操作用例本質上是時間敏感的。批量發布,存儲然后聚合事件的傳統方法太慢。相反,我們應該在事件到達時一次處理和處理事件。隨著規模的擴大,影響將在短得多的時間內變得越來越大,這一點變得越來越重要。
  3. 我們應該能夠對此數據提出新的問題,而不必在您的應用程序中添加新的工具。盡管內置了使這些系統具有彈性的所有嚴格條件,但無法提前知道我們的系統可能遇到的每種可能的故障模式。當不可避免地發生這些故障時,重要的是我們可以利用這些數據得出新的見解。您應該可以根據需要發布具有盡可能多的上下文的大型事件。這樣,當您想到將來要問系統的新問題時,將可以使用數據來回答這些問題。
  4. 我們應該能夠以具有成本效益的方式完成上述所有工作。隨著關鍵業務系統規模的擴大,我們需要確保支持這些關鍵業務系統的系統最終不會比關鍵業務系統本身成本更高。

牢記這些指導原則,讓我們看一下Mantis如何為Netflix帶來價值

如何為Netflix增值

Mantis已經投入生產超過四年了。在此期間,在Mantis平臺之上構建了一些關鍵的操作洞察應用程序。

一些值得注意的例子包括:

實時監控Netflix流健康狀況,可實時檢查所有Netflix流視頻流量,并以細粒度精確地識別對觀看體驗的負面影響。該系統可作為Netflix服務整體運行狀況的預警指示器,并在幾秒鐘內觸發并提醒相關團隊。

上下文警報可實時分析數十種Netflix微服務之間的數百萬次交互,以識別異常并為運營商提供豐富而相關的上下文。這些由Mantis支持的聚合的實時性允許將檢測平均時間從數十分鐘減少到幾秒鐘。鑒于Netflix的規模,這將產生巨大的影響。

Raven允許用戶使用我們的Mantis查詢語言(MQL)對來自數百個流媒體源的實時數據進行臨時瀏覽。

Cassandra運行狀況檢查,可實時分析豐富的運行事件,以全面了解Netflix每個Cassandra群集的運行狀況。

通過實時處理來自數千個Netflix服務器的數據,對日志數據發出警報,以檢測應用程序錯誤。

混沌實驗監控,可實時跟蹤用戶在混沌練習中的體驗,并在出現不利影響時觸發混亂練習的中止。

實時個人身份信息(PII)數據檢測跨所有流源采樣數據,以快速識別敏感數據的傳輸。

                   

美女漫画大全