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
タクシーアプリ『GO』Androidのリリースフロー / Release GO App
Search
gyamoto
October 31, 2023
Technology
1
1.4k
タクシーアプリ『GO』Androidのリリースフロー / Release GO App
gyamoto
October 31, 2023
Tweet
Share
More Decks by gyamoto
See All by gyamoto
脱Accompanistを考える / Bye Accompanist
gya
0
520
実践 脱Modifier.composed / Let's Modifier.Node
gya
2
790
私の好きなModifier関数 / My Favorite Modifier
gya
0
1k
2022年ヘルスケアアプリのつくり方 / 2022 A Healthcare App Odyssey
gya
0
1.5k
タクシーアプリ「GO」AndroidにできるところからJetpack Composeを入れている話 / Introduce Jetpack Compose gradually
gya
0
860
Gradle BOM importでライブラリバージョン管理 / DroidKaigi2019
gya
3
2.2k
Firebaseで解決するAndroidの機種依存 / Firebase solve android device difference
gya
2
1.3k
Other Decks in Technology
See All in Technology
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
190
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
180
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
420
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
270
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
970
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
440
2025年夏 コーディングエージェントを統べる者
nwiizo
0
170
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
180
AI時代を生き抜くエンジニアキャリアの築き方 (AI-Native 時代、エンジニアという道は 「最大の挑戦の場」となる) / Building an Engineering Career to Thrive in the Age of AI (In the AI-Native Era, the Path of Engineering Becomes the Ultimate Arena of Challenge)
jeongjaesoon
0
190
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Music & Morning Musume
bryan
46
6.8k
Being A Developer After 40
akosma
90
590k
How STYLIGHT went responsive
nonsquared
100
5.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Practical Orchestrator
shlominoach
190
11k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Producing Creativity
orderedlist
PRO
347
40k
Transcript
タクシーアプリ『GO』Androidの リリースフロー 2023.10.31 / 後夜祭 DroidKaigi 2023 Kohei Yamamoto GO株式会社
© GO Inc. 2 GO株式会社 ユーザーシステム開発部 / Kohei Yamamoto 新卒でIT企業に入社後、継続的なサービスの成長に携わりたいと思
い2021年8月に入社。 タクシーアプリ『GO』のAndroidアプリ開発を担当。 BIOHAZARD RE:4 で恐怖の克服を試している。車が欲しい。 @farundorl @gyamoto 自己紹介
© GO Inc. 3
© GO Inc. 4 01 タクシーアプリ『GO』 Androidのリリースフロー
© GO Inc. 5 タクシーアプリ『GO』のリリースフロー QA完了 + リリースバージョン、 リリースノート、 公開日時の決定
GooglePlayで段階的な 公開として “99%” 割合 でリリース リリース当日 リリース前日 0 1
© GO Inc. 6 タクシーアプリ『GO』のリリースフロー リリース後に問題が 発生してないか調査 GooglePlayで段階的な 公開の割合を更新 問題あり
→ 0% 問題なし → 100% リリース後 調査後 2 3
© GO Inc. 7 アプリの段階的な公開 2 3 1 0 新バージョン
アプリ 旧バージョンアプリ 新バージョン アプリ 旧バージョン アプリ 一時的に旧バージョンと新バージョンの両方を公開して 問題が発生した場合に備える
© GO Inc. 8 アプリの段階的な公開 一定割合のユーザにのみアプリを公開する機能 アプリの公開割合を都度更新することが可能 ・例えば 1%→5%→20%→100% と徐々に浸透させる
・『GO』Androidは 99%→100% と一気に公開している もし問題が見つかった場合は、最新アプリの影響を最小限 に抑えるために、段階的な公開を中止できる 段階的な公開を利用したアプリのアップデートのリリース | PlayConsoleHelp https://support.google.com/googleplay/android-developer/answer/6346149
© GO Inc. 9 02 段階的公開でリリース後の問題に備える
© GO Inc. 10 リリース後に問題が発生した場合 リリース後に問題が 発生してないか調査 問題発生 リリース後 対応方針の決定
2 0 1 修正版アプリの用意 2 アプリの 再リリース 3
© GO Inc. 11 リリース後に問題が発生した場合 リリース後に問題が 発生してないか調査 問題発生 リリース後 対応方針の決定
2 0 1 修正版アプリの用意 2 アプリの 再リリース 3 修正版アプリのリリースが完了するまでの間は 問題が発生するアプリのユーザが増え続けてしまう 修正版 アプリ 問題が発生するアプリ
© GO Inc. 12 段階的公開でリリース後の問題に備える 問題 発生 GooglePlayで段階的な 公開の割合を更新 問題あり
→ 0% 問題のリスク判断後 3 0 対応方針の決定 1 修正版アプリの用 アプリの 再リリー
© GO Inc. 13 段階的公開でリリース後の問題に備える 問題 発生 GooglePlayで段階的な 公開の割合を更新 問題あり
→ 0% 問題のリスク判断後 3 0 対応方針の決定 1 修正版アプリの用 アプリの 再リリー 修正版 アプリ 問題が発生する “前” のアプリ 問題が発生 するアプリ 修正版アプリのリリースが完了するまでの間は 一時的に問題が発生する前のアプリがインストールされる
© GO Inc. 14 03 ほぼ100%の段階的な公開
© GO Inc. 15 段階的な公開で考えること → 公開割合をどうする? → いつ公開割合を更新する? リリース内容によって公開割合の必須具合が変わる
・タクシー配車に関連する新機能 → タクシー事業者等と日時を合わせる必要がある ・UI改善や軽度な不具合対応など → 急ぎではない ほぼ100%の段階的な公開を設定した背景
© GO Inc. リリース内容にあわせて公開割合と更新タイミングを調整 すると大変… → 段階的な公開を諦め、通常の公開(100%)にする…? 可能であれば問題が発生した場合に備えたい →
ほぼ100%として段階的な公開を設定すると、 「通常公開と変わらない浸透スピード」と 「何かあった場合に公開を中止できる」が両立できる! 16 ほぼ100%の段階的な公開を設定した背景
© GO Inc. リリース時間 ・午前11時にアプリ公開し、翌日11時に問題ないか調査 → アプリ公開の翌朝に利用した結果をもとに確認する → 1日目で ~10%のユーザに最新版が浸透済みなので
致命的な問題があれば発見できる(はず…!) 17 『GO』Androidのほぼ100%の段階的な公開
© GO Inc. 18 『GO』Androidのほぼ100%の段階的な公開 問題がないかの調査内容 ・Firebase Crashlyticsのクラッシュレポートを確認 → 主に「問題のシグナル:新規」が増えてないか
・バックエンド側でアプリ起因の不具合が起きてないか → アプリに大きな変更がある場合は、念のため リリース前にアプリのAPIリクエスト数が急増 してないかも計測する
© GO Inc. 19 04 おまけ:先週判明したこと
© GO Inc. 20 先週判明したこと 段階的な公開の割合は小数点ありで設定できるため、 実質100%で段階的な公開ができそう 割合99.99999%にするとデバイス数と対象数が一致した
© GO Inc. 21 先週判明したこと 実質100%(=99.99999%)段階公開に設定後も公開割合は 編集可能 ・99%と変わらず「公開を管理」が選択可能
© GO Inc. 22 https://hrmos.co/pages/m o-t/jobs/2100002 タクシーアプリ『GO』の開発を一緒にしませんか
© GO Inc. 文章・画像等の内容の無断転載及び複製等の行為はご遠慮ください