Weitere ähnliche Inhalte Ähnlich wie 『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜 (20) Mehr von KLab Inc. / Tech (20) Kürzlich hochgeladen (12) 『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜7. 7
ビルドパイプラインの重要性
企画 開発 テスト 展開
フィード
バック
より素早い改善サイクルを提供できるゲームがユーザーに評価されやすい
・ユーザーの要望をすぐにサービスに反映できる
・バグがあればすぐに治せる
・積極的な新機能開発ができる
バリューストリーム
✅ バリューストリーム高速化のためには
ビルドパイプラインの安定化、高速化が必要不可欠
15. 15
開発体制
参考 : CEDEC+KYUSHU 2018
「大規模モバイルオンラインゲームを支えるソフトウェアアーキテクチャ開発とその使用例」
クライアント サーバ
フロントエンド開発者の責任範囲 バックエンド開発者の責任範囲
クライアントの一定範囲について
バックエンド開発者が責任を持つ開発体制
72. 72
Jenkins master slave運用
AWS
東京オフィス
jnlp slave jnlp slave jnlp slave
福岡オフィス
jenkins master
✅ Jenkins自体はMacに置かず、
クラウド上のLinux(EC2)に載せる
✅ Mac上ではjnlp slaveを立ち上げ、
jenkins masterに接続する
(master-slave構成)
✅ Macは複数台用意し、地理的冗長化す
る
✅ Macが1台壊れたとしても、リリース
が止まらない
73. 73
ChatOpsと合わせた、ビルドのロードバランシング
jnlp slave 3
(3ビルド実行中)
jenkins master Slack bot
ビルド
jnlp slave 2
(1ビルド実行中)
jnlp slave 1
(4ビルド実行中)
最も実行中ビルドが
少ないslaveを指定して
ビルド ✅ ChatOpsと合わせると、Macをロードバ
ランスし、ビルドを効率化可能
✅ ビルド時にslack botからJenkinsの最も
ビルド数の少ないMacを取得し、ビルド
✅ 特定のMacにビルドが集中することな
く、全体的にビルドスピードが向上
JenkinsのAPIから
最も実行中ビルドが
少ないslaveを取得
slave2が最も
ビルドが少ない
74. 74
Jenkinsの手動設定をgit管理
Jenkins Configuration as code
(Jenkins本体の設定)
✅ Jenkins本体の設定をyamlで記述可能
✅ Jenkinsの設定をgitで管理可能。コード
レビューが可能
Jenkins Pipeline Script
(各ジョブの設定)
✅ Jenkinsの各ジョブの設定をgroovyライク
なスクリプトとして記述可能。シェル実行可能
✅ ビルドスクリプトをgithubから取得可能。
git管理、コードレビューできる
Jenkinsにスクリプトや設定を手書きして、
誰がいつ更新したかも管理できていない
Jenkinsのあらゆる手動設定を gitで管理し、
Jenkinsが壊れても再現性を確保