コロプラゲームバックエンド共通基盤 運用・開発体制の紹介
by
COLOPL Inc.
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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