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"
体系的に学ぶなら関連書籍を参照してほしい。