Categories
程式開發

Netflix開源危機管理工具Dispatch,真香!


本文最初發佈於Netflix技術博客,經授權由InfoQ中文站翻譯並分享。

什麼是Dispatch? 簡單說,它是一個管理事件元數據和資源的危機管理編排框架。 通過與組織中使用工具(像Slack、GSuite等)的深度集成,Dispatch可以幫助我們有效地管理安全事件。 它利用組織熟悉的工具來提供編排功能,而非引入另一種工具。

這意味著你能讓Dispatch專注於創建資源、安排參與者、發送通知和跟踪任務以及協助事後回顧——讓你真正專注於解決問題!

危機管理的挑戰

管理事件是一項壓力很大的工作。 因為,你同時要處理許多問題:範圍是什麼? 誰能提供幫助? 我還需要誰參與進來? 我應該如何處理這一切?

一般來說,每一個事件都是獨一無二的,如果同樣的事件一而再再而三地發生,你就成消防員了。

危機管理主要包含四個組件:

  1. 資源管理——不僅要管理收集到的與事件相關的數據,還有所有和事件響應相關的元數據。
  2. 個人參與——理解讓個人和團隊參與的最佳方式,並根據事件上下文來進行。
  3. 生命週期管理——提供事件指揮官(IC)工具,輕鬆管理事件的生命週期。
  4. 事件學習——基於以前的事件加快對未來事件的分析。

在本文接下來的討論中,我們會用到以下術語:

  • 事件指揮官:負責推動事件解決的人。
  • 事件參與者:幫助解決事件的主題專家(SMEs)。
  • 資源:在事件中使用的文檔、屏幕截圖、日誌或任何其他數字化信息。

事件處理步驟

普通事件的處理有很多步驟,其中很多通常都是由人即時處理的。 讓我們列舉下:

  • 聲明一個事件——事件有許多不同的入口:自動報警、內部通知或外部通知。
  • 確定事件指揮官——根據事件來源、類型和優先級,確定負責推動特定事件的唯一負責人。
  • 創建溝通通道——事件處理期間的溝通很關鍵。 創建標準化的專用溝通通道可以防止通信筒倉的出現。
  • 創建事件文檔——包含最新事件信息的重要文件,其中包括事件描述、資源鏈接、面對面會議的紀要、打開的問題、行動項和時間表信息。
  • 確定個體資源——事件指揮官不會自己解決事件,他們必須在組織內找出其他的資源,讓他們參與進來幫助自己。
  • 引導個體資源——光讓其他資源參與進來還不夠,事件指揮官還需要讓這些資源了解當前的情況。
  • 通知關鍵干係人——對於任何給定的事件,如果關鍵干係人沒有參與事件解決,則需要通知他們。
  • 推動事件解決——事件的實際解決,創建任務,提出問題,並跟踪答案。 解決問題後記錄解決問題的要點。
  • 執行事件後回顧(PIR)——回顧事件處理執行過程,跟踪事件發生後要採取的行動,並通過構建非正式知識來推動學習。

每個步驟都需要事件指揮官和事件參與者跨越不同的系統和接口。 每次上下文切換都會增加響應者的認知負荷,分散他們解決事件本身的注意力。

更好的危機管理

危機管理不是一項新挑戰,像Jira、PagerDuty、VictorOps這樣的工具都在幫助組織管理和響應事件。 當開始自動化事件管理過程時,我們主要有兩個目標:

  1. 使用已有的、用戶熟悉的工具;降低事件處理所需的學習曲線。
  2. 編目、存儲並分析我們的事件數據,加速事件解決。

調度

Dispatch是一個管理事件元數據和資源的危機管理編排框架。 它使用組織中已經在使用的工具,為事件參與者提供一個全面的危機管理工具集,讓他們能夠專注於解決事件。

與我們的許多工具不同,Dispatch沒有緊密綁定到AWS,Dispatch根本不使用任何AWS API。 雖然Dispatch不使用AWS API,但它利用已經在組織中廣泛應用的多個API(例如Slack、GSuite、PagerDuty等)。 除了所有內置的集成外,Dispatch還提供了多個集成點,讓其能適應幾乎任何現有的環境。

儘管是作為幫助Netflix管理安全事件的工具而開發的,但Dispatch並不局限於安全用例。 它的核心目標是管理事件的整個生命週期,專注於讓個體參與進來,並為他們提供推動事件解決所需的上下文。

工作流

讓我們看一下,使用Dispatch時,事件指揮官的新工作流:

Netflix開源危機管理工具Dispatch,真香! 1

以下是新工作流的部分優點:

  • 事件指揮官不再需要處理資源或多數據流訪問。
  • 跨事件的交流是標準化的。
  • 事件參與者會根據事件類型、優先級和描述自動參與進來。
  • 事件可以跟踪,如果事件未能按時處理完成,會提醒所有者。
  • 所有事件數據都可以集中跟踪。
  • 為內部用戶和工具提供了共用的API。

我們想讓事件報告盡可能地順暢,讓用戶可以在危機發生時直接獲取所需的資源。

Netflix開源危機管理工具Dispatch,真香! 2

對事件指揮官來說,在不同的工具間切換時,保證數據的正確性和同步是一項低價值的活動。 相反,我們集中使用兩種通用工具來管理整個生命週期。 Slack用於管理事件元數據(例如,狀態、標題、描述、優先級等),而GoogleDoc和Google Drive用於管理數據本身。

Netflix開源危機管理工具Dispatch,真香! 3

當團隊需要查看許多事件時,Dispatch提供一個管理UI。 這個界面也是管理事件知識的地方,包括常見術語及其定義、個人、團隊和服務。 我們用管理UI管理事件知識,以便在未來的事件中使用。

Netflix開源危機管理工具Dispatch,真香! 4

架構

Dispatch使用了以下組件:

  • Python 3.8 with FastAPI(包括輔助程序包)
  • ViewJS用戶界面
  • Postgres

Dispatch帶有內置插件,允許你通過GSuite(Docs、Drive、Sheets、Calendar、Groups)、Jira、PagerDuty和Slack創建和管理資源。 而且,插件架構使得Dispatch可以與組織當前使用的任何工具進行集成。

Dispatch開源項目下載地址:

https://github.com/Netflix/dispatch

說明:

目前,Dispatch已經在Netflix開源網站上提供。 你可以藉助碼頭工人試用。 關於詳細的安裝步驟和配置方法,請查閱文檔。 如果您有任何建議,請隨時聯繫或提交pull請求。 希望能看到您為了使用Dispatch而新建的插件! 希望您發現Dispatch非常有用!

原文鏈接:

https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072