Skip to main content

閱讀筆記: 「Meta 如何打造一個供多團隊使用的 SLI/SLO 設定與觀測平台」

· 3 min read

標題: 「Meta 如何打造一個供多團隊使用的 SLI/SLO 設定與觀測平台」 類別: usecase 連結: https://engineering.fb.com/2021/12/13/production-engineering/slick/

本篇文章是 Meta 公司的技術分享文,探討內部如何搭建一個觀測 SLO 的大平台,讓不同的應用程式團隊都可以更方便地去觀察是否有達到其設定的 SLO。

文章內容有點長,這邊稍微節錄一些重點,非常推薦大家花點時間看完全文

  1. Meta 的產品多,同時規模又大,背後又有數千的工程師不停地部署新版本,因此維運團隊必須要有一個好的方式來維運這些服務,包含預期狀態,當前狀態以及有能力去分析問題。
  2. 團隊決定從 SLI/SLO 為基準點去設定預期狀態以及量測所有服務的效能。
  3. 團隊決定打造一個名為 SLICK 的系統來視覺化與控管所有服務的 SLI/SLO
  4. 沒有 SLICK 以前,每個服務的團隊都有各自的處理與儲存方式,所以都要花費很多時間去研究每個開發團隊的文件與用法,整體工作效率會下降
  5. 過去的系統也沒有維護超過一週以上的資料,所以後續團隊也沒有辦法針對這些部分去分析。

透過 SLICK 可以讓整個 Meta 達到

  1. 每個服務都可以用一個統一的方式去定義 SLO
  2. 可以維持資料長達兩年且資料的細度達到每分鐘等級
  3. 有個標準化的視覺方式來呈現 SLI/SLO
  4. 定期地將當前服務狀態發送到內部群組,讓團隊可以用這些報告來檢視服務的穩定度並進行改善

文章後半部分包含

  1. SLICK 用法介紹,包含 UI 的呈現樣子,定期的報告內容以及相關的 CLI 介紹
  2. SLICK 的架構,團隊是如何設計 SLICK 這個服務,用到哪些元件以及這些元件之間個溝通流向
  3. 兩個使用 SLICK 來改善穩定度的案例,這兩個案例都有簡單的去識別化,主要是介紹這些團隊發生什麼問題,如何透過 SLICK 來改善以及改善後的效能。