本ガイドは、モバイルアプリをリリース済みで、その後の運用を担うCTO・エンジニアリングリード・プロダクトオーナーを対象としています。扱うテーマは、パッチサイクル・OS/SDKサポート・アプリストアリリース運用です。ディスカバリーから初回ローンチまではモバイルプロダクト開発ガイド、ビルド方針の選択はネイティブ vs クロスプラットフォーム開発、サーバーサイドアーキテクチャはモバイルアプリのバックエンド・API・オフライン同期をご参照ください。本ページは、初回リリース後から始まる運用レイヤーを対象としています。
目次
- アプリのリリース後に変わること、そして誰が担うのか
- リリース前にすべての変更を分類する
- 段階的ストアロールアウトの実際の手順
- 古いOSまたはSDKバージョンのサポートをいつ終了すべきか
- リリース間のセキュリティメンテナンス
- モバイルメンテナンスとリリース運用におけるAIの活用
- 実績として存在するもの・存在しないもの
- 代替案:誰がメンテナンス・セキュリティ・リリース運用を担うか
- 本ガイドの制限事項
- よくある質問
- 次のステップ
アプリのリリース後に変わること、そして誰が担うのか
Webサイトはデプロイした瞬間に変わりますが、モバイルアプリはそうではありません。ユーザーは自分のスケジュールでアップデートし、2つのストアはアプリの下でルールを変え続けているからです。AppleとGoogleはレビューガイドラインと最低ターゲットAPIレベルを定期的なサイクルで改定し、サードパーティSDK(プッシュ通知・サインイン・決済・アナリティクス)はそれぞれ独自のセキュリティアドバイザリーを公開します。また、一定数のユーザーは1年前のアプリバージョンを使い続けています。通常、3つの役割がオーナーシップを分担します。エンジニアリングリードまたはリリースリードが各変更を分類してリリースし、セキュリティオーナーがSDKと依存関係のアドバイザリーを追跡し、プロダクトオーナーが機能を次のサイクルに回すかどうかを判断します。各役割に担当者を明確に設定しなければ、パッチは後回しになり、アプリストアへの対応は計画的ではなく事後対応になってしまいます。
リリース前にすべての変更を分類する
すべてのリリースが同じ承認フローや同じロールアウト速度を必要とするわけではありません。変更を最初に3種類のいずれかに分類することで、残りの運用モデルがリリースごとの議論ではなく、機械的に動くようになります。
| 変更種別 | トリガー | 承認者 | ロールアウト速度 |
|---|---|---|---|
| セキュリティパッチ | アプリまたは依存SDKの既知の脆弱性、またはアクティブなエクスプロイトの報告 | セキュリティオーナーおよびエンジニアリングリード | すでに悪用されている場合は即時全ユーザーへリリース。そうでない場合は通常の最初のステップより高い割合から開始するファストトラックの段階的ロールアウト |
| メンテナンスリリース | バグ修正・安定性修正・パフォーマンス修正・OS互換性変更(新しいユーザー向け動作なし) | エンジニアリングリード | 標準の段階的ロールアウトスケジュールを最初から最後まで実施 |
| 機能リリース | 新しい機能またはユーザーワークフローの変更 | プロダクトオーナーおよびエンジニアリングリード | 標準の段階的ロールアウトスケジュール。変更がコアフローに影響する場合は各ステップをより長く保持 |
メンテナンスリリースも完全な段階的スケジュールに従います。バグ修正でも独自のクラッシュを引き起こす可能性があるため、「新機能なし」は「リスクなし」とは同義ではありません。セキュリティパッチは、スケジュールをスキップできる唯一のケースですが、それは待機することでアクティブなエクスプロイトを放置することになる場合に限られます。
段階的ストアロールアウトの実際の手順
-
ストアのコンソールを開く前に、上記の表からロールアウト速度を決定してください。
最初のクラッシュレポートを見ながら決めるのではありません。
-
プラットフォーム固有のメカニズムを開始します。
Google Playの段階的ロールアウトは、リリースごとに手動で割合を引き上げる仕組みです。Appleの自動アップデート向けフェーズドリリースは7日間の固定スケジュール(1%・2%・5%・10%・20%・50%・100%)に従い、最大30日間一時停止できます。いずれも、ユーザーが手動でアップデートをダウンロードすることは防げないため、フェーズ管理は露出を遅らせるものであり、防止するものではありません。
-
リリース前に進行・停止の閾値を設定してください。
リリース中ではありません。クラッシュフリー率・ANR(アプリ無応答)率・サポートチケット数のそれぞれについて、一時停止をトリガーする値をエンジニアリングリードが事前に決定します。
-
各ステップの間でメトリクスを監視し、
前のステップが設定した観測ウィンドウ内で閾値をクリアした場合にのみ割合を引き上げます。
-
アクティブなセキュリティエクスプロイトが発生している場合は段階的スケジュールをスキップし、
全ユーザーにリリースして、自動アップデート設定内でまだ反映されていないユーザー向けにアプリ内アップデートプロンプトを追加します。
-
リリースを記録してください。
何が変更されたか・分類された種別・承認者・各割合ステップが移動した日時を、次の監査が必要になる前に記録として残します。
古いOSまたはSDKバージョンのサポートをいつ終了すべきか
サポート終了の基準は、固定した年数ではなく、各プラットフォーム固有のポリシーサイクルに連動させてください。Google Playは年次サイクルで必要なターゲットAPIレベルを引き上げており、これに遅れたアプリへのアップデート配信を停止します。AppleのApp Store審査ガイドラインも同様のリズムで改定されます。プラットフォームバージョンのサポートを終了するのは、継続サポートが必要なセキュリティ機能をブロックする場合、ストアポリシーの更新により継続サポートが不可能になった場合、またはそのインストールシェアがチームが事前に合意した閾値を下回った場合です。その際は、効力発生後ではなく事前にアプリ内でサポート終了を告知してください。同じ規律がバンドルされたSDKにも適用されます。セキュリティアドバイザリーを受け続けているSDKはパッチ対象であり、自動アップグレードの候補ではありません。テストされていないSDKのバージョン変更は、それ自体が独自の段階的ロールアウトを必要とするメンテナンスリリースだからです。
リリース間のセキュリティメンテナンス
稼働中アプリのセキュリティ作業はリリース内の一ステップではなく、継続的な活動です。アプリに同梱されているすべてのSDKと依存関係のアドバイザリーを監視し、高深刻度の発見は次の定例リリースではなく合意したウィンドウ内でパッチを適用し、緊急の依存関係の更新でも通常のリリースと同じリトライおよびロールバックテストを省略しないことを意味します。Netbase JSCはこれを自社のビルド成果物に適用しています。具体的には、セキュアコードレビューとバージョン管理・転送中のTLSと保存時のAES・ロールベースのアクセス制御・管理ダッシュボードへのMFA・脆弱性スキャンとペネトレーションテスト・ディザスタリカバリーを実施しており、NDA・DPA・SLAについてはご要望に応じて対応します。Netbase JSCは自社の情報セキュリティおよび運用プラクティスについてISO 27001認証とSOC 2 Type II認証を取得していますが、いずれもクライアントのアプリやホスティングには適用されず、証明書番号・監査機関・適用範囲は公開していません。
モバイルメンテナンスとリリース運用におけるAIの活用
-
成長機能:AIを活用したクラッシュおよびログトリアージ。
クラッシュレポートをグループ化し、スパイクの原因として最も可能性の高いリリースをフラグ立てすることは、機械学習と生成AIのユースケースであり、段階的ロールアウトのアラートから根本原因特定までの時間を短縮します。現時点でNetbase JSCの公開ケーススタディとの紐付けはありません。
-
成長機能:AIを活用したリリースノートおよび変更履歴の起草。
コミット履歴からリリースの変更点をストアリスティングや社内ログ向けに要約し、リリース前に人間がレビューする形式(教師なし生成ではない)です。現時点でNetbase JSCの公開ケーススタディとの紐付けはありません。Netbase JSCは主要な商用およびオープンソースのAIツールとモデルをプロジェクトごとに選択して活用しており、特定ベンダーとのパートナーシップや専用スタックは明示していません。
実績として存在するもの・存在しないもの
Netbase JSCは、稼働中アプリのパッチおよびリリースサーフェスを構成するコンポーネントを、ビルドフェーズのエンゲージメントにおいて構築・リリースしてきました。
- RB Marketplace モバイルアプリ。 注文・価格アラートのためのFirebase Cloud Messagingプッシュ通知、Google/Facebook/Appleサインイン、セキュアなWebViewを通じた決済を、キックオフからQA・ハンドオーバーまで6フェーズ・45画面以上で提供しました。
- Dey Page。 Firebase プッシュ通知・ディープリンク・アプリ内ブラウザによる決済を備えたiOS/Android向けReact Nativeアプリを、12週間のWebおよびモバイル計画の一部として提供しました。
- ドバイを拠点とするロイヤルティ・リワードプラットフォーム(NDAにより非公開)。 クライアントアプリ向けのモバイルSDK UIコンポーネントを、プラットフォーム独自のWebhookおよびスケジュール同期インテグレーションとともに提供しました。
存在しないもの。これらはビルドフェーズおよびデリバリーの実績であり、継続的なメンテナンス・セキュリティパッチ・リリースサイクルのエンゲージメントではありません。初回デリバリー後のいかなるアプリについても、パッチ対応時間・リリースサイクル・稼働率・クラッシュフリー率・インシデント数を示すNetbase JSCの公開実績は存在しません。上記のリリース種別マトリクス・ロールアウトステップ・サポートウィンドウルールは、ストアドキュメントとデリバリー実践から導かれたものであり、特定のメンテナンス契約の計測値ではありません。
代替案:誰がメンテナンス・セキュリティ・リリース運用を担うか
-
アプリを構築したチーム
- 強み
- コードベース・SDK・過去のインシデントへの深い知識
- 選ぶべき状況
- ビルドチームにキャパシティがあり、クライアントが継続性を求める場合
-
リテイナー契約の専任チーム
- 強み
- 変更頻度の高いアプリに対して予測可能な常設キャパシティ
- 選ぶべき状況
- リリース量が継続的なキャパシティを正当化するが、新規機能チームを全体的に設けるほどではない場合
-
リリースごとの請負エンゲージメント
- 強み
- 常設リテイナーなしでリリースサイクルごとに費用を支払う
- 選ぶべき状況
- リリースが少ない、またはアプリが安定した低変更状態に達している場合
Netbase JSCのチームは3名から30名で構成され、ビジネスアナリスト・プロジェクトマネージャー・ソリューションアーキテクト・開発者・QAを組み合わせています。通常、ディスカバリーから1〜2週間以内に開始し、週次レビュー・KPIダッシュボード・専任アカウントマネージャーがデリバリーを通じてサポートします。カスタム開発で作成されたIPはクライアントに帰属し、ほとんどのNetbase JSCプロジェクトはディスカバリー後に請負契約で進行しますが、継続的なメンテナンスキャパシティに適した場合はマイルストーンベース・月次リテイナー・KPI連動の契約形態も提供しています。このオファーはモバイルアプリ開発にあり、再利用可能な認証・プッシュ通知・オフラインコンポーネント向けのモバイルプロダクトアクセラレーターによって支援されています。
本ガイドの制限事項
- アプリストアの審査ポリシー・ターゲットAPI要件・フェーズド/段階的ロールアウトの仕組みは、各プラットフォーム固有のスケジュールで変更されます。上記の基準を適用する前に、AppleおよびGoogleの公式ドキュメントで現在のルールをご確認ください。
- Netbase JSCのいかなるエンゲージメントについても、パッチ対応時間・リリースサイクル・稼働率・クラッシュフリー率・インシデント数は主張していません。実際のプログラムの数値は、そのアプリ・SDK・ユーザーベースに依存します。
- OWASP MASVSおよび引用されたAppleとGoogleのドキュメントは、それらが定義するものの参照として挙げられており、Netbase JSCまたはクライアントのアプリがそれらに対して評価されたという主張ではありません。
Netbaseコンサルタントと次のステップを計画する
よくある質問
脆弱性がすでに悪用されているか、ユーザー操作なしにトリガーされる場合に限ります。それ以外の場合は、修正を即時全ユーザーにリリースしつつ、アプリ内および自動アップデートプロンプトによって数日以内にほとんどのユーザーに反映させてください。全員がアップデートするまでアプリをブロックする必要はありません。
できません。新機能のないリリースでも独自のクラッシュを引き起こす可能性があるため、他の変更と同じ段階的またはフェーズドスケジュールに従います。スケジュールをスキップできるのは、アクティブに悪用されているセキュリティ問題の場合のみです。
ストア独自のターゲットAPI更新・審査ポリシー更新と、事前に合意した閾値に対するバージョンの現在のインストールシェアをサポート終了の基準とし、効力発生前にアプリ内で告知してください。最初から固定した年数を選ぶ必要はありません。
そうすべきではありません。SDKのバージョン変更はそれ自体をメンテナンスリリースとして扱ってください。バージョンを固定し、通常のリリースと同じリトライおよびロールバック動作に対してテストし、その後初めて段階的に展開します。更新がセキュリティアドバイザリーを含む場合でも同様です。
次のステップ
現在のアプリ構成をお伝えいただければ、ソリューションレビューを予約してメンテナンス・セキュリティ・リリース運用モデルのスコープを設定します。または、モバイルプロダクトアクセラレーターソリューションもご覧ください。
関連サービスとソリューション
コマース・プロダクトチーム向けモバイルアプリ開発(AI機能搭載)
Netbase JSCは、リテーラー・スタートアップ・プロダクトチームが既存のスマートフォンで顧客にリーチできるよう、クロスプラットフォームReact Nativeアプリおよびモバイル最適化コマースを提供します。高速表示とコンバージョンを実現し、電話が効果を発揮する場面でAIを活用します。各アプリはディスカバリーでスコープを定め、既存のバックエンドとAPIを再利用し、ストアリリースまでお客様とともに計画します。
詳しく見る
AIに対応したモバイルプロダクトアクセラレーター:認証・プッシュ・オフライン・決済の再利用可能な基盤
モバイルアプリアクセラレーターは、サインイン・プッシュ通知・オフラインデータ・決済をカバーする再利用可能なアプリ基盤のセットです。Netbase JSCが新しいプロダクトごとに設定することで、AI検索・パーソナライゼーション・オンデバイスAIなど、アプリを差別化する部分からビルドを開始できます。これはグロース段階のケイパビリティであり、クロスプラットフォームのReact Nativeスキルによるカスタム開発として提供されます。
詳しく見る
Netbaseにリモートで依頼する
Netbase JSCのすべての案件はリモートで納品されるため、どの国・業界のクライアントともお取引できます。これまで80カ国のクライアントと実績があります。契約・請求書はNetbase JSCが発行し、お支払いはNetbase JSCの口座への銀行振込またはPayPal Businessで行います。CEOのHuy Nguyen(David)にWhatsAppまたはメールでお問い合わせください。
プロジェクトを相談する
Netbase JSCは、デジタルプロダクトおよびAI活用ビジネスシステムの設計・構築・モダナイゼーション・運用を支援します。project@netbasejsc.com
+84 937 869 689
91 Nguyen Chi Thanh, Dong Da, Hanoi, Vietnam
お問い合わせ
構築・モダナイゼーション・運用したいものをお知らせください。