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
mitohato14
March 14, 2025
Programming
150
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アプリの復旧を早くしたい!
mitohato14
March 14, 2025
More Decks by mitohato14
See All by mitohato14
Androidアプリ開発にもCursorという選択肢を
mitohato14
0
780
兎に角、コードレビュー
mitohato14
2
420
CodeRabbitと過ごした1ヶ月 ─ AIコードレビュー導入で実感したチーム開発の進化
mitohato14
4
4.4k
事業開発とコミュニティ活動
mitohato14
0
71
プレビューファーストUI開発
mitohato14
1
510
新米テックリードの試行錯誤.pdf
mitohato14
1
570
JetpackCompose Slot APIs
mitohato14
0
1.2k
Start Jetpack Compose.pdf
mitohato14
0
430
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
490
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
310
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
370
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
590
生成AI導入の「期待外れ」を乗り越える ー 開発フロー改革が目指す、真の組織変革
starfish719
0
4k
yield再入門 #phpcon
o0h
PRO
0
980
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
300
今さら聞けない .NET CLI
htkym
0
180
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
480
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
930
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
420
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
840
Into the Great Unknown - MozCon
thekraken
41
2.7k
Designing Powerful Visuals for Engaging Learning
tmiket
1
480
Statistics for Hackers
jakevdp
799
230k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Transcript
© DMM © DMM CONFIDENTIAL アプリの復旧を早くしたい! DroidKaigi.collect { #17@Tokyo }
mitohato14 2024/03/14
© DMM 自己紹介 名前 mitohato14(Miyazato Hayato) 最近の趣味 Monster Hunter Wilds ぶいすぽっ!
ランダムダンスを見る 2
© DMM 今日話すこと アプリの復旧を早くするための取り組み 問題のあるアプリをロールバックする 3
© DMM サービスの紹介
サービス LP:https://lp.pointclub.dmm.com/ DMMポイントをお 得に貯めて 賢く管理 ! カジュアルゲームで 効率的に ポイントを稼げる !
FEATURE FEATURE DMMの お得な情報が 届く! FEATURE 3 サービスコンセプト
会員数 MAU 機能 DAU で手に入れよう モバイルアプリ版 6 万 カジュアル ゲーム
ポイント 管理 万 (会員IDベース(Web含む)) 10〜 13 万 5〜 6 通知 送客 広告 59
© DMM 本題
© DMM アプリを早く復旧したい!
© DMM なぜ?
© DMM アプリのリリース リリース前のストア審査が必須 ストア審査にかかる時間はマチマチ 10
© DMM ポイントクラブのストア審査 以前:数時間レベル 現在:1日以上 11
© DMM ストア審査時間 12 https://support.google.com/googleplay/android-developer/answer/9859654?hl=ja
© DMM 審査時間が長いことによる影響
© DMM 例えば 問題発生 14
© DMM 例えば 問題発生 ロール バック 15
© DMM 例えば 問題発生 ロール バック ストア 審査 16
© DMM 例えば 問題発生 ロール バック ストア 審査 リリース 17
© DMM 例えば 問題発生 問題収束 ロール バック ストア 審査 リリース
18
© DMM 例えば 問題発生 問題収束 ロール バック ストア 審査 リリース
0.5日 1日 0.5日 19
© DMM 例えば 問題発生 問題収束 ロール バック ストア 審査 リリース
0.5日 1日 0.5日 2日 20
© DMM 時間がかかる 😇
© DMM ちなみに
© DMM iOS 特急審査という概念 アプリレビューの優先処理をリクエストできる 23
© DMM iOS 特急審査という概念 アプリレビューの優先処理をリクエストできる Androidにも欲しい。。。 24
© DMM 閑話休題
© DMM ポイントクラブのストア審査 以前:数時間レベル 現在:1日以上 26
© DMM 審査に時間がかかるようになっている中。。。
© DMM クラッシュスパイク発生
© DMM クラッシュスパイク 2024年最後のリリース(12月23日) 大量のクラッシュ発生 29 https://x.com/DMM_POINTCLUB/status/1871433715488043259?s=19
© DMM 😇
© DMM クラッシュスパイク 12月23日夕方頃 リリース 12月24日昼頃 問題検知・ロールバック 12月25日夕方頃 審査通過・リリース 31
© DMM ユーザーをかなり待たせてしまった
© DMM 早く復旧したい
© DMM 早く復旧できる仕組みを考える
© DMM 早い復旧を考える 問題発生 問題収束 ロール バック ストア 審査 リリース
0.5日 1日 0.5日 2日 35
© DMM 早い復旧を考える 審査時間は操作不能変数 操作可能変数部分に注力 36
© DMM 操作可能変数 問題発生 問題収束 ロール バック ストア 審査 リリース
0.5日 1日 0.5日 37
© DMM 操作可能変数 問題発生 問題収束 ロール バック ストア 審査 リリース
0.5日 1日 0.5日 38
© DMM 操作可能変数 問題発生 問題収束 ロール バック ストア 審査 リリース
0.5日 1日 0.5日 39
© DMM 早く復旧するには
© DMM ロールバックの仕組み
© DMM ロールバックの仕組みを考える • Feature Flag • ロールバック用アプリの事前用意 42
© DMM Feature Flag 導入・運用コストの懸念 43
© DMM ロールバック用アプリの事前用意に決定
© DMM リリースフローに導入
© DMM これまでのリリースフロー 1. GitタグのpushでCI発火 a. リリース用アプリのビルド b. Play Consoleにアップロード
2. 内部テスト配信 3. ストア審査提出 4. GitHub Release公開 46
© DMM 仕組みを導入する
© DMM 仕組み概要 1. 以前リリースしたバージョンを復元 2. 次のバージョンに更新 3. アプリビルド 4.
Play Consoleにアップロード 48
© DMM ロールバックスクリプト 1. 今回のリリースバージョン取得 2. アプリのバージョンをインクリメント 3. 以前のリリースタグ取得 a.
GitHub Release経由 4. git switch -d “以前のリリースタグ名” 5. 新しいバージョンを反映 49
© DMM 50
© DMM ロールバックスクリプト 1. 今回のリリースバージョン取得 2. アプリのバージョンをインクリメント 3. 以前のリリースタグ取得 a.
GitHub Release経由 4. git switch -d “以前のリリースタグ名” 5. 新しいバージョンを反映 51
© DMM 52
© DMM
© DMM ロールバックスクリプト 1. 今回のリリースバージョン取得 2. アプリのバージョンをインクリメント 3. 以前のリリースタグ取得 a.
GitHub Release経由 4. git switch -d “以前のリリースタグ名” 5. 新しいバージョンを反映 54
© DMM
© DMM ロールバックスクリプト 1. 今回のリリースバージョン取得 2. アプリのバージョンをインクリメント 3. 以前のリリースタグ取得 a.
GitHub Release経由 4. git switch -d “以前のリリースタグ名 ” 5. 新しいバージョンを反映 56
© DMM
© DMM ロールバックスクリプト 1. 今回のリリースバージョン取得 2. アプリのバージョンをインクリメント 3. 以前のリリースタグ取得 a.
GitHub Release経由 4. git switch -d “以前のリリースタグ名” 5. 新しいバージョンを反映 58
© DMM
© DMM CI 60 リリースビルド アップロード 以前のバージョン復元 リリースビルド アップロード
© DMM 新しいリリースフロー
© DMM リリースフロー 1. GitタグのpushでCI発火 a. リリース用アプリのビルド b. Play Consoleにアップロード
c. ロールバック用アプリのビルド d. Play Consoleにアップロード 2. リリース用アプリの内部テスト配信 3. リリース用アプリのストア審査提出 4. GitHub Release公開 5. ロールバック用アプリのストア審査提出 62
© DMM 期待する効果
© DMM 期待する効果 ロールバックするまでの時間が短くなる ユーザー影響を少なくできる 64
© DMM 導入結果
© DMM 実際の効果 時間短縮効果はまだ分からない 66
© DMM 実際の効果 時間短縮効果はまだ分からない 安心感はある ロールバック用の作業工数削減 67
© DMM 工数削減 1. リバート 2. 動作確認 3. PR作成 4.
CIビルド 5. バージョン更新 6. PR作成 7. CIビルド 8. 審査提出 68
© DMM 工数削減 1. リバート 2. 動作確認 3. PR作成 4.
CIビルド 5. バージョン更新 6. PR作成 7. CIビルド 8. 審査提出 1. 動作確認 2. 審査提出 69
© DMM 意識していなかった効果も得られた
© DMM めでたしめでたし
© DMM まだ
© DMM 残った課題 審査時間はやっぱり長い。。。 もっと復旧までの時間を短縮できる予定ではあった 73
© DMM 残った課題 リリース用アプリとロールバック用アプリは同時に審査できない リリースした後に審査提出する必要がある 74
© DMM どうするか
© DMM 今後の話 もっと早くしたい Feature Flagを導入するしかなさそう 76
© DMM ロールバック以外だと
© DMM 段階的リリース 影響あるユーザー数を抑える ロールバックの仕組みと組み合わせる 78
© DMM みなさんの取り組みを聞きたい
© DMM Xや懇親会で教えてください!
© DMM まとめ • リリース時にロールバック用アプリも用意しておく • ロールバック用の作業時間を短縮できた • 安心感を生むこともできる •
アプリにもロールバックの仕組みを! 81