CI/CDのボトルネックを把握できていますか?BigQueryでビルド情報ダッシュボードを構築した話

Track C 2021/09/03 13:05-13:45

難易度 初級者
実行フェーズ Dev/QA(開発環境)
想定受講者 developer - システム開発
app-developer - アプリケーション開発
operator/sys-admin - 運用管理/システム管理

開発人数が多く、規模の大きいプロダクトでは最終的な成果物をビルドするだけで1時間以上かかってしまうことも珍しくありません。ですが最初からそれほど時間がかかっていたわけではなく、時間とともに巨大化するコードベース、追加されたステップなどによりいつの間にかどこかの処理がボトルネックとなっていることが多いでしょう。

CIサービスの多くは成功/失敗の情報、全体としてのビルド時間の情報は見やすく提供していますが、各ステップの時間やステップのエラー率などの細かい粒度の情報を時系列で確認する機能までは提供されていないことが多いです。そのため、ボトルネック箇所を特定するためには過去の生ビルドログを自分の目で確認するコストが高い作業が必要でした。

そこで、Jenkins, CircleCI, Github Actions, BitiseのビルドデータをAPI経由で取得してBigQueryに蓄積するCIAnalyzerというツールを開発しました。さらにDataPortalでダッシュボードを作成してデータを可視化したことで、例えば以下のような問題の解決に役立ちました。

- 半年、1年前と比較してボトルネックとなっているステップの発見
- 不規則に発生する厄介なビルドエラーがいつから起きているのかの特定

これ以外にも実際の業務で問題の解決に役立った事例をいくつか紹介しながら、CI/CDのデータを長期に蓄積して分析することの重要性をお伝えしたいと思います。

参考:
https://github.com/Kesin11/CIAnalyzer

Kenta Kase
株式会社ディー・エヌ・エー
DevOpsエンジニア

2014年に株式会社ディー・エヌ・エーに新卒入社し3年ほどソーシャルゲームのサーバーサイド開発を担当。2017年よりSoftware Engineer in Test(SWET)グループに異動し、テスト自動化やCI/CDの調査やサポートを行う。最近は主にゲーム開発におけるCI/CDのサポートを担当。