Categories
程式開發

AWS發布運維儀錶盤的最佳實踐指南


最近,AWS“在亞馬孫構建者庫“(Amazon Builders’ Library)中添加了構建儀錶盤的最佳實踐指南“。儀錶盤用於實現運維的可見性。文檔中詳細闡明了Amazon現有的各類儀錶盤,並探討了創建儀錶盤的最佳設計實踐。

AWS首席工程師約翰·奧謝“負責撰寫這些構建者庫中的新添文檔。O’Shea指出,AWS的服務狀態告知機制是通過儀錶盤實現的,儀錶盤向用戶提供系統運行視圖。但O’Shea也闡明,“我們發現只要運維過程需要人工檢查儀錶盤,那麼無論多麼頻繁地檢查儀錶盤狀態,也會由於人為錯誤而導致失敗”。為解決這個問題,他們專注於創建一種自動化的告警機制,以評估系統運行所產生的最重要的數據。在某些情況下,報警會觸發自動修復工作流。

Amazon還對隨時待命(oncall)事件使用了儀錶盤。運維人員可以使用儀錶盤定位並隔離問題。 O’Shea給出的一個主要應用場景,就是在每週例行運維審核會議上使用。此類會議的與會者包括一些企業高層、高級管理人員和高級工程師。會議中使用一種稱為“幸運轉盤”(命運之輪“)的工具,隨機選擇某個團隊的儀錶盤,基於此討論用戶體驗和SLO問題。

為設計一致且實用的儀錶盤,Amazon創建了一系列需遵循的通用設計原則,並給出了效果測定方式,以改進和推進這些原則。測定方法之一,就是新的運維人員是否能快速地理解和使用儀錶盤。這種度量指標驅動的方法完全符合最近卡米爾·弗尼爾(Camille Fournier)“在接受InfoQ採訪“中提出的技術和策略。在這次採訪中,她介紹了Amazon內部平台團隊是如何交付更有效的產品。

原則之一是應從最終用戶預期的角度回推工作,確保儀錶盤符合用戶的需求。 O’Shea指出,“對儀錶盤創建者而言,構建一個自己完全理解的儀錶盤是非常容易的。但這樣的儀錶盤可能對最終用戶是毫無價值的”。他們發現,用戶傾向於重點解讀最新渲染出的圖表,而傳統設計理念是將最重要的圖表置於儀錶盤的最頂部。對於Web Service,通常最重要的是可用性的聚合圖或匯總圖,以及端到端延遲的百分比圖表。

其他設計原則包括:

確保時區的一致性,並顯示在儀錶盤上。在圖表的佈局上,需遷就預期的最小顯示分辨率;確保提供可調整採集度量指標週期和時間間隔的功能;在圖上標註報警的閾值和目標值。報警狀態、簡單數值和時序圖組件可用於適當位置。

O’Shea還說明了Amazon在用的各類儀錶盤,其中最重要並廣為使用的是用戶體驗儀錶盤。此類儀錶盤設計適用於各種利益相關者的需求,從服務運維者到管理人員。儀錶盤展示服務的整體健康狀態,以及多種當前進度情況的度量指標。所展示的數據可回答“受影響的客戶數量”、“受影響最大的客戶”等問題。

AWS發布運維儀錶盤的最佳實踐指南 1

各類儀錶盤是如何為不同系統層級提供視圖(圖片來源:Amazon官方網站“)

在系統和服務層面也應創建儀錶盤,提供多種系統和服務運行狀態視圖,用於審計跨各區域的服務。系統層儀錶盤上應包含足夠的信息,支持查看系統任一端點的運行狀態,服務層儀錶盤應深入到所有的單一服務實例,為精准定位更深層次的問題提供視圖。

指南最後探討了儀錶盤的維護問題。 O’Shea寫道:

儀錶盤的維護和更新,是集成於我們的開發過程中的。在完成變更前的代碼審核期間,我們的開發人員會問,“是否有需要我們更新的儀錶盤?”。因此我們授權開發人員,在部署變更前更新儀錶盤。指南意在將儀錶盤的創建和維護潛移默化到文化中。正如近期Tyler Treat在接受InfoQ採訪時分享的,“文化是許多工作的出發點。我們必須提升可觀察性的文化。如果團隊並未將儀錶盤展示作為系統的首要關注點,那麼構建其它工具的意義也不大。”

此外,指南鼓勵團隊在事後剖析(post-mortem)中討論是否需要改進儀錶盤和自動化報警,以防患於未然,或是更快地發現問題。儀錶盤的更改應使用與服務部署同樣的工具,包括作為核心實踐的版本控制和IaaS。

最佳實踐指南的全文“已加入到亞馬孫構建者庫“中。資料庫中包含了一系列的文檔,闡述並探討了Amazon構建、維護和操作軟件的機制。

原文鏈接:AWS發布了操作儀表板最佳實踐指南