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
akatsukinewgrad
August 02, 2021
Programming
0
1.5k
(いたみん)プロジェクトでの運用改善について
akatsukinewgrad
August 02, 2021
Tweet
Share
More Decks by akatsukinewgrad
See All by akatsukinewgrad
2023/1/25_QAテスター meet up!
akatsukinewgrad
0
130
成果発表資料.pdf
akatsukinewgrad
0
2k
広大なフィールドを気持ちよく駆け抜けるための技術.pdf
akatsukinewgrad
0
550
正規表現とReDoS.pdf
akatsukinewgrad
0
540
Unityで大量のオブジェクト_を吹き飛ばしたい.pdf
akatsukinewgrad
0
580
新卒2年目が思う1年目の学び.pdf
akatsukinewgrad
0
510
障害訓練の取り組みについて.pdf
akatsukinewgrad
0
680
7分でわかるアカツキゲームス
akatsukinewgrad
0
550
Bitcoinだけでスマートコントラクト.pdf
akatsukinewgrad
1
870
Other Decks in Programming
See All in Programming
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
300
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
170
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
370
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
380
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
850
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
200
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
190
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
140
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
1
680
5つのアンチパターンから学ぶLT設計
narihara
1
110
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
19
3.5k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.6k
Raft: Consensus for Rubyists
vanstee
140
7k
Thoughts on Productivity
jonyablonski
69
4.7k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Producing Creativity
orderedlist
PRO
346
40k
Visualization
eitanlees
146
16k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How GitHub (no longer) Works
holman
314
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
Faster Mobile Websites
deanohume
307
31k
Transcript
プロジェクトの 運用改善について Akatsuki Geek Live Vol.1
名前:伊丹琢人(いたみ たくと) あだ名:いたみん • 役職 ◦ 19卒クライアントエンジニア ◦ 八月のシンデレラナイン
urakataチーム所属 • 趣味 ◦ fpsやアクションのゲームをする ◦ Vtuberの放送を見たり 最近便利家電を揃えててなるべく楽をしようとしてます 自己紹介
urakataチームとは 新機能などユーザーに価値を提供するチームではなく 運用メンバーに対して価値を提供するチームになります。 現在:クライアント1人、サーバー2人の体制 ハチナイの運用メンバーは主に以下の職種の方がいます • プランナー • 検証
• デザイナー
なぜ運用メンバーに価値を提供するのか?
なぜ運用メンバーに価値を提供するのか? • 手作業による工数の増大 • ヒューマンエラーによる不具合 ユーザーへの還元、最終的にプロジェクトの利益に繋がる 解決
どうやって問題を見つけるか? • まずはヒアリングしてみる → そもそも解決できる問題として認識していないこともあるため 色々と引き出す必要がある。 • 運用改善のslackチャンネルを作成・要望シートに記載を促す →
改善の文化形成、ふとした要望も受け入れるようにして 問題の浮上をしやすく。
• 改善仕様のヒアリングを行う。 → その仕様よりも良いことはないか? 実装工数と工数や不具合の削減量でやるやらないを決定していく • ものによって、コンフルを整備したり → 改善したのに使われないままになったり、引き継ぎができないのを防止
問題解決へ
運用改善 1例の紹介 マスターデータの移行を自動化
ハチナイではマスターデータはスプレで管理されていて 各環境毎にシートがあり、環境によってシートを結合して使います マスターデータの移行作業: 概要 develop sandnext sandbox feature
develop sandbox develop feature sandbox feature sandnext sandbox sandnext sandbox sandbox ※これは一部です
今回はここでの改善 マスターデータの移行作業: 概要 develop sandnext sandbox feature develop
sandbox develop feature sandbox feature sandnext sandbox sandnext sandbox sandbox
sandnext: 本番で使うが、まだ出さないデータで出す日付もバラバラ sandbox : 本番で使うデータでここにあるデータを本番やstagingといった環境に反映 します マスターデータの移行作業: 概要 sandnext sandbox
sandnext sandbox sandnext sandbox sandbox
マスターデータの移行作業: 概要 本番で出すにはsandnextからsandboxへ移動させる必要があり 今まで手作業で移動をさせていた。 また全部ではなく基本次回で出るデータのみ sandnext sandbox 手作業
マスターデータの移行作業: 現状の問題把握 • データ不備の発生 • シートが大量にあるため複数人が最大1時間かかる。しかも増えていく • 当時手作業が当たり前という意識の状態だった
不具合発生・必要工数ともに大きい問題 解決しないとマズイ!
マスターデータの移行作業: 解決への実装と仕様 • 言語はプロジェクトに合わせてrubyを選択 • 実行はjenkins上。パラメータに移動対象の日付を指定してポチるだけ! • 実行結果はslack上に通知
マスターデータの移行作業: 移動の判定 • マスターデータの一番右の列に”デプロイ”を追加して日付を指定 • デプロイ列までを移動対象に • 入れ込むデータは元々判断できるようでデプロイ列はそこに含めない 実際にデータ化されるシート
操作するシート 参照
マスターデータの移行作業: 実装の注意 • 100秒あたり100リクエストの制限 → 制限が来たら待機・リトライ処理を追加 • シートごとにリクエストすると重いのでまとめて処理をする → batch_update_valuesやbatch_get_spreadsheet_valuesを使用
運用していくとシートが増えて制限に引っかかるのも sheets apiの制限についてこちらから https://developers.google.com/sheets/api/reference/limits
マスターデータの移行作業: 作業と結果 • デプロイ日を入れて実行 • 実行結果をslackへ 各マスターで移動ができたら成功アイコン表示
マスターデータの移行作業: 改善効果 • 工数 → 2~4人 x 30 ~ 60分
x 2 ~ 3回デプロイ/1ヶ月 = 最大12時間くらい削減 → + 作業は非同期なので本来の作業に集中可能 通知も平均6分ほどで来る • 不具合 → 処理がデータによっては不具合が発生することがある。 行を手動で追加しないといけなかったりとか・・・ とはいえ手作業でほぼ毎回発生していた不具合は削減
• プロジェクトにspineを導入し、anima2dからspineへの移行 • photoshopスクリプトで必要なspineアトラスを出力するもの • iosのテクスチャ圧縮の更新 PVTRC -> ASTC •
実機内デバッグ機能で検証コストの低減 • github actionでチェッカーを入れたり 他運用改善で行ったものの例
• 運用を続けるプロジェクトは運用を改善していくことも重要 運用し続け肥大化したプロジェクトはどこか負担になっている箇所があり 本来注力すべき業務の時間が減って結果として利益に影響が発生します。 機能実装の攻めと改善の守りで攻守兼ね備えたプロジェクトへ • 改善できるのか?を言いやすい環境へ 負担になって辛いけどしょうがない・・から改善できるかも?に繋げるため チームでコミュニケーションを取ってよりよいチームビルディングへ
まとめ
• iosのPVTRC -> ASTCへの移行 元々PVTRCは縦横ともにサイズが2の累乗だけ対応なので いくつか圧縮されていなかった。-> アセットバンドルの サイズ増大
ASTCに関してはそこが緩和されており置き換えてサイズ削減へ ただしiphone6以降が対応 • anima2dからspineへの移行はアニメーション周りの方からの要望 業界的にspineのほうが扱える方が多くやりやすいというのと、anima2dはもうサポート的にどうなの? という感じだったので移行をしています。 spineはcanvas用とmesh renderer用の2パターンあるので相性が良かった appendix
• 実機内デバッグではSRDebugger経由でアクセスするものが多いです 例えばローディング演出の確認デバッグとか 試合開始のVSが出てるところの確認デバッグとかのキャラ表示チェックとか • photoshopスクリプトはspineのスケルトンデータ1つに対して
キャラのテクスチャを切り替えて表示する形を取っているので 同じ配置になるようphotoshopから自動で配置して出力する機能を作成 appendix