Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コロプラゲームバックエンド共通基盤 運用・開発体制の紹介
Search
COLOPL Inc.
September 27, 2023
Technology
0
950
コロプラゲームバックエンド共通基盤 運用・開発体制の紹介
COLOPL Inc.
September 27, 2023
Tweet
Share
More Decks by COLOPL Inc.
See All by COLOPL Inc.
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
3
1.4k
ゲームを支えるバックエンドエンジニアのリアルを公開!
colopl
1
870
コロプラ_SRE_LCE_ゲームバックエンド_性能との戦い
colopl
0
680
新卒3年目の ゲームバックエンドエンジニアが これまでに経験したこと
colopl
1
1.2k
大規模タイトルを ノーメンテで運用するコツ
colopl
1
1.2k
サーバーサイドエンジニアの ゲーム企画との向き合い方
colopl
1
1.1k
大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み
colopl
1
1.1k
令和時代の PHP Extension の 作り方 〜 FFI を添えて〜
colopl
0
1.3k
K8s 上で laravel を 快適に運用する方法
colopl
0
1.3k
Other Decks in Technology
See All in Technology
いまからでも遅くない! コンテナでWebアプリケーションを 動かしてみよう(2-1)WebAPI座学
nomu
0
130
REST API Design Pitfalls
victorrentea
1
500
Valuable Software Engineering
avandeursen
0
240
マルチAWSアカウント間のストリーミングによるデータ同期/AWS SaaS Builders Forum 2024
visional_engineering_and_design
1
110
All your memory are belong to… whom?
ennael
PRO
0
370
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
190
【shownet.conf_】AI技術とUX監視の応用でShowNetの基盤を支えるモニタリングシステム
shownet
PRO
0
240
映像・音声伝送システム
jtes
0
190
My Generation 年配者がこの先生きのこるには/My Generation How elder engineers can survive
kwappa
3
4.9k
GitHub Actions/Docker/Terraform/Renovate で最小限の Monorepo CD パイプラインを作る / Minimalistic Monorepo CD Pipeline with GitHub Actions, Docker, Terraform and Renovate
yuyatakeyama
4
330
【shownet.conf_】3Dアプローチで守るセキュリティ
shownet
PRO
0
240
【shownet.conf_】ローカル5Gを活用したウォーキングツアーの体感向上
shownet
PRO
0
230
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
KATA
mclloyd
27
13k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
227
52k
Clear Off the Table
cherdarchuk
91
320k
Creatively Recalculating Your Daily Design Routine
revolveconf
216
12k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
Design by the Numbers
sachag
277
19k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
Gamification - CAS2011
davidbonilla
79
5k
Why You Should Never Use an ORM
jnunemaker
PRO
53
9k
Transcript
コロプラゲームバックエンド 共通基盤 運用・開発体制の紹介 松野岳記
2 • 略歴 ◦ SIerで出張生活 ◦ Web系 ◦ 2018 コロプラ入社
▪ 白猫プロジェクトSREチーム ▪ ドラゴンクエストウォーク SREチーム ▪ サーバー基盤マネジャー兼SRE 氏名 : 部署名 : 松野 岳記 技術基盤本部 第3バックエンドエンジニア部 サーバー基盤グループ 自己紹介
目次 1. コロプラバックエンド組織体制の紹介 2. 社内共通基盤ライブラリ開発活動の紹介 3
コロプラバックエンド組織体制の紹介 4
5 バックエンド組織の構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル
サーバー基盤グループ ※枠の大きさは実際の組織と関係ありません🙇
6 ゲームの共通基盤組織の役割? • ゲームってユニークでありたいものなのでは? • コロプラのVision → "新しい体験" を届ける •
共通基盤組織のやるべきことは? ??
7 ゲームの共通基盤組織の役割 • ゲームってユニークでありたいものなのでは? • コロプラのVision → "新しい体験" を届ける •
ゲームタイトルは常に新しい体験に挑戦 • 共通基盤はゲーム開発の土台 ◦ 性能面や運用ナレッジの会社としての蓄積 ▪ 成功の再現性 ▪ 技術の開拓
8 サーバー基盤グループの構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル
サーバー基盤グループ ※枠の大きさは実際の組織と関係ありません🙇
9 サーバー基盤グループの構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル
※枠の大きさは実際の組織と関係ありません🙇 LCEチーム SREチーム PEチーム RTPEチーム 【運用サイド】 普通にはなかなか経験できない運用ケースの知識 • LCE (Launch Coordination Engineer) ◦ ローンチ関連の性能とプロセスの品質 • SRE (Site Reliability Engineer) ◦ 長期運用の性能とプロセスの品質
10 サーバー基盤グループの構成 ゲームサーバー開発チーム ゲームサーバー開発チーム インフラグループ : : ゲームサーバー開発チーム 共通基盤組織 ゲームタイトル
※枠の大きさは実際の組織と関係ありません🙇 LCEチーム SREチーム PEチーム RTPEチーム 【開発サイド】 • PE (Platform Engineer) ◦ APIサーバーを中心とした開発技術のリード • RTPE (Real-Time Platform Engineer) ◦ リアルタイムサーバーを中心とした開発技術のリード
11 開発組織体制のイメージ PE・RTPE LCE・SRE ゲームエンジニア 社内基盤ライブラリ ゲームサーバー クラウド・オープン技術
社内共通基盤ライブラリ開発活動の紹介 12
13 PEチーム • Platform Engineer チーム ◦ 主にコロプラAPIサーバー開発の土台を支えています • 主な活動領域
◦ Google Cloudやミドルウェアの新機能の検証と追従 ◦ サーバーコンテナのエンハンス・チューニング ◦ サーバーフレームワークのエンハンス ◦ サーバー開発用CIなどの環境整備
14 PEチーム • Platform Engineer チーム ◦ 主にコロプラAPIサーバー開発の土台を支えています • 主な活動領域
◦ Google Cloudやミドルウェアの新機能の検証と追従 ◦ サーバーコンテナのエンハンス・チューニング ◦ サーバーフレームワークのエンハンス ◦ サーバー開発用CIなどの環境整備 今回はここの紹介をします
15 APIサーバーの社内基盤ライブラリ • 開発言語 / フレームワーク ◦ PHP / Laravel
• ライブラリ (一部) ◦ laravel-extension ◦ laravel-skeleton ◦ laravel-spanner
16 laravel-extension • 役割 ◦ ゲームサーバーとして低レイヤーを効果的に利用するための拡張 • 性質 ◦ 低レイヤーを効果的に使うプラクティスの実装
▪ 外部コンポーネント利用時のハンドリング ▪ データアクセスコードの自動生成 ▪ etc. ◦ ベース技術へのアンテナが必要
17 laravel-skeleton • 役割 ◦ どのゲームでも必要になる機能のテンプレート実装 • 性質 ◦ 共通機能の実装
▪ ユーザー認証 ▪ 課金処理 ▪ 運用サポートツール画面 ◦ ゲームタイトル運用の共通ナレッジの蓄積
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
19 PE とゲームエンジニアとのコミュニケーション • コア開発チームがあることの懸念 ◦ 本番ユースケースを知らずに技術の押し付けになりたくない ◦ 技術に触れる機会の不平等 ▪
ゲームタイトル側アサインでもベース技術と関わりたい (関わって欲しい) ◦ 物量 ▪ やること多い • 社内オープン開発 ◦ 共通 Git でゲームエンジニアからも Issue や Merge Request を常時受付 ◦ PE 側で発行した Issue に対しても実装希望者を受付
20 PE の OSS 活動 • コロプラ一部ライブラリのOSS公開 ◦ 前述の colopl/laravel-spanner
など • 利用しているOSSへのフィードバックや提案 ◦ PHP, Laravel, Google Cloud の SDK を中心になんでも ◦ RFC 提案やバグ修正などのコントリビュート ◦ 次バージョンの RFC や PR へのコメント ◦ +1 凸 リード
21 開発フィードバックサイクルのイメージ PE・RTPE LCE・SRE ゲームエンジニア 社内基盤ライブラリ クラウド・オープン技術 ゲームサーバー laravel-skeleton
laravel-extension laravel-spanner ベース提供 ゲーム実装 ユースケース Issue報告 修正MR 研究・検証 コード公開 提案・修正 ベストプラクティス実装
22 ここまでのまとめ • コロプラバックエンドの基盤開発をメインタスクにしている PE というエンジニアがいます • PE はベース技術に対して他に先んじてアンテナを張り APIサーバーの課題解決に取り組んでいます
• PE を中心にベース技術やゲームタイトルから得られたナレッジを 共通基盤ライブラリとして会社の資産にしています • コロプラではゲームタイトルのエンジニアでも 共通基盤ライブラリ開発が開かれています • RTPEの紹介もいつかできれば
Thank you 23