Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み
Search
COLOPL Inc.
October 31, 2023
Technology
1
1.7k
大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み
COLOPL Inc.
October 31, 2023
Tweet
Share
More Decks by COLOPL Inc.
See All by COLOPL Inc.
PHPStan をできる限り高速化してみる
colopl
0
670
コロプラ最新作インフラ構成について
colopl
0
200
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
2.1k
コロプラのオンボーディングを採用から語りたい
colopl
7
2.4k
怖くない!ゼロから始めるPHPソースコードコンパイル入門
colopl
1
660
大規模トラフィックを支える ゲームバックエンドの課題と構成の変遷 ~安定したゲーム体験を実現するために~
colopl
3
7k
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
3
1.8k
ゲームを支えるバックエンドエンジニアのリアルを公開!
colopl
1
1.7k
コロプラ_SRE_LCE_ゲームバックエンド_性能との戦い
colopl
0
1.2k
Other Decks in Technology
See All in Technology
SQLだけでマイグレーションしたい!
makki_d
0
1.1k
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
210
Database イノベーショントークを振り返る/reinvent-2025-database-innovation-talk-recap
emiki
0
250
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
200
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
720
Agent Skillsがハーネスの垣根を超える日
gotalab555
5
2.4k
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
360
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
270
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
15
15k
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
0
270
.NET 10の概要
tomokusaba
0
130
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
180
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.4k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.7k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Marketing to machines
jonoalderson
1
4.3k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
37k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
26
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
64
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
400
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
88
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
77
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Transcript
大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み 關 涼介
氏名 : 部署 : 自己紹介 2020年に新卒入社してから現在まで 『白猫テニス』、『白猫プロジェクト NEW WORLD'S』(以降白猫)の運用に携わる 關
涼介 技術基盤本部 第1バックエンドエンジニア部 第1グループ 第1チーム 2
大規模/長期運用プロジェクトが抱える課題に対して チームとしてどのように取り組んだか その中で新卒エンジニアが行ったこと 3 今回の話題
「片手で簡単!爽快アクション」 リリース日は2014年7月14日。 今年の7月で9周年を迎えた。 4 白猫プロジェクトNEW WORLD’S
「片手で簡単!爽快アクション」 リリース日は2014年7月14日。 今年の7月で9周年を迎えた。 5 白猫プロジェクトNEW WORLD’S 発表をするに当たって白猫に関わる人を 社内ツールで調べてみました→
「片手で簡単!爽快アクション」 リリース日は2014年7月14日。 今年の7月で9周年を迎えた。 6 白猫プロジェクトNEW WORLD’S 発表をするに当たって白猫に関わる人を 社内ツールで調べてみました→ 100名over
長期運用・大規模開発の課題でイメージされるもの 7 今回の話題
長期運用・大規模開発の課題でイメージされるもの 8 今回の話題 ・仕様やコードが複雑化している? ・機能に精通するスペシャリストがいて属人化している? ・新メンバーのキャッチアップが難しい? ・サーバーの処理効率も劣化していく? ・開発人数も多くて関われる範囲が狭い?
長期運用・大規模開発の課題 9 今回の話題 ①キャッチアップコスト ②サーバー負荷
①キャッチアップコスト 10
・長期運用するためには人材の流動を見越したシステムが必要 ・一方、年々仕様やコードは増加していきキャッチアップコストが 上昇する傾向がある 11 ①キャッチアップコスト ・情報を整理して共有する ・コードの複雑化を防ぐ
情報を整理して共有する ・情報の集約 ・管理ツールの充実 12 ①キャッチアップコスト
情報を整理して共有する ・情報の集約 ・管理ツールの充実 13 ①キャッチアップコスト ~ 新規・追加機能の説明 ~
情報を整理して共有する ・情報の集約 ・管理ツールの充実 14 ①キャッチアップコスト
情報を整理して共有する ・情報の集約 ・管理ツールの充実 個人として 情報集約やツール作成だけでなく、 前提としてフローの整理や要望の収集にも取り組み セクション間でのやり取りへ力を入れた 15 ①キャッチアップコスト
コードの複雑化を防ぐ ・システム構成の見直し ・複雑化したコードの改修/新規作成 16 ①キャッチアップコスト
コードの複雑化を防ぐ ・システム構成の見直し ・複雑化したコードの改修/新規作成 各レイヤーやクラスが大きな意味を持っていることが多かった →役割に専念できず肥大化する →依存関係も複雑に 17 ①キャッチアップコスト
コードの複雑化を防ぐ ・システム構成の見直し ・複雑化したコードの改修/新規作成 先程の見直しを元にコードを再構築 →特にミッションやスコアアタックなどは、 機能追加が起こりやすく複雑化しやすかった 18 ①キャッチアップコスト
コードの複雑化を防ぐ ・システム構成の見直し ・複雑化したコードの改修/新規作成 個人として コードレビューや設計相談を通して新しい構成についてインプット スコアアタック周りは複雑化部分を回避した新機能を作成 19 ①キャッチアップコスト
<取り組み> 情報を整理して共有する ・情報の集約 ・管理ツールの充実 コードの複雑化を防ぐ ・システム構成の見直し ・複雑化したコードの改修/新規作成 20 ①キャッチアップコスト
<効果> チーム ・前提であるキャッチアップコスト低下 ・脱属人化 ・フローの改善 ・不要な工数を削減 個人 ・質問される機会が増え価値発揮に繋がる ・保守性/柔軟性の高いコードの書き方を学べる 21
①キャッチアップコスト
②サーバー負荷 22
サーバー負荷は年々増加しますが、 負荷が高い状態ではサーバーダウンリスクが高まります それに対応するため負荷対策チームが存在し、メンバーはイベント開発と 並行しながら負荷の対策を行っています 23 ②サーバー負荷 ・キャパシティプランニング ・毎日の負荷見積もり ・定例
キャパシティプランニング ・大規模イベント(コラボや周年など)に備えて 事前にアクセス見積もりをして、対策をしておくもの ・プランナー、インフラなど各所と連携して対応していく 詳しくは過去のconnpass発表で! 24 ②サーバー負荷
毎日の見積もり ・autoscaleも導入してはいるものの、 それだけでは崖のようなスパイクには耐えられない →事前にスケジューリングし台数を増やしておく →リリースイベントの影響度を把握する必要がある 25 ②サーバー負荷
定例 ・週一でサーバーの処理効率をapi毎にみる(APMにはdatadogを活用) ・不審な負荷の変化があればコードなのかデータなのか原因を調査し改善する 26 ②サーバー負荷
定例(事例) ・無限討伐クエストのトップ画面に遷移する時に非常に重い処理が見つかる ・調査をしていくとトップ画面で最終階までのランダム報酬を全て計算していた ・必要データ/不要データを整理することでレイテンシが改善した 27 ②サーバー負荷 1 階 6 階
2 階 3 階 5 階 4 階 … 7 階 ランダム報酬を最初に全て計算 無限討伐クエスト・・・ 最大何百階とあるダンジョンを 1階層ずつ攻略するイベント
定例(事例) ・無限討伐クエストのトップ画面に遷移する時に非常に重い処理が見つかる ・調査をしていくとトップ画面で最終階までのランダム報酬を全て計算していた ・必要データ/不要データを整理することでレイテンシが改善した 28 ②サーバー負荷
<取り組み> 負荷対策チームを作成 ・キャパシティプランニング ・毎日の負荷見積もり ・定例 29 ①キャッチアップコスト
<効果> チーム ・サーバーリスク/コストの低下 ・プレイ体験向上 個人 ・イベント全体への理解 ・コード全体への理解 30 ②サーバー負荷
チームとして得られたこと ・人材が流動可能な体制 ・不要工数/コストの削減によりクリエイティブ部分に力をいれられるように 個人として意識していたことと成長 ・ニーズの把握や、チームの流れの理解を意識してきました →視野の広さ、自身の把握できる範囲の広さ →より責任のある対応を任せられる、企画へ早期段階から参加できるなど 31 取り組みを通して
• 課題 ◦ キャッチアップコストの増加 ◦ サーバー負荷の増加 • 取り組み ◦ キャッチアップコスト
▪ 情報の整理と共有 ▪ コードの複雑化防止 ◦ サーバー負荷 ▪ 負荷対策チームを作り対応 • 効果 ◦ より良いチーム体制 ◦ 個人として成長 32 まとめ
ありがとうございました 33