貝萊德公司的現場可靠性工程

banq發表於2022-05-05

貝萊德是全球最大的資產管理公司,管理的資產超過 10 萬億美元。
除了作為資產管理公司,貝萊德還是一家科技公司。他們向其他資產管理公司、銀行、保險公司等出售各種軟體。
他們最大的產品是金融行業最受歡迎的投資管理軟體平臺Aladdin 阿拉丁。資產管理公司(銀行、養老基金、對沖基金等)使用 Aladdin 跟蹤損益、管理投資組合風險、進行交易、分析歷史資料等。
2013 年,Aladdin 平臺被用於管理全球 225 萬億美元金融資產中超過 7% 的資產(自那時以來它還在增長),因此該平臺的任何問題都可能對全球金融體系產生重大影響。
貝萊德的站點可靠性工程團隊建立了一個強大的遙測平臺來監督阿拉丁的健康、效能和可靠性。
Sudipan Mishra 是 BlackRock 的 SRE 團隊的一名工程師,他寫了一篇關於遙測平臺架構的精彩部落格文章

摘要如下:

1、遙測平臺的架構
Aladdin 的所有各種元件都會生成大量的日誌、資料等。
Telemetry 平臺負責彙總所有這些報告,顯示它們,如果其中一項服務無法執行,則向 BlackRock 的各個 Aladdin 開發人員傳送警報。

  • Aladdin 平臺中涉及的所有各種應用程式、資料庫、基礎設施和管道,所有這些報告指標然後由遙測平臺的收集器讀取。
  • 這些指標從收集器進入目錄伺服器,這是一個內部開發的服務,用於管理應該對哪些指標進行編目。
  • 某些指標可能過於嘈雜/不必要,因此工程師可以將它們從遙測目錄 UI 中刪除。
  • 然後將傳遞的指標從收集器傳送到 Kafka,並最終傳送到Prometheus。Prometheus 是一個開源系統監控和警報工具包,最初是在 SoundCloud 開發的。 
  • 從 Prometheus,指標轉到 InfluxDB、AlertManager 和 Grafana。
  • InfluxDB 是一個開源時間序列資料庫,BlackRock 使用它來長期儲存所有遙測指標。
  • AlertManager 是 Prometheus 工具包中的一個工具,可根據指標向貝萊德工程師觸發警報。
  • Grafana 是另一個 Prometheus 工具,可讓工程師生成儀表板和圖表以視覺化遙測指標。


2、警報策略
Prometheus的AlertManager將根據遙測資料向從事Aladdin工作的各個開發人員傳送警報。如果有任何事件對他們的服務產生影響,應該儘快提醒一個團隊。

然而,如果SRE團隊不注意實施警報的方式,那麼就會造成警報疲勞等情況。

SRE團隊對他們的警報有4個核心原則

  1. 可操作性 - 每個警報應該清楚地定義什麼是壞的或即將壞的。警報還應該提出採取的糾正措施。
  2. 有效 - 假陽性(在沒有事件的情況下發出警報)和假陰性(在有問題的情況下沒有觸發警報)都必須被最小化/消除。否則,它們會導致對警報系統的不信任。
  3. 有影響 - 開發人員不應該因為瑣碎的/不重要的事情而收到警報。否則,開發人員會產生警報疲勞,並意外地忽略了重要的警報。
  4. 透明性--當開發者進入新的應用程式時,他們應該知道他們將得到哪些警報。他們也應該知道他們通常會在該應用中看到多少個警報。


貝萊德評估了不同型別的警報系統以滿足所有這些原則。

你可以在谷歌的SRE書中讀到一些選項。這本書是免費的,如果你對SRE感興趣,絕對是一本必讀的書。

貝萊德的SRE團隊決定採用多視窗、多燃燒率的警報策略。這是Google SRE工作簿中Google的警報型別列表中的第6位。

你可以看到有多少誤差是可以允許的,並圍繞這個問題設定各種限制。當你注意到遙測中的錯誤時,你就針對允許的錯誤限制進行 "燃燒"。一旦你超過了允許的限度(如果仍然有錯誤出現),你就發出警報。

貝萊德發現這個策略的假陽性率低,假陰性率低,檢測時間快,復位時間非常短。

為了測試他們的警報策略,他們寫了一個指令碼,讓開發人員從他們的Prometheus例項中提取特定時間和日期範圍的指標。他們可以利用這些指標,然後回溯測試他們的警報策略,看看他們會得到多少警報,以及是否會有任何假陰性或假陽性。

相關文章