近年、開発(Development)と運用(Operation)の統合を図る「DevOps」が普及しています。
そのDevOpsにおいて、注目されているフレームワークが「Four Keys」です。DevOpsチームがFour Keysを取り入れることには、様々なメリットがあります。
今回は、DevOpsチームにとって重要なFour Keysとは何か、基本をまとめてお伝えします。Four Keysの導入に役立つDevOpsチームにとって有力なツールや導入のポイントも紹介するため、ぜひ参考にしてください。
- もくじ
1.Four Keysとは
Four Keysとは、Google社のDevOpsに関する調査チーム「DORA」が確立した、開発チームにおけるパフォーマンスを測るためのフレームワークです。
名前の通り4つの鍵となる指標があり、速度・安定性の観点からパフォーマンスを可視化します。
Four Keysは、継続的にリリースするWeb開発チームや、DevOpsを適用している開発チームに有効です。開発チームの速度・安定性を継続的にモニタリング・改善していくことで、リリースの高速化や信頼性の向上につながります。
2.Four Keysにおける4つの指標
Four Keysにおける指標は、次の4つです。これらを組み合わせることで、開発チームのパフォーマンスを定量的に評価することが可能となります。
速度の指標 | デプロイ頻度 |
---|---|
変更リードタイム | |
安定性の指標 | 変更障害率 |
サービス復元時間 |
2-1 デプロイ頻度
「デプロイ頻度」は、新たなソフトウェアを本番環境へデプロイ(展開)する頻度です。
デプロイ頻度が高いほど、新しい価値を素早くユーザーへ提供できていると評価できます。速度の指標であり、デプロイの品質(障害の有無など)は問いません。
たとえば、1か月間に3回のデプロイを行い、その内2回で障害が発生したとします。この場合、デプロイ頻度は「月3回」です。安定性は後述する別の指標で評価するため、ここでは障害が発生したデプロイも回数に含めて評価します。
2-2 変更リードタイム
「変更リードタイム」は、変更内容をコミットしてから本番環境に反映されるまでの所要時間です。つまり、開発の成果がどの程度の時間でユーザーへ届くかを意味します。変更リードタイムは速度の指標で、短いほど価値提供が迅速と評価できます。
変更リードタイムは、「コミット実施日時」と「デプロイ完了日時」から算出可能です。そのデプロイに含まれる最初のコミットを起点とし、デプロイが完了した時点までの時間を算出します。たとえば、1月23日の14:00に最初のコミットが行われ、同日18:30にデプロイが行われた場合、変更リードタイムは18:30 - 14:00 = 4時間30分となります。
ただし、変更の規模によって変更リードタイムは大きく変わるため、一つのデプロイだけでは評価できません。そのため、一定期間の各デプロイに対して変更リードタイムを算出し、中央値を求めることが重要です。
2-3 変更障害率
「変更障害率」は、本番環境へ反映した変更によって、どれだけ障害が発生したかの割合です。安定性の指標であり、低いほど適切な変更を安定して提供できていると評価できます。実装やテストの品質が低い場合、変更障害率は上がるでしょう。
変更障害率は、一定期間内における「デプロイ実施回数」と「変更によって発生した障害回数」から算出可能です。「加えた変更が原因となった障害」のみをカウントする点に注意しましょう。たとえば、1か月間に5回のデプロイを行い、変更によって2回の障害が発生したとします。この場合、変更障害率は2 / 5 × 100 = 40%です。
2-4 サービス復元時間
「サービス復元時間」は安定性の指標であり、本番環境で障害が発生してから回復するまでの所要時間です。サービス復元時間が短いほどユーザーへの影響を抑え、安定的にサービスを稼働できていると評価できます。
サービス復元時間は、障害(インシデント)の「発生日時」と「解決日時」から算出可能です。たとえば、1月23日の10:00に障害が発生し、同日12:00に解決した場合、サービス復元時間は12:00 - 10:00 = 2時間となります。
3.Four Keysをチーム内で取り入れるメリット
Web開発やDevOpsチームがFour Keysを取り入れることには、大きなメリットがあります。Four Keysをチーム内で取り入れるメリットは、主に次の3つです。
3-1 改善点を特定しやすい
Four Keysをチーム内で取り入れることで、改善点を特定しやすくなります。Four Keysを使えば、開発チームの速度や安定性を数値化することが可能です。
各指標の推移をグラフ化したり、他社のデータと比較したりすれば、ボトルネックを把握しやすくなるでしょう。なお、DORAチームの公式レポートでは各指標に関する具体的なベンチマークが紹介されています。こうしたデータから現在地を把握することも有効です。
3-2 意思決定に活用できる
Four Keysは、チームの意思決定にも活用できます。各指標にもとづいた客観的なデータがあるため、合理的な意思決定が可能です。
たとえば、変更リードタイムが長いにもかかわらず変更障害率が高い場合、「手動プロセスが多く作業品質が低い」といった原因が考えられます。この場合、プロセスの自動化によって改善が期待できるため、テスト自動化ツールの導入といった施策を検討できます。
データに沿った意思決定により、効果的な優先順位付けやリソース配分がしやすくなるでしょう。
3-3 モチベーション向上につながる
Four Keysを取り入れることで、モチベーション向上につながります。速度や安定性が数値化され、チームメンバーが成果を実感しやすくなるためです。
各指標の具体的な数値目標を定めれば、チーム全体で目標達成に向けて努力する意識が生まれるでしょう。結果としてチームの士気が上がり、生産性の向上にもつながります。
4.Four Keysの導入に役立つツール
Four Keysをチーム内で取り入れる際には、ツールの導入がおすすめです。ここでは、Four Keysの導入に役立つ2つのツールを紹介します。
4-1 dora-team/fourkeys
「dora-team/fourkeys」は、GitHub上で公開されているDORAチームの公式ツールです。
GitHub上のリポジトリからFour Keysに関するデータ(コミット実施日時など)を自動で収集し、各指標を算出・可視化してくれます。
データ収集や可視化のための事前設定は必要ですが、Four Keysの活用を無料で自動化できます。GitHubを活用しているチームは積極的に活用してみましょう。
4-2 Findy Team+
「Findy Team+」は、データ駆動型の開発を支援する多機能ツールです。GitHubなどと連携してデータを収集・可視化したり、他社データと比較分析したりできます。
Four Keysを可視化する機能も搭載されており、Four Keysの導入も容易に可能です。
有料のツールですが、連携できるツールの豊富さや、機能の幅広さなどの強みがあります。無料トライアルを活用して試用してみると良いでしょう。
5.Four Keysを導入する際のポイント
Four Keysの導入を開発チームの成果につなげるためには、ポイントを押さえることが重要です。ここでは、Four Keysを導入する際のポイント2つについて解説します。
5-1 継続的にモニタリングする
Four Keysの各指標は、継続的にモニタリングしていきましょう。継続的なモニタリングによって、危険な兆候や未知の問題に気づきやすくなります。
たとえば、障害発生率がある時点から急激に上昇している場合、特定の変更や環境条件の変化が影響している疑いがあります。
定期的にFour Keysの指標を算出・可視化することで、こうした問題点や改善点を把握しましょう。
5-2 原因をしっかり分析する
Four Keysの各指標から問題点が判明した場合、その原因もしっかり分析することが大切です。
応急処置的な対応を取るだけでは一時的な改善しか期待できず、根本的な解決にはつながりません。たとえば、変更障害率が高いという課題に対して、デプロイをあまり実施しないようにする、という対策では障害から逃げているだけです。
「なぜ変更障害率が高いのか」を深く掘り下げることで、より根本的な問題解決につながる改善策を検討できます。
まとめ
Four Keysとは、Google社のDORAチームが確立した、開発チームにおけるパフォーマンスを測るためのフレームワークです。
「デプロイ頻度」「変更リードタイム」「変更障害率」「サービス復元時間」の4指標から、開発チームの速度や安定性を可視化できます。
Four Keysをチーム内で取り入れる際には、継続的なモニタリングや原因の深掘りが重要です。
より効率的に導入したい場合は、ツールを活用するのも良いでしょう。Four Keysを取り入れる際には、本記事を参考に、取り組みを進めてみてください。