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

大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み

COLOPL Inc.
October 31, 2023

大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み

COLOPL Inc.

October 31, 2023
Tweet

More Decks by COLOPL Inc.

Other Decks in Technology

Transcript

  1. 大規模/長期運用プロジェクト
    が抱える課題への
    チーム、個人の取り組み
    關 涼介

    View Slide

  2. 氏名  :
    部署  :
    自己紹介
    2020年に新卒入社してから現在まで
    『白猫テニス』、『白猫プロジェクト NEW
    WORLD'S』(以降白猫)の運用に携わる
    關 涼介
    技術基盤本部 第1バックエンドエンジニア部
    第1グループ 第1チーム
    2

    View Slide

  3. 大規模/長期運用プロジェクトが抱える課題に対して
     チームとしてどのように取り組んだか
     その中で新卒エンジニアが行ったこと
    3
    今回の話題

    View Slide

  4. 「片手で簡単!爽快アクション」
    リリース日は2014年7月14日。
    今年の7月で9周年を迎えた。
    4
    白猫プロジェクトNEW WORLD’S

    View Slide

  5. 「片手で簡単!爽快アクション」
    リリース日は2014年7月14日。
    今年の7月で9周年を迎えた。
    5
    白猫プロジェクトNEW WORLD’S
    発表をするに当たって白猫に関わる人を
    社内ツールで調べてみました→

    View Slide

  6. 「片手で簡単!爽快アクション」
    リリース日は2014年7月14日。
    今年の7月で9周年を迎えた。
    6
    白猫プロジェクトNEW WORLD’S
    発表をするに当たって白猫に関わる人を
    社内ツールで調べてみました→ 100名over

    View Slide

  7. 長期運用・大規模開発の課題でイメージされるもの
    7
    今回の話題

    View Slide

  8. 長期運用・大規模開発の課題でイメージされるもの
    8
    今回の話題
    ・仕様やコードが複雑化している?
    ・機能に精通するスペシャリストがいて属人化している?
    ・新メンバーのキャッチアップが難しい?
    ・サーバーの処理効率も劣化していく?
    ・開発人数も多くて関われる範囲が狭い?

    View Slide

  9. 長期運用・大規模開発の課題
    9
    今回の話題
    ①キャッチアップコスト
    ②サーバー負荷

    View Slide

  10. ①キャッチアップコスト
    10

    View Slide

  11. ・長期運用するためには人材の流動を見越したシステムが必要
    ・一方、年々仕様やコードは増加していきキャッチアップコストが
     上昇する傾向がある
    11
    ①キャッチアップコスト
    ・情報を整理して共有する
    ・コードの複雑化を防ぐ

    View Slide

  12. 情報を整理して共有する
    ・情報の集約
    ・管理ツールの充実
    12
    ①キャッチアップコスト

    View Slide

  13. 情報を整理して共有する
    ・情報の集約
    ・管理ツールの充実
    13
    ①キャッチアップコスト
    ~ 新規・追加機能の説明 ~

    View Slide

  14. 情報を整理して共有する
    ・情報の集約
    ・管理ツールの充実
    14
    ①キャッチアップコスト

    View Slide

  15. 情報を整理して共有する
    ・情報の集約
    ・管理ツールの充実
     個人として
     情報集約やツール作成だけでなく、
     前提としてフローの整理や要望の収集にも取り組み
     セクション間でのやり取りへ力を入れた
    15
    ①キャッチアップコスト

    View Slide

  16. コードの複雑化を防ぐ
    ・システム構成の見直し
    ・複雑化したコードの改修/新規作成
    16
    ①キャッチアップコスト

    View Slide

  17. コードの複雑化を防ぐ
    ・システム構成の見直し
    ・複雑化したコードの改修/新規作成
    各レイヤーやクラスが大きな意味を持っていることが多かった
     →役割に専念できず肥大化する
     →依存関係も複雑に
    17
    ①キャッチアップコスト

    View Slide

  18. コードの複雑化を防ぐ
    ・システム構成の見直し
    ・複雑化したコードの改修/新規作成
    先程の見直しを元にコードを再構築
     →特にミッションやスコアアタックなどは、
      機能追加が起こりやすく複雑化しやすかった
    18
    ①キャッチアップコスト

    View Slide

  19. コードの複雑化を防ぐ
    ・システム構成の見直し
    ・複雑化したコードの改修/新規作成
     個人として
     コードレビューや設計相談を通して新しい構成についてインプット
     スコアアタック周りは複雑化部分を回避した新機能を作成
    19
    ①キャッチアップコスト

    View Slide

  20. <取り組み>
    情報を整理して共有する
    ・情報の集約
    ・管理ツールの充実
    コードの複雑化を防ぐ
    ・システム構成の見直し
    ・複雑化したコードの改修/新規作成
    20
    ①キャッチアップコスト

    View Slide

  21. <効果>
      チーム
    ・前提であるキャッチアップコスト低下
     ・脱属人化
     ・フローの改善
    ・不要な工数を削減
      個人
    ・質問される機会が増え価値発揮に繋がる
    ・保守性/柔軟性の高いコードの書き方を学べる
    21
    ①キャッチアップコスト

    View Slide

  22. ②サーバー負荷
    22

    View Slide

  23. サーバー負荷は年々増加しますが、
    負荷が高い状態ではサーバーダウンリスクが高まります
    それに対応するため負荷対策チームが存在し、メンバーはイベント開発と
    並行しながら負荷の対策を行っています
    23
    ②サーバー負荷
    ・キャパシティプランニング
    ・毎日の負荷見積もり
    ・定例

    View Slide

  24. キャパシティプランニング
    ・大規模イベント(コラボや周年など)に備えて
     事前にアクセス見積もりをして、対策をしておくもの
    ・プランナー、インフラなど各所と連携して対応していく
    詳しくは過去のconnpass発表で!  
    24
    ②サーバー負荷

    View Slide

  25. 毎日の見積もり
    ・autoscaleも導入してはいるものの、
     それだけでは崖のようなスパイクには耐えられない
     →事前にスケジューリングし台数を増やしておく
     →リリースイベントの影響度を把握する必要がある
    25
    ②サーバー負荷

    View Slide

  26. 定例
    ・週一でサーバーの処理効率をapi毎にみる(APMにはdatadogを活用)
    ・不審な負荷の変化があればコードなのかデータなのか原因を調査し改善する
    26
    ②サーバー負荷

    View Slide

  27. 定例(事例)
    ・無限討伐クエストのトップ画面に遷移する時に非常に重い処理が見つかる
    ・調査をしていくとトップ画面で最終階までのランダム報酬を全て計算していた
    ・必要データ/不要データを整理することでレイテンシが改善した
    27
    ②サーバー負荷















    ランダム報酬を最初に全て計算
    無限討伐クエスト・・・
     最大何百階とあるダンジョンを
     1階層ずつ攻略するイベント

    View Slide

  28. 定例(事例)
    ・無限討伐クエストのトップ画面に遷移する時に非常に重い処理が見つかる
    ・調査をしていくとトップ画面で最終階までのランダム報酬を全て計算していた
    ・必要データ/不要データを整理することでレイテンシが改善した
    28
    ②サーバー負荷

    View Slide

  29. <取り組み>
    負荷対策チームを作成
    ・キャパシティプランニング
    ・毎日の負荷見積もり
    ・定例
    29
    ①キャッチアップコスト

    View Slide

  30. <効果>
      チーム
    ・サーバーリスク/コストの低下
    ・プレイ体験向上
      個人
    ・イベント全体への理解
    ・コード全体への理解
    30
    ②サーバー負荷

    View Slide

  31.   チームとして得られたこと
    ・人材が流動可能な体制
    ・不要工数/コストの削減によりクリエイティブ部分に力をいれられるように
      個人として意識していたことと成長
    ・ニーズの把握や、チームの流れの理解を意識してきました
     →視野の広さ、自身の把握できる範囲の広さ
     →より責任のある対応を任せられる、企画へ早期段階から参加できるなど
    31
    取り組みを通して

    View Slide

  32. ● 課題
    ○ キャッチアップコストの増加
    ○ サーバー負荷の増加
    ● 取り組み
    ○ キャッチアップコスト
    ■ 情報の整理と共有
    ■ コードの複雑化防止
    ○ サーバー負荷
    ■ 負荷対策チームを作り対応
    ● 効果
    ○ より良いチーム体制
    ○ 個人として成長
    32
    まとめ

    View Slide

  33. ありがとうございました
    33

    View Slide