Upgrade to Pro — share decks privately, control downloads, hide ads and more …

グランブルーファンタジーを支えるサーバーサイドの技術

Cygames
February 14, 2020

 グランブルーファンタジーを支えるサーバーサイドの技術

2020/02/14 Developers Summit 2020

Cygames

February 14, 2020
Tweet

More Decks by Cygames

Other Decks in Technology

Transcript

  1. サーバーの現状 #1 • LAMP環境で提供 – Linux / Apache / MySQL

    / PHP • 多くのアクセスを扱う – ユーザー数 2500万⼈突破 – リクエスト数 15億/⽇ 8/72
  2. サーバーの現状 #3 • アクセスが特に増える⽇がある ー 平常時 15億/⽇ ー「古戦場」時 40億/⽇ •

    更に「古戦場」のピークには 28万リクエスト/秒 に達する それでも安定してサービスを提供したい 10/72
  3. 実際に活躍しているツール • Mackerel • Kibana • New Relic • Percona

    Monitoring & Management • Xhprof • BigQuery • Datadog • ⾃動監視 ⽤途ごとに 使い分けている 25/72
  4. 2つの技術的改善 • 発⽣したトラブルを解消し ユーザーに迷惑をかけない – 主に即時的なトラブル対応を⽰す 短期的な 改善 中⻑期の 改善

    • その場かぎりではなく 未来を⾒据えた改善 – ユーザにより快適に遊んでもらう – 「最⾼のコンテンツ」を届けたい 35/72
  5. チューニングの事例 #1 • フレームワークの変更 – ハイリスク :影響範囲が広い – 改善の意識が希薄になり⾒落としがち –

    ハイリターン :影響範囲が広い フレームワークの改善事例を紹介します 聖域を作らない 55/72
  6. ORMのチューニング #6 • ⽬標を明確にする – グランブルーファンタジーの 特性に最適なORMの作成 • 作りたいORMの要件定義 –

    最速であること ­ シンプルであること – ORMとしての扱いやすさは変えない ⼿段の選択 60/72
  7. ORMのチューニング #8 新 Query 新ドメイン ORM Observer 廃⽌ Relation 廃⽌

    ゲーム ロジック 新 ORM 廃止 廃止 • 改善箇所の概要 データ参照の ⾼速化 データ参照の ⾼速化 オブジェクト関係 マッピング⾼速化 62/72
  8. ORMのチューニング #10 2.5 100 0.3 100 0 10 20 30

    40 50 60 70 80 90 100 改善後ORM 改善前ORM データ参照 オブジェクト関係マッピング • 前後⽐較 (walltimeの相対⽐較) 64/72
  9. ORMのチューニング #11 • 新しいORMの成果 – メリット • データ参照が最速に • オブジェクト関係マッピングも⾼速に

    • 古戦場以外のAPIでも良い結果に – デメリット • カプセル化の観点でベストではない → アプリケーションレイヤーでカバー 65/72
  10. チューニングのまとめ #2 – ご紹介したようなチューニングを イテレーションしているから成果が出る – これまで748件のチューニングを実施 • PHP conference

    2017で紹介した チューニングも機会があればご覧ください 現象発⾒ チューニング 効果測定 知⾒の 体系化 67/72