DORA、SRE等重要軟體工程指標 - Chaordic

banq發表於2022-11-29

“DORA”指標來自 DevOps Research Assessment,透過 Nicole Forsgren、Jez Humble 和 Gene Kim 的研究得到推廣,最終成為強烈推薦的書籍《Accelerate: The Science of Lean Software and DevOps: Building and Scaling》高效能技術組織”
四個關鍵指標依次是:
  • 部署頻率:組織釋出到生產環境的頻率。
  • Lead-Time For Change:從提交到生產所需的時間。
  • 更改失敗率:在生產中導致失敗或事件的部署百分比。
  • 恢復服務的時間:組織從生產故障中恢復需要多長時間。

為什麼我們認為這些指標很重要?很簡單:正確測量,它們非常好地捕獲服務的可靠性,以及部署中的摩擦級別。最後,部署頻率是團隊速度的一個相當準確的代表。

SRE 指標

Google 免費提供的 SRE 書籍中詳細介紹了 SRE 指標。同樣,要獲得深入的指南,請閱讀它們。
我們關心 SRE 指標的原因是,它們再次捕獲系統的可靠性,以及保持系統執行所需的反應性“修復”工作(“辛勞”)的數量。此外,這些指標提供了一種機制來解決特性與可靠性之間的衝突,並解決許多組織中由於先前失敗的釋出而經常出現的釋出猶豫。
服務水平指標、服務水平目標、服務水平協議
SRE 指標有三個初始概念,它們不是指標,但值得理解:

  • 服務水平指標(“SLI”)是頂級概念,它們只是可以指示服務質量的事物,例如延遲或錯誤率/可用性。
  • 就我們而言,服務水平目標(“SLO”)是關鍵指標:SLO 實際上是我們目標的 SLI 水平。例如,如果我們檢視可用性 SLI,則可用性為 99%。
  • 服務水平協議(“SLA”):SLA 是對 SLO 的合同承諾,通常涉及技術、法律和商業方面的所有三個方面。

重要的是首先了解 SLI 和 SLO 之間的關係。

除了DORA-和SRE指標外,我們還有一些其他指標值得關注:

流動時間
流程時間類似於DORA的 "Lead-Time For Change",不同的是LTFC是從承諾的變更到生產的計算,而流程時間是從接受的工作專案(計劃的,即將開始工作的,但沒有開始)到生產。因此,流動時間可以給衡量新功能從被接受和完善,到進入生產所需的時間提供更多的細微差別。

流量分佈
流程分佈,再次為DORA的變更失敗率提供了更多的細微差別:流程分佈,簡單地說,計算了工作在錯誤、功能、可操作性改進和任何其他類別的工作之間的分佈。這是一個有用的指標,可以看出是否有足夠的精力用於測試和可靠性,系統是否有足夠的可操作性。

公關準備時間和返工
我們會在這裡麵包括兩個指標。

  • 公關準備時間(從開放到合併/關閉的時間)
  • PR返工(審查後做出修改的PR數量)

除非有必要,我們通常建議不要採用純粹基於拉動請求的工作流程。為什麼?

因為拉動請求來得太晚了:改變的成本、返工的成本、中斷的成本,以及作者和審查者的上下文切換,都使基於拉動請求的工作流程變得昂貴。

前期的一點討論和設計,以及最後的現場1對1的審查,只需要幾分鐘,有時可以節省幾個小時和幾天圍繞拉動請求的來回奔波。

也就是說,即使採用這種方法,也很有可能在合併到主站之前有名義上的PR。在任何情況下,測量拉動請求的準備時間(從開啟PR到合併的時間)是一個開始,但並不能揭示圍繞審查的健康狀況的全部情況。

我們將使用PR的前置時間作為頂級指標,但也要檢查在提出PR後需要多少輪評論和提交,以進一步深入瞭解變化流的健康狀況。

結論
總結一下我們在這篇文章的介紹中寫的內容:
如下這樣做:

  • 使用指標來確定團隊中需要改進的領域。
  • 使用指標作為潛在問題的預警系統。
  • 將團隊與自身進行比較。

不要如下這樣做:
  • 嘗試將指標分解到單個開發人員級別!
  • 將團隊相互比較時要小心,這通常是蘋果和橘子。
  • 根據指標對團隊或個人進行排名。

相關文章