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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
850
兎に角、コードレビュー
mitohato14
2
430
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
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
390
業務時間外もAIに働いてもらう話
colorful12
2
8.3k
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
420
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
230
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
170
Flow は今どうなっているか
mizdra
PRO
0
750
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
270
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
160
仕様駆動開発の消費期限
watany
20
9.1k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
240
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
360
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
970
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
500
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
950
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Building the Perfect Custom Keyboard
takai
2
850
Designing for Performance
lara
611
70k
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