SRE G マネージャーの井上です。
本記事ではDevOpsに関する当社の取り組みをご紹介致します。
当社ではDORAのレポートをもとに 開発速度と信頼性の可視化して継続的に改善できる環境・仕組みを構築しております。
今回は開発速度の関してのお話です。
DORAのレポート?
DORA社がDevOpsに関して科学的なアプローチで研究したレポートです。 優秀な組織とそうではない組織について、何が違うのか、どういった取り組みをしているのかが記載されております。
DORA metrics ?
以下の4つとされています。
Aspect of software delivery Performance | Elite | High | Medium | Low |
---|---|---|---|---|
Deployment frequency | On-demand(multiple deploys per day) | Between once per day and once per week | Between once per week and once per month | Between once per month and once every six month |
Lead time for changes | Less than one day | Between one day and one week | Between one week and one month | Between one month and six month |
Time to restore service | Less than one hour | Less than one day | Less than one day | Between one week and one month |
Change failure rate | 0-15% | 0-15% | 0-15% | 46-60% |
今回は上2つを扱います。 Velocity(開発速度)の指標となっております。
ソース(2019年レポート)
留意事項
Scrumなどでよく出てくるVelocity (ストーリーポイント消化量)と同じワードですが、切り口が異なります。 本記事では、ScrumのVelocityの話は出てきません。
WHY / なぜやるのか
何のために可視化するのでしょうか。
サービス開発において、開発速度と信頼性は非常に重要な指標となっています。 それらはDevOpsにおいて注目されている指標です。
そういった情報が感覚値のままでは「開発速度は早いのか、遅いのか」わかりません。 分からないので、改善できたしてもより適切な評価は難しいと思います。
そこで先人の知恵を借りて可視化することで 開発チームが自律的に継続的に改善できることを期待しています。
HOW / どうやるのか
当社ではGitlab CEを利用した開発を行なっております。 CI/CD は gitlab-runner を利用しております。
そのため、開発速度を可視化するためのソースはGitlabから抽出しています。 SaaS版GitlabのUltimateではすでにDORA metricsが提供されておりますが、当社ではCE版のため自作致しました。
前提条件
当社の開発環境
- Gitlab
- CI/CD .. Gitlab runner
用語
- Merge Request (MR)
定義
可視化するに当たって当社で定義した内容は下記の通りです。
deployments frequency
- 1日あたりの本番環境への平均デプロイ回数
参照データ
- Gitlabで管理されているdeployments(デプロイすると作成されるレコード)を利用
lead time for changes
- MR がmaster branchにマージされてから、本番に反映されるまでの平均時間
参照データ
master branchにマージされた時刻
- master branchにコミットが作成された時刻
本番に反映された時刻
- Gitlabで管理されているdeploymentsのdeployが終わった時刻
アーキテクチャ
Result / 結果
当社ではサービス開発チームは複数ございます。 今回はその中の1チームをご紹介致します。
算出期間
計測開始 | 計測終了 |
---|---|
2018/11/29 | 2021/05/20 |
Deployments frequency
項目 | 値 | 単位 |
---|---|---|
データ数 | 2000+ | count |
平均本番反映回数/日(週5) | 3.1 | counts |
計算を単純化するために祝日は含まず。1週間5営業日で計算しています。 (祝日は非営業日です)
Lead time for changes
項目 | 値 | 単位 |
---|---|---|
平均 | 159 |
min(分) |
中央値 | 97 |
min(分) |
データ数 | 2000+ | counts |
MR本番反映数/日(週5) | 3.6 | counts |
ヒストグラム
分布
0-125(min) | 0-250(min) |
---|---|
73.62% | 93.98% |
250分以内に94%程度のMRが本番反映されていることがわかりました。
時系列(Y軸対数)
時間の経過とともに安定してきていることが分かります。
開発チームの立ち位置
冒頭に記載したDORA metricsのElite
Performers に属することが分かりました。
2019年のレポートによると、当社の開発チームは上位20%のElite
に属することがわかりました。
可視化してレポートの情報と比較することで開発速度がどのようなものか見えてきました。
最新状態が可視化されることで、ディスカッションしやすい状態になりました。 これまで数多の改善をしてきましたが、可視化したことで新たな改善項目が挙がっております。 私たちは現状に満足せずにさらなる開発速度向上を推進していきます。
最後に
私たちと一緒にスピード感のあるサービス開発をしませんか?
以上、SREからのご報告でした。