コロプラゲームバックエンド共通基盤 運用・開発体制の紹介
by
COLOPL Inc.
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
コロプラゲームバックエンド 共通基盤 運用・開発体制の紹介 松野岳記
Slide 2
Slide 2 text
2 ● 略歴 ○ SIerで出張生活 ○ Web系 ○ 2018 コロプラ入社 ■ 白猫プロジェクトSREチーム ■ ドラゴンクエストウォーク SREチーム ■ サーバー基盤マネジャー兼SRE 氏名 : 部署名 : 松野 岳記 技術基盤本部 第3バックエンドエンジニア部 サーバー基盤グループ 自己紹介
Slide 3
Slide 3 text
目次 1. コロプラバックエンド組織体制の紹介 2. 社内共通基盤ライブラリ開発活動の紹介 3
Slide 4
Slide 4 text
コロプラバックエンド組織体制の紹介 4
Slide 5
Slide 5 text
5 バックエンド組織の構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル サーバー基盤グループ ※枠の大きさは実際の組織と関係ありません🙇
Slide 6
Slide 6 text
6 ゲームの共通基盤組織の役割? ● ゲームってユニークでありたいものなのでは? ● コロプラのVision → "新しい体験" を届ける ● 共通基盤組織のやるべきことは? ??
Slide 7
Slide 7 text
7 ゲームの共通基盤組織の役割 ● ゲームってユニークでありたいものなのでは? ● コロプラのVision → "新しい体験" を届ける ● ゲームタイトルは常に新しい体験に挑戦 ● 共通基盤はゲーム開発の土台 ○ 性能面や運用ナレッジの会社としての蓄積 ■ 成功の再現性 ■ 技術の開拓
Slide 8
Slide 8 text
8 サーバー基盤グループの構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル サーバー基盤グループ ※枠の大きさは実際の組織と関係ありません🙇
Slide 9
Slide 9 text
9 サーバー基盤グループの構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル ※枠の大きさは実際の組織と関係ありません🙇 LCEチーム SREチーム PEチーム RTPEチーム 【運用サイド】 普通にはなかなか経験できない運用ケースの知識 ● LCE (Launch Coordination Engineer) ○ ローンチ関連の性能とプロセスの品質 ● SRE (Site Reliability Engineer) ○ 長期運用の性能とプロセスの品質
Slide 10
Slide 10 text
10 サーバー基盤グループの構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル ※枠の大きさは実際の組織と関係ありません🙇 LCEチーム SREチーム PEチーム RTPEチーム 【開発サイド】 ● PE (Platform Engineer) ○ APIサーバーを中心とした開発技術のリード ● RTPE (Real-Time Platform Engineer) ○ リアルタイムサーバーを中心とした開発技術のリード
Slide 11
Slide 11 text
11 開発組織体制のイメージ PE・RTPE LCE・SRE ゲームエンジニア 社内基盤ライブラリ ゲームサーバー クラウド・オープン技術
Slide 12
Slide 12 text
社内共通基盤ライブラリ開発活動の紹介 12
Slide 13
Slide 13 text
13 PEチーム ● Platform Engineer チーム ○ 主にコロプラAPIサーバー開発の土台を支えています ● 主な活動領域 ○ Google Cloudやミドルウェアの新機能の検証と追従 ○ サーバーコンテナのエンハンス・チューニング ○ サーバーフレームワークのエンハンス ○ サーバー開発用CIなどの環境整備
Slide 14
Slide 14 text
14 PEチーム ● Platform Engineer チーム ○ 主にコロプラAPIサーバー開発の土台を支えています ● 主な活動領域 ○ Google Cloudやミドルウェアの新機能の検証と追従 ○ サーバーコンテナのエンハンス・チューニング ○ サーバーフレームワークのエンハンス ○ サーバー開発用CIなどの環境整備 今回はここの紹介をします
Slide 15
Slide 15 text
15 APIサーバーの社内基盤ライブラリ ● 開発言語 / フレームワーク ○ PHP / Laravel ● ライブラリ (一部) ○ laravel-extension ○ laravel-skeleton ○ laravel-spanner
Slide 16
Slide 16 text
16 laravel-extension ● 役割 ○ ゲームサーバーとして低レイヤーを効果的に利用するための拡張 ● 性質 ○ 低レイヤーを効果的に使うプラクティスの実装 ■ 外部コンポーネント利用時のハンドリング ■ データアクセスコードの自動生成 ■ etc. ○ ベース技術へのアンテナが必要
Slide 17
Slide 17 text
17 laravel-skeleton ● 役割 ○ どのゲームでも必要になる機能のテンプレート実装 ● 性質 ○ 共通機能の実装 ■ ユーザー認証 ■ 課金処理 ■ 運用サポートツール画面 ○ ゲームタイトル運用の共通ナレッジの蓄積
Slide 18
Slide 18 text
18 laravel-spanner ● 役割 ○ Google 公式の PHP 用 Cloud Spanner SDK を Laravel の DB Manger フレームワークとして利用するアダプタ ● 性質 ○ Google の Cloud Spanner 利用のガイダンスを吸収して Laravel のモデルで取り扱えるように提供 ○ Cloud Spanner と SDK の更新に追従 ○ OSSとして公開運用 ■ https://github.com/colopl/laravel-spanner
Slide 19
Slide 19 text
19 PE とゲームエンジニアとのコミュニケーション ● コア開発チームがあることの懸念 ○ 本番ユースケースを知らずに技術の押し付けになりたくない ○ 技術に触れる機会の不平等 ■ ゲームタイトル側アサインでもベース技術と関わりたい (関わって欲しい) ○ 物量 ■ やること多い ● 社内オープン開発 ○ 共通 Git でゲームエンジニアからも Issue や Merge Request を常時受付 ○ PE 側で発行した Issue に対しても実装希望者を受付
Slide 20
Slide 20 text
20 PE の OSS 活動 ● コロプラ一部ライブラリのOSS公開 ○ 前述の colopl/laravel-spanner など ● 利用しているOSSへのフィードバックや提案 ○ PHP, Laravel, Google Cloud の SDK を中心になんでも ○ RFC 提案やバグ修正などのコントリビュート ○ 次バージョンの RFC や PR へのコメント ○ +1 凸 リード
Slide 21
Slide 21 text
21 開発フィードバックサイクルのイメージ PE・RTPE LCE・SRE ゲームエンジニア 社内基盤ライブラリ クラウド・オープン技術 ゲームサーバー laravel-skeleton laravel-extension laravel-spanner ベース提供 ゲーム実装 ユースケース Issue報告 修正MR 研究・検証 コード公開 提案・修正 ベストプラクティス実装
Slide 22
Slide 22 text
22 ここまでのまとめ ● コロプラバックエンドの基盤開発をメインタスクにしている PE というエンジニアがいます ● PE はベース技術に対して他に先んじてアンテナを張り APIサーバーの課題解決に取り組んでいます ● PE を中心にベース技術やゲームタイトルから得られたナレッジを 共通基盤ライブラリとして会社の資産にしています ● コロプラではゲームタイトルのエンジニアでも 共通基盤ライブラリ開発が開かれています ● RTPEの紹介もいつかできれば
Slide 23
Slide 23 text
Thank you 23