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.
October 31, 2023
Technology
1.8k
1
Share
大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み
COLOPL Inc.
October 31, 2023
More Decks by COLOPL Inc.
See All by COLOPL Inc.
実務で動くAIエージェントを作ろう!MCP×Mastraをライブコーディングで実践
colopl
0
200
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
1.2k
PHPStan をできる限り高速化してみる
colopl
0
790
コロプラ最新作インフラ構成について
colopl
0
290
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
2.3k
コロプラのオンボーディングを採用から語りたい
colopl
7
2.7k
怖くない!ゼロから始めるPHPソースコードコンパイル入門
colopl
1
830
大規模トラフィックを支える ゲームバックエンドの課題と構成の変遷 ~安定したゲーム体験を実現するために~
colopl
3
8.2k
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
3
1.9k
Other Decks in Technology
See All in Technology
スクラムを支える内部品質の話
iij_pr
0
180
Bref でサービスを運用している話
sgash708
0
220
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
290
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
190
「活動」は激変する。「ベース」は変わらない ~ 4つの軸で捉える_AI時代ソフトウェア開発マネジメント
sentokun
0
140
Move Fast and Break Things: 10 in 20
ramimac
0
120
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
3
340
【関西電力KOI×VOLTMIND 生成AIハッカソン】空間AIブレイン ~⼤阪おばちゃんフィジカルAIに続く道~
tanakaseiya
0
110
Network Firewall Proxyで 自前プロキシを消し去ることができるのか
gusandayo
0
170
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
200
ThetaOS - A Mythical Machine comes Alive
aslander
0
240
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
880
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
From π to Pie charts
rasagy
0
160
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
120
Utilizing Notion as your number one productivity tool
mfonobong
4
280
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Language of Interfaces
destraynor
162
26k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Statistics for Hackers
jakevdp
799
230k
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