$30 off During Our Annual Pro Sale. View Details »

コロプラゲームバックエンド共通基盤 運用・開発体制の紹介

COLOPL Inc.
September 27, 2023

コロプラゲームバックエンド共通基盤 運用・開発体制の紹介

COLOPL Inc.

September 27, 2023
Tweet

More Decks by COLOPL Inc.

Other Decks in Technology

Transcript

  1. コロプラゲームバックエンド

    共通基盤 運用・開発体制の紹介

    松野岳記

    View Slide

  2. 2
    ● 略歴
    ○ SIerで出張生活
    ○ Web系
    ○ 2018 コロプラ入社
    ■ 白猫プロジェクトSREチーム
    ■ ドラゴンクエストウォーク SREチーム
    ■ サーバー基盤マネジャー兼SRE
    氏名  :
    部署名 :
    松野 岳記
    技術基盤本部 第3バックエンドエンジニア部
    サーバー基盤グループ
    自己紹介

    View Slide

  3. 目次
    1. コロプラバックエンド組織体制の紹介
    2. 社内共通基盤ライブラリ開発活動の紹介
    3

    View Slide

  4. コロプラバックエンド組織体制の紹介

    4

    View Slide

  5. 5
    バックエンド組織の構成
    ゲームサーバー開発チーム
    ゲームサーバー開発チーム
    インフラグループ :

    ゲームサーバー開発チーム
    共通基盤組織 ゲームタイトル
    サーバー基盤グループ
    ※枠の大きさは実際の組織と関係ありません🙇

    View Slide

  6. 6
    ゲームの共通基盤組織の役割?
    ● ゲームってユニークでありたいものなのでは?
    ● コロプラのVision → "新しい体験" を届ける
    ● 共通基盤組織のやるべきことは?
    ??

    View Slide

  7. 7
    ゲームの共通基盤組織の役割
    ● ゲームってユニークでありたいものなのでは?
    ● コロプラのVision → "新しい体験" を届ける
    ● ゲームタイトルは常に新しい体験に挑戦
    ● 共通基盤はゲーム開発の土台
    ○ 性能面や運用ナレッジの会社としての蓄積
    ■ 成功の再現性
    ■ 技術の開拓

    View Slide

  8. 8
    サーバー基盤グループの構成
    ゲームサーバー開発チーム
    ゲームサーバー開発チーム
    インフラグループ :

    ゲームサーバー開発チーム
    共通基盤組織 ゲームタイトル
    サーバー基盤グループ
    ※枠の大きさは実際の組織と関係ありません🙇

    View Slide

  9. 9
    サーバー基盤グループの構成
    ゲームサーバー開発チーム
    ゲームサーバー開発チーム
    インフラグループ :

    ゲームサーバー開発チーム
    共通基盤組織 ゲームタイトル
    ※枠の大きさは実際の組織と関係ありません🙇
    LCEチーム
    SREチーム
    PEチーム
    RTPEチーム
    【運用サイド】
    普通にはなかなか経験できない運用ケースの知識
    ● LCE (Launch Coordination Engineer)
    ○ ローンチ関連の性能とプロセスの品質
    ● SRE (Site Reliability Engineer)
    ○ 長期運用の性能とプロセスの品質

    View Slide

  10. 10
    サーバー基盤グループの構成
    ゲームサーバー開発チーム
    ゲームサーバー開発チーム
    インフラグループ :

    ゲームサーバー開発チーム
    共通基盤組織 ゲームタイトル
    ※枠の大きさは実際の組織と関係ありません🙇
    LCEチーム
    SREチーム
    PEチーム
    RTPEチーム
    【開発サイド】
    ● PE (Platform Engineer)
    ○ APIサーバーを中心とした開発技術のリード
    ● RTPE (Real-Time Platform Engineer)
    ○ リアルタイムサーバーを中心とした開発技術のリード

    View Slide

  11. 11
    開発組織体制のイメージ
    PE・RTPE
 LCE・SRE
 ゲームエンジニア

    社内基盤ライブラリ
 ゲームサーバー

    クラウド・オープン技術 


    View Slide

  12. 社内共通基盤ライブラリ開発活動の紹介

    12

    View Slide

  13. 13
    PEチーム
    ● Platform Engineer チーム
    ○ 主にコロプラAPIサーバー開発の土台を支えています
    ● 主な活動領域
    ○ Google Cloudやミドルウェアの新機能の検証と追従
    ○ サーバーコンテナのエンハンス・チューニング
    ○ サーバーフレームワークのエンハンス
    ○ サーバー開発用CIなどの環境整備

    View Slide

  14. 14
    PEチーム
    ● Platform Engineer チーム
    ○ 主にコロプラAPIサーバー開発の土台を支えています
    ● 主な活動領域
    ○ Google Cloudやミドルウェアの新機能の検証と追従
    ○ サーバーコンテナのエンハンス・チューニング
    ○ サーバーフレームワークのエンハンス
    ○ サーバー開発用CIなどの環境整備
    今回はここの紹介をします

    View Slide

  15. 15
    APIサーバーの社内基盤ライブラリ
    ● 開発言語 / フレームワーク
    ○ PHP / Laravel
    ● ライブラリ (一部)
    ○ laravel-extension
    ○ laravel-skeleton
    ○ laravel-spanner

    View Slide

  16. 16
    laravel-extension
    ● 役割
    ○ ゲームサーバーとして低レイヤーを効果的に利用するための拡張
    ● 性質
    ○ 低レイヤーを効果的に使うプラクティスの実装
    ■ 外部コンポーネント利用時のハンドリング
    ■ データアクセスコードの自動生成
    ■ etc.
    ○ ベース技術へのアンテナが必要

    View Slide

  17. 17
    laravel-skeleton
    ● 役割
    ○ どのゲームでも必要になる機能のテンプレート実装
    ● 性質
    ○ 共通機能の実装
    ■ ユーザー認証
    ■ 課金処理
    ■ 運用サポートツール画面
    ○ ゲームタイトル運用の共通ナレッジの蓄積

    View Slide

  18. 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

    View Slide

  19. 19
    PE とゲームエンジニアとのコミュニケーション
    ● コア開発チームがあることの懸念
    ○ 本番ユースケースを知らずに技術の押し付けになりたくない
    ○ 技術に触れる機会の不平等
    ■ ゲームタイトル側アサインでもベース技術と関わりたい (関わって欲しい)
    ○ 物量
    ■ やること多い
    ● 社内オープン開発
    ○ 共通 Git でゲームエンジニアからも Issue や Merge Request を常時受付
    ○ PE 側で発行した Issue に対しても実装希望者を受付

    View Slide

  20. 20
    PE の OSS 活動
    ● コロプラ一部ライブラリのOSS公開
    ○ 前述の colopl/laravel-spanner など
    ● 利用しているOSSへのフィードバックや提案
    ○ PHP, Laravel, Google Cloud の SDK を中心になんでも
    ○ RFC 提案やバグ修正などのコントリビュート
    ○ 次バージョンの RFC や PR へのコメント
    ○ +1 凸 リード

    View Slide

  21. 21
    開発フィードバックサイクルのイメージ
    PE・RTPE
 LCE・SRE
 ゲームエンジニア

    社内基盤ライブラリ

    クラウド・オープン技術 
 ゲームサーバー

    laravel-skeleton
    laravel-extension
    laravel-spanner ベース提供

    ゲーム実装

    ユースケース

    Issue報告

    修正MR

    研究・検証

    コード公開

    提案・修正

    ベストプラクティス実装


    View Slide

  22. 22
    ここまでのまとめ
    ● コロプラバックエンドの基盤開発をメインタスクにしている
    PE というエンジニアがいます
    ● PE はベース技術に対して他に先んじてアンテナを張り
    APIサーバーの課題解決に取り組んでいます
    ● PE を中心にベース技術やゲームタイトルから得られたナレッジを
    共通基盤ライブラリとして会社の資産にしています
    ● コロプラではゲームタイトルのエンジニアでも
    共通基盤ライブラリ開発が開かれています
    ● RTPEの紹介もいつかできれば

    View Slide

  23. Thank you

    23

    View Slide