「GDM vol.40 エンジニア向け勉強会 Jenkinsの構成・運用パターン」に行ってきました
GDMとはGame Developers Meetingの略でDeNA主催のゲームクリエイター向け座談会。今回は内容がJenkinsということで自分の会社でも使えるTipsがないかと思い参加してみました。それぞれのセッションを聞いて自分なりの感想や明日からやりたいことをまとめたいと思います。
ちなみに僕自身参加するのは2回目で前回はブロックチェーン勉強会だったのですが今回の方が参加人数が100人くらいいて皆Jenkins大好きだなと思いました!
gamedevelopersmeeting.peatix.com
DeNAでの取り組み
詳しくは資料を読んでもらった方がいいかと思いますがJenkins運用において起こりがちな問題をいくつかの手法を用いて解決したものとなっています。
- Jenkinsの構築手順って何も知らない人だと厳しかったりするがmaster/slaveをTerraformやAnsibleを用いてセットアップを自動化している。
- ジョブの作成も知らない人だと厳しいがサンプルを用意したりアプリ配布サーバへのアップロード部分などは共通機能として用意するなどしてサポート&車輪の再発明を防いでいる
- Ansibleを用いても失敗するケースがあるので失敗検知のためにその部分も検証することで問題を早期に発見している
特に最後のAnsibleの失敗検知等はちゃんとやっているなというイメージを持ちました。
SEGAでの取り組み
詳しくは資料を読んでもらった方がいいかと思いますがJenkinsの構成というよりチームや役割の構成、求められるスキルといったものに主点が置かれていました。SEGAの社内でのチーム構成的にはプロジェクトの規模が小、中、大で表せるとすると
- 小はメインプログラマがjenkinsを運用
- 中は加えてツールエンジニアやjenkinsエンジニアがjenkinsを運用
- 大は加えてQAエンジニアやパイプラインエンジニアがjenkinsを運用
と運用する人が増えるといった形。
またこれらを全て一人で行おうと思うとFullStackJenkinsAdministratorである必要があると。ちなみにこの要件見た所かなりしんどいなと思いました。とはいえ一人でカバーするケースは少ないということで分担していきましょうといった感じでした。
この発表だけ聞いたところあんまり勉強にはならないですがアーケードからモバイル、コンソールと様々な事例がありサポートも大変だろうなという感想を抱きました。
ディスカッション
質問があったものを答えていく形。印象に残ったのは
- フリースタイルジョブの考え方
- どの程度の行数のコードをWebUIで許容するか
- ジョブが失敗した場合にローカルでのテスト方法はどうするか
ローカルでのテスト方法について自分のローカルマシンをslaveにしてその上でジョブを走らせる。ジョブをコピーして修正して回すなどがありました。jenkinsエンジニア達は日々ジョブをコピーしてテストしているらしいです。確かに僕もコピーして検証した事はあるので納得。DeNAさんはここらへんの検証環境をシステマチックにやりたいという話もしていました。
余談、懇親会の感想
寿司とビールやおつまみが結構な数用意されていてさすがDeNAさんだなと思いました。今回勉強会に来た人が普段どのようなJenkinsの運用をしているか聞いて回ってみたかったんですがゲーム業界勉強会仲間?みたいなコミュニティがいくつか出来上がっていて特に今回の勉強会とは関係ない話で盛り上がっていて全然聞けませんでした。
ただ、僕自身も前職の同僚や上司がいたりで近況等で盛り上がってしまったので懇親会というのは大半はそのようなものなのかも。
ちなみにラーメンスイーツがあって食べてはいないんですが味はモンブランとのこと。
まとめ、明日からやろうと思うこと
- JnekinsのセットアップするのにAnsible使うというのは今の会社のチームでもやってたりするのでそこの部分はより推進していく
- 共通化できるところはしていく。ちなみに最近はプロジェクトまたいで共通のジョブ使ってたりするのでここらへんも一部はできてたりするのでここもより推進していく
他者の事例聞けたことやAnsibleの失敗検知等でまだ改善の余地あるなと感じれた事は良かったです