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
1.2k
コロプラゲームバックエンド共通基盤 運用・開発体制の紹介
COLOPL Inc.
September 27, 2023
Tweet
Share
More Decks by COLOPL Inc.
See All by COLOPL Inc.
PHPStan をできる限り高速化してみる
colopl
0
240
コロプラ最新作インフラ構成について
colopl
0
52
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
1.5k
コロプラのオンボーディングを採用から語りたい
colopl
7
2k
怖くない!ゼロから始めるPHPソースコードコンパイル入門
colopl
0
210
大規模トラフィックを支える ゲームバックエンドの課題と構成の変遷 ~安定したゲーム体験を実現するために~
colopl
3
4.4k
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
3
1.6k
ゲームを支えるバックエンドエンジニアのリアルを公開!
colopl
1
1.3k
コロプラ_SRE_LCE_ゲームバックエンド_性能との戦い
colopl
0
940
Other Decks in Technology
See All in Technology
数百台のオンプレミスのサーバーをEKSに移行した話
yukiteraoka
0
150
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
190
「エンジニアマネージャー」の役割を担っている / 担ってみたい方へのキャリアパスガイド
coconala_engineer
1
220
空が堕ち、大地が割れ、海が涸れた日~もしも愛用しているフレームワークが開発停止したら?~ #phperkaigi 2025
77web
2
970
Go の analysis パッケージで自作するリファクタリングツール
kworkdev
PRO
1
350
Cline、めっちゃ便利、お金が飛ぶ💸
iwamot
18
17k
Agile TPIを活用した品質改善事例
tomasagi
0
150
fukuoka.ts #3 社内でESLintの共通設定を配りたい2025年春版
pirosikick
1
280
コード品質向上で得られる効果と実践的取り組み
ham0215
1
190
製造業の会計システムをDDDで開発した話
caddi_eng
3
820
日本MySQLユーザ会ができるまで / making MyNA
tmtms
1
260
新卒エンジニア研修の試行錯誤と工夫/nikkei-tech-talk-31
nishiuma
0
170
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Rails Girls Zürich Keynote
gr2m
94
13k
Embracing the Ebb and Flow
colly
84
4.6k
A Philosophy of Restraint
colly
203
16k
Producing Creativity
orderedlist
PRO
344
40k
BBQ
matthewcrist
88
9.5k
For a Future-Friendly Web
brad_frost
176
9.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.3k
Site-Speed That Sticks
csswizardry
4
450
Raft: Consensus for Rubyists
vanstee
137
6.8k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
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