現実的なMongoDB Realmアプリケーションの移行:オプションと戦略の検討


 

MongoDB Realmアプリケーションの移行に関する現実的な戦略を探ります。代替のモバイルデータベースソリューション、ライブマイグレーションの課題、Gluesyncによるダウンタイムなしのシームレスな移行について考察します。

モバイルアプリ開発のダイナミックな世界では、適応力が鍵となります。最近、MongoDBはモバイルデータベースソリューションであるRealmの段階的廃止を発表し、多くの開発者や組織が代替ソリューションを探しています。この市場の変化は、モバイルアプリ開発者にとって課題と機会の両方をもたらします。市場で利用可能な選択肢を詳しく見ていき、運用中のモバイルアプリをスムーズかつ効率的に移行する方法を探っていきましょう。

変化するモバイルデータベースの状況

オフラインファースト機能とリアルタイム同期機能で知られるMongoDB Realmは、モバイルアプリ開発者にとって人気の選択肢となってきました。 その段階的廃止の発表は、モバイルデータソリューションの将来についての議論を巻き起こしました。 この移行を進めるにあたり、利用可能な代替手段と本番アプリの移行の影響を理解することが重要です。

モバイルデータベースの市場オプション

MongoDB Realmの代替となり得る堅牢なソリューションがいくつか登場しています。

  1. Couchbase Mobile: 強力なオフラインファースト機能、マルチモデルデータストレージ、効率的な同期機能を提供。
  2. Firebase Realtime Database: Googleのインフラストラクチャを基盤として、リアルタイムのデータ同期とオフラインサポートを提供。
  3. SQLite: 軽量でサーバー不要のデータベースエンジンで、アプリケーションに直接組み込むことができる。
  4. Realm Database(MongoDB 製): 段階的に廃止されているものの、短期的に現在の設定を維持したい方には選択肢のひとつです(ただし、DBインフラは不要です)。
  5. Ditto: オフライン優先機能、リアルタイム同期、集中型サーバーを必要としない競合解決機能を提供するピアツーピアデータベースソリューションです(「Big peer」と呼ばれるものとは異なります)。
  6. カスタムソリューション: 特定のニーズに合わせて独自仕様のモバイルデータ同期システムを構築することを選択する企業もあります。

これらのオプションにはそれぞれ独自の機能、メリット、考慮すべき事項があります。
これらのオプションの選択は、アプリケーションの特定の要件、スケーラビリティのニーズ、長期的な技術戦略によって大きく異なります。考慮すべき要素には以下が含まれます。

  • 同期機能とパフォーマンス
  • オフライン機能
  • スケーラビリティとコスト
  • 統合と移行の容易性
  • コミュニティサポートと長期的な実行可能性

MongoDBがRealmの段階的廃止を発表したのと時を同じくして、Dittoとの提携も明らかになりました。[詳細はこちら] それでは、RealmがMongoDB Atlasで以前提供していたものと比較しながら、その特徴をいくつか取り上げてみましょう。

Dittoに注目

Dittoは、必ずしも中央サーバーを必要とせずにデバイス間の直接同期を可能にするピアツーピアアーキテクチャで際立っています。主な特徴は以下の通りです。

  • オフライン優先設計:アプリケーションは完全にオフラインで機能し、接続が回復すると同期します。
  • ピアツーピア同期:デバイス間の直接同期が可能で、ローカルでの共同作業に特に役立ちます。これはRealmユーザーにとって新しい機能です。
  • 競合の解決:同時更新を処理するための自動競合解決機能が組み込まれています。
  • クロスプラットフォームのサポート:iOS、Android、ウェブプラットフォームで動作します。
  • 柔軟な展開:ピアツーピアモード、クライアントサーバーモード、または両者のハイブリッドで展開可能。

Ditto architecture

マーケティング面はさておき、私たちは、間もなく廃止されるプラットフォームから(安全かつスムーズに)移行するためのオプションを検討しているため、ここでは現実的な対応をしたいと考えています。
技術的な提供内容を分析してみましょう。

  • MongoDB用コネクタ:MongoDBと直接統合し、DittoのBig peerにデータを投入するコネクタがまもなく利用可能になる予定であると宣伝されていますが、まだ利用可能にはなっていません。
  • サポート:MongoDBは他の有名なソリューションと同様に、エンタープライズグレードのサポートで知られており、無料のコミュニティオプション(フォーラム、ドキュメントなど)を提供し、多数の有資格システムインテグレーターパートナーを抱えています。しかし、Dittoのこのようなトピックに関する提供はまだ証明されていません。隠そうとするのはやめましょう。この会社はまだ新しく、パートナーもそれほど多くないことは周知の事実です。
  • 真実の主な情報源:Dittoには、MongoDBやCouchbaseなどの他のDBのような真実の主な情報源がありません。私たちは、データ運用タスクの調整を一元化したり、あるいは「真実の唯一の情報源」を持つことに慣れていますが、Dittoは完全に分散されています。

完全な代替品か、それとも代替策か?

MongoDBが、解決策のないままほったらかしにされていたであろう現在のRealmに「逃げ道」を提供したのは良いことですが、個人的には、これは部分的な置き換えであり、完全な解決策ではないと見ています。Dittoが提供するアーキテクチャは、MongoDB realmやCouchbaseなどのソリューションで私たちが慣れ親しんできたサーバープッシュ&エッジプル型デプロイとは本当に異なります。すべてのユースケースに適合するとは限らない完全なエッジ分散パターンへの移行をユーザーに強いる。コネクタはまだプライベートベータ版の段階であり、実稼働環境向けのソリューションとしてさらに作業が必要であることを示している。一方で、開発者やアーキテクトは、今日の課題を解決する真のソリューションを見つけるために急ぐ必要がある。いずれにしてもコードの再構築は避けられず、規模の大小に関わらず アプリケーションの特定の部分は修正が必要となり、ユーザーへのアップデートの展開が必要となります。これは一般的に、ユーザーベースの規模や、データ層がプレゼンテーション層やビジネスロジック層からどの程度分離されているかによって、6ヶ月から最長12ヶ月を要します。
少なくとも次にどの道筋を進むかを計画し始めるには、あまり時間はありません。

ライブマイグレーションの課題

どのソリューションを選択するかに関わらず、本番環境のデータベースを移行するには、大きな課題があります。従来の移行アプローチでは、以下が必要になることがよくあります。

  1. アプリケーションのフリーズ
  2. システムのオフライン化
  3. 移行の実行
  4. 広範なテスト
  5. アプリケーションの再デプロイ

このプロセスは、大幅なダウンタイム、ユーザーのフラストレーション、潜在的なデータ不整合につながる可能性があります。B2Cアプリケーションの場合、ユーザーがアプリケーションを更新するタイミングを開発者が制御できないため、このアプローチは特に問題となります。

Gluesyncの紹介:シームレスなライブマイグレーションのためのソリューション

MOLO17では、異なるモバイルデータベースソリューション間のスムーズな移行を促進するツールの必要性を認識していました。そのため、スムーズで安全かつ高性能なライブマイグレーションを実行するように設計された高度なデータ統合プラットフォームであるGluesyncを開発しました。
Gluesyncはさまざまな移行シナリオに対応できますが、この記事では、異なるモバイルデータベースソリューション間の移行に利用できる例として、MongoDB Realm(Atlasでホスト)からCouchbase Mobile(Capellaまたはオンプレミスでホスト)への移行にGluesyncを適用することに焦点を当てます。

Gluesyncの主な機能:

  1. 双方向の同期:GluesyncはMongoDBとCouchbase間のデータの一貫性をリアルタイムで維持し、MongoDB RealmとCouchbase Mobileの展開から段階的な移行プロセスを可能にします。
  2. ゼロ・ダウンタイム:Gluesyncが2つのプラットフォーム間のデータ転送をバックグラウンドで処理するため、ユーザーはアプリケーションを中断することなく継続して使用できます。
  3. 段階的なユーザー移行: ユーザーがアプリケーションを更新する際に、データや機能を失うことなく、新しい Couchbase Mobile バックエンドにシームレスに移行できます。
  4. データの整合性: 高度な競合解決により、移行プロセス中も両方のプラットフォームでデータの整合性が維持されます。
  5. スケーラビリティ: 大規模な移行に対応するように設計された Gluesync は、大量のデータとユーザーを効率的に管理できます。

Gluesync による移行プロセス

  1. セットアップ: Gluesyncを構成して、MongoDB RealmとCouchbase Mobileインスタンスの両方に接続します。
  2. 初期同期: Gluesyncのスナップショット機能を使用して、Couchbase Mobileデータベースに初期一括データ転送を実行します。
  3. ライブ同期: GluesyncのビルトインCDCエンジン(MongoDBのストリームとCouchbase Eventingを活用)を使用して、移行期間中に両方のデータベースを同期させます。
  4. 段階的なロールアウト:Couchbase Mobile 統合を実装した更新後のアプリケーションをリリースします。ユーザーが更新すると、そのデータはシームレスに新しいバックエンドに移行します。
  5. 監視と検証:Gluesync に内蔵されたツールを使用して、移行の進捗状況を監視し、データの整合性を検証します。
  6. 完了:すべてのユーザーが移行を完了したら、MongoDB Realm インスタンスを安全に廃止できます。

すべては数回のクリックで完了します。Gluesyncのウェブユーザーインターフェースから、裏側でセットアップや設定を行う必要はありません。

MongoDB Realm to Couchbase Mobile via Gluesync

このアプローチが重要な理由

ユーザーの行動が予測できず、アプリケーションの更新を即座に実行できない B2C アプリケーションでは、ライブマイグレーション戦略が不可欠です。Gluesyncのアプローチにより、以下のことが可能になります。

  • データ損失のリスクを最小限に抑える
  • ユーザー体験を中断させない
  • マイグレーションのスケジュールに柔軟性を持たせる
  • 開発チームと運用チームの負担を軽減する

結論

MongoDB Realmが段階的に廃止されるにつれ、Couchbase Mobileなどの代替製品への移行が必要になります。MOLO17のGluesyncを使用すれば、この移行作業はそれほど困難なものではなくなります。当社のプラットフォームは、バックエンドインフラストラクチャをアップグレードしている間も、お客様の運用環境の安定性を維持し、ユーザーにダウンタイムが発生しないことを保証します。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください