DORA メトリクス

ソフトウェアデリバリーのパフォーマンスを測定する 4 つの指標

DevOpsオブザーバビリティ

DORA メトリクスとは

DORA メトリクスは、Google の DORA (DevOps Research and Assessment) チームが定義した、ソフトウェアデリバリーのパフォーマンスを測定する 4 つの指標である。「Accelerate」(Nicole Forsgren 他) で発表され、高パフォーマンスチームの特徴を定量的に示す。

4 つの指標

指標 説明 Elite Low
デプロイ頻度 本番へのデプロイ回数 1 日複数回 月 1 回未満
リードタイム コミットから本番デプロイまでの時間 1 時間未満 6 ヶ月以上
変更失敗率 デプロイ後に障害が発生する割合 0〜15% 46〜60%
復旧時間 (MTTR) 障害発生から復旧までの時間 1 時間未満 6 ヶ月以上

スループットと安定性の両立

4 指標はスループット (デプロイ頻度、リードタイム) と安定性 (変更失敗率、復旧時間) に分類される。高パフォーマンスチームはこの両方が高い。「速くデプロイすると品質が下がる」は誤りで、CI/CD と自動テストにより両立できる。

改善のアプローチとしては、デプロイ頻度は CI/CD の自動化と小さなバッチサイズ、リードタイムはトランクベース開発とコードレビューの迅速化、変更失敗率は自動テストとカナリアリリース、復旧時間はロールバックの自動化とオブザーバビリティが有効だ。

DORA メトリクスの限界

DORA メトリクスはデリバリーのパフォーマンスを測定するが、ビジネス価値 (ユーザー満足度、売上) は測定しない。速くデプロイしても、ユーザーに価値を届けていなければ意味がない。

CloudWatch での計測

# デプロイ頻度: CodePipeline の実行回数
aws cloudwatch get-metric-statistics \
  --namespace AWS/CodePipeline \
  --metric-name PipelineExecutionSucceeded \
  --period 86400 --statistics Sum

# 変更リードタイム: コミットからデプロイまでの時間
# GitHub Actions のワークフロー実行時間で計測

GitHub Actions でのリードタイム計測

# コミットからデプロイまでの時間を記録
- name: Record lead time
  run: |
    COMMIT_TIME=$(git log -1 --format=%ct)
    DEPLOY_TIME=$(date +%s)
    LEAD_TIME=$((DEPLOY_TIME - COMMIT_TIME))
    echo "Lead time: ${LEAD_TIME} seconds"

体系的に学ぶなら関連書籍を参照してほしい。

関連用語