Cosmos DB を使用したパーソナル化

API Apps
Container Instances
Cosmos DB

ソリューションのアイデア

この記事にさらに多くの情報 (想定されるユース ケース、代替サービス、実装に関する考慮事項、価格ガイダンスなど) の掲載をご希望の方は、GitHub のフィードバックでお知らせください。

すばやく分析情報を得るために、低待機時間と調整可能な整合性設定を使用して、顧客向けにパーソナライズされた推奨事項をリアルタイムで生成します

アーキテクチャ

アーキテクチャ図 このアーキテクチャの SVG をダウンロードしてください。

Data flow

  1. 買い物客やユーザーが、自分の資格情報を使用して eコマース アプリにサインインします。
  2. 買い物客やユーザーが注文すると、その注文は Azure API Apps に送られます。
  3. データが Cosmos DB (顧客の注文) に格納されます。
  4. 変更フィードが Cosmos DB で有効になり、使用可能なイベントのすべての変更が処理されます。
  5. Azure Databricks で Apache Spark を使用してデータがトレーニングされ、Cosmos DB (製品 + ユーザー ベクトル) に保存されます。
  6. Azure Container Service (Recommendation API) を使用して、eコマース ストア UI によって最新のおすすめがフェッチされます。

コンポーネント

このアーキテクチャには次のコンポーネントがあります。

  • Azure Web アプリは Azure App Service の一部です。 これは、Web アプリケーション、REST API、モバイル バックエンドをホストするための HTTP ベースのサービスです。 開発には、.NET、.NET Core、Java、Ruby、Node.js、PHP、Python のうち、お気に入りの言語をご利用いただけます。 アプリケーションの実行とスケーリングは、Windows ベースの環境と Linux ベースの環境の両方で容易に行うことができます。

  • Azure Cosmos DB は、大規模なデータをエラスティックに提供できる、複数モデルのデータベースです。 Azure Cosmos DB は、複数書き込みモデルでグローバルに分散されるアプリケーション向けに設計されました。

  • 変更フィードで、コンテナーに対して行われた変更が発生した順番で記録されている永続的な記録が提供されます。

  • Azure Container Instances では、コンテナーをサーバーレス Microsoft Azure 環境でオンデマンドで実行します。 Azure Container Instances は、コンテナーを実行するための、問題の少ない方法で、完全な Docker ホストまたは Kubernetes のインストールは必要ありません。

  • Azure Kubernetes Service では、推奨モデルなどのコンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化します。

  • Azure Databricks は、Microsoft Azure クラウド サービス プラットフォーム用に最適化された Data Analytics プラットフォームです。 Azure Databricks により、データ集中型アプリケーションを開発するための次の 2 つの環境が提供されます: Azure Databricks SQL Analytics と Azure Databricks ワークスペース。

考慮事項

コンテナー サービスの前にある API 管理には、レート調整、API のバージョン管理、ポリシーなど、さまざまな利点があります。 詳細については、「Azure API Management」をご覧ください。

スケーラビリティ

Azure Cosmos DB では、データベースとコンテナーに対して標準 (手動) または自動スケーリングのプロビジョニング スループットを構成できます。 Azure Cosmos DB で自動スケーリング プロビジョニング スループットを使用すると、お使いのデータベースまたはコンテナーのスループット (RU/秒) を自動的かつ即座にスケーリングできます。 ワークロードの可用性、待機時間、スループット、またはパフォーマンスに影響を与えずに、使用量に基づいてスループットがスケーリングされます。

Azure Synapse にはネイティブ Apache Spark 機能も用意されており、推奨モデルの開発とトレーニングのための代替オプションとして考えることができます。

パフォーマンスとスループットの要件を満たすように AKS クラスターをスケールします。 クラスターを十分に活用するためにポッドの数をスケールアップし、サービスの要件を満たすようにクラスターのノードをスケールすることに留意します。

次の手順