【レポート】Splunkを活用したJenkinsの運用改善テクニック #CEDEC2023 #classmethod_game

Jenkinsにログ分析基盤であるSplunkを導入して、さまざまな課題を解決したセッションでした。
2023.08.26

こんにちは。ここではCEDEC 2023で講演された「Splunkを活用したJenkinsの運用改善テクニック」について重要と思った解説を中心にまとめてみました。

セッションの概要

Splunkを活用したJenkinsの運用改善テクニック

ゲームの規模が大規模化し、さらに大規模化した開発環境をクラウド活用によるスケーラブルに開発できるように整備を進めました。 それに伴い、インフラ規模や管理するマシン数も増加し、Jenkinsの運用は経験則に基づいた職人技的なスキルではカバーしきれなくなっています。 統合ログ分析サービス「Splunk」を導入することで、分析業務の属人性を排除し、Jenkinsの運用における分析時間を大幅に改善することができました。 本セッションでは、弊社の事例をもとにSplunkを活用したJenkinsの運用改善についての知見をご紹介します。

内容について

今回のセッションの発表について、印象深いところを中心に取り上げてみました。

Jenkinsの活用について

開発においてJenkinsを導入しています。主な利用目的は、ビルド、静的解析、テスト、そしてデプロイです。

Jenkinsを採用した背景として、SaaSのCI/CDツールでの要件を満たすことが難しく、特に高スペックのマシンが求められることや、開発機がクラウドに非対応であったという事情が挙げられています。また、gitやPerforceを含む複数のVCSとの連携能力も、その選定理由として強調されていました。

日々実行されるジョブ

一つのタイトルにつき50~80ジョブが存在し、全体では約200ジョブを抱えています。また、ビルドに関しては、日常的に2,500~3,000回のビルドが行われています。開発の規模や頻度がよくわかります。

抱えている課題

開発中に直面した課題について、具体的には、ジョブの実行時間や頻度の把握が難しい点、ノードの利用状況の確認が困難であること、そしてログの検索効率が低いという点が挙げられています。これらの課題は、開発プロセスの効率化や品質向上に影響を与える重要な要因となります。

Splunkを選択した基準

そこでSplunkというデータ分析基盤に関する情報が紹介されました。他のデータ分析ツールも検討しましたが、以下の理由からSplunkを採用したとのことです。まず、環境構築が容易であり、ログ収集の設定もシンプルに行える点が挙げられます。また、オンプレミス版を提供しており、ログの保存期間を自社でコントロール可能であるという利点も有しています。これらの特徴は、データ管理の柔軟性と効率性を高める要素として評価されました。

Splunkを活用している様子

さまざまなダッシュボードを作成し、実行回数、成功数などが誰でもみられる環境を作成しました。

課題に対するメリット 1

開発や運用の過程でジョブの実行時間や頻度の把握に課題を感じていました。しかし、新たな手法やツールの導入後に、ジョブの実行時間を時系列で速やかに確認できるようになりました。さらに、実行時間の妥当性を定量的に評価し、その改善効果を容易に検証できるようになりました。これらの成果は、業務の効率化や品質向上に大きく貢献しています。

課題に対するメリット 2

ノードの利用状況の把握に課題を持っていました。しかし、新しい方法やツールの導入後に、利用頻度の低いノードを特定することができるようになり、これにより月額200万円の経費削減が実現されました。また、各ノードがどのジョブで利用されているかの確認が容易になり、その結果、ノードのメンテナンス時の影響範囲の調査もスムーズに進められるようになりました。これらの改善は、業務の効率化やコスト削減に大きく寄与しています。

課題に対するメリット 3

ログ検索の効率の悪さが課題とされていました。しかし、新しい方法やツールの導入後、実行ログが自動的に収集され、簡単に検索できるように改善されました。特に、不具合の原因特定において、いつから発生しているのか、どの環境で問題が起こっているのか、そして再発していないかという点を迅速に確認できるようになりました。これにより、迅速な問題解決と業務の効率化が実現されています。

その他のメリット

導入した新しいツールや方法の効果は、単なるログ検索の効率化だけでなく、多岐にわたるメリットをもたらしています。具体的には、パイプラインの品質が向上しました。これは、分析や判断の時間短縮により、品質改善活動に注力する時間が増えたためです。さらに、サーバーの保守運用において属人性が低減し、分析手順が一般化され、より定量的な判断が可能になりました。また、サーバトラブルの調査にかかるコストも低下し、サーバログインなしでの調査が可能になるなど、運用面での効率化が実現されています。

まとめ・感想

ゲーム開発の現場で日常的に利用されているJenkinsですが、ログ分析などの専門ツールを組み合わせることで、その効果がさらに高まることを実感しました。このようにデータを多角的に分析するアプローチをとることで、開発の効率や品質を向上させる手段を模索することができます。このような分析やツールの組み合わせを通して、今後も更なる開発効率の向上方法を探求していきたいと考えています。