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
1.7k
大規模/長期運用プロジェクト が抱える課題への チーム、個人の取り組み
COLOPL Inc.
October 31, 2023
Tweet
Share
More Decks by COLOPL Inc.
See All by COLOPL Inc.
PHPStan をできる限り高速化してみる
colopl
0
690
コロプラ最新作インフラ構成について
colopl
0
210
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
2.2k
コロプラのオンボーディングを採用から語りたい
colopl
7
2.4k
怖くない!ゼロから始めるPHPソースコードコンパイル入門
colopl
1
690
大規模トラフィックを支える ゲームバックエンドの課題と構成の変遷 ~安定したゲーム体験を実現するために~
colopl
3
7.1k
長期運用プロジェクトでのMySQLからTiDB移行の検証
colopl
3
1.8k
ゲームを支えるバックエンドエンジニアのリアルを公開!
colopl
1
1.7k
コロプラ_SRE_LCE_ゲームバックエンド_性能との戦い
colopl
0
1.2k
Other Decks in Technology
See All in Technology
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
280
Cloud WAN MCP Serverから考える新しいネットワーク運用 / 20251228 Masaki Okuda
shift_evolve
PRO
0
130
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
200
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
810
産業的変化も組織的変化も乗り越えられるチームへの成長 〜チームの変化から見出す明るい未来〜
kakehashi
PRO
0
150
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
240
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
6
2k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.5k
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
180
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
5
12k
テストセンター受験、オンライン受験、どっちなんだい?
yama3133
0
200
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
We Are The Robots
honzajavorek
0
130
The Cult of Friendly URLs
andyhume
79
6.7k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
64
Done Done
chrislema
186
16k
Building an army of robots
kneath
306
46k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
37
For a Future-Friendly Web
brad_frost
180
10k
GraphQLとの向き合い方2022年版
quramy
50
14k
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