認証を使用するモバイルおよび Web 向けソーシャル アプリ

Azure App Service
Azure Functions
Azure の Traffic Manager
Visual Studio
Xamarin

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

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

このモバイル クライアント アプリでは、コンパニオン Web アプリとのソーシャル画像共有機能を提供します。 このアプリのバックエンド サービスは、Azure 関数を使ってバックグラウンドで画像処理を実行します。また、通知ハブを介して進行状況をユーザーに通知できます。 画像以外のデータは、Azure Cosmos DB に格納されます。 Web アプリは、Azure Traffic Manager を介してバックエンド サービスのデータと画像にアクセスします。

このソリューションのアーキテクチャで使用されている次のサービスを参照してください。

考えられるユース ケース

モバイル クライアント アプリはオフライン モードで動作するため、ネットワークに接続していなくても、画像の表示とアップロードを行うことができます。

アーキテクチャ

エンジニアから Application Insights へのルートを示すアーキテクチャの図。このアーキテクチャの SVG をダウンロードします。

データフロー

  1. Visual Studio と Xamarin を使用してアプリを作成します。
  2. Azure App Service Mobile Apps バックエンド サービスをアプリ ソリューションに追加します。
  3. ソーシャル ID プロバイダーを使用した認証を実装します。
  4. 画像以外のデータを Azure Cosmos DB に格納し、Azure Cache for Redis にキャッシュします。
  5. アップロードされた画像を Azure Blob Storage に保存します。
  6. 新しくアップロードされた画像に関するメッセージをキューに登録します。
  7. Azure Functions を使用してメッセージをデキューし、Blob Storage から取得した画像を処理します。
  8. 通知ハブを介して、ユーザーにプッシュ通知を送信します。
  9. Visual Studio App Center を使用してアプリのビルドとテストを行い、アプリを発行します。
  10. さまざまなデータセンターのサービス エンドポイントへのユーザー トラフィックの分散を制御します。
  11. Application Insights を使用してアプリ サービスを監視します。

Components

  • Visual Studio 2017 または Visual Studio for Mac で C# を使用して、Web フロントエンド、モバイル アプリ、およびバックエンド サービスを作成します。
  • Xamarin:C# と Azure SDK を使用して、iOS と Android 用のモバイル アプリを作成します。
  • Visual Studio App Center:App Center は、BitBucket、GitHub、Visual Studio Team Services からコードをプルすることで、継続的インテグレーションとデプロイ ワークフローを実現します。
  • App Service Web アプリは、顧客向けの Web アプリと、Web クライアントとモバイル クライアントの両方が使用するサービスをホストできます。
  • Azure Functions を使用して、サーバーレスのバックグラウンド処理を実行します。 たとえば、ある Azure 関数では、新しい BLOB がコンテナーに追加されたときにそのサイズを自動的に変更し、別の関数では、バックグラウンドの複数の画像を削除するためにキューのメッセージをリッスンします。
  • Application Insights:Application Insights を使用して、Web アプリの問題の検出、クラッシュの診断、使用状況の追跡を行います。 開発ライフサイクル全体で、情報に基づいた意思決定を行います。
  • Azure Cosmos DB は、フル マネージドの NoSQL ドキュメント データベース サービスです。 スキーマフリーのデータに対するクエリとトランザクション処理、予測可能で信頼性の高いパフォーマンス、迅速な開発を実現します。
  • Azure Queue Storage は、App Service バックエンドと Azure Functions の間の永続的なメッセージングに使用されます。
  • Blob Storage: 低コストで優れたスケーラビリティを活用するために、Azure Storage によってイメージ ファイルがホストされています。 多くの場合、Web アプリと Azure 関数間の通信は、BLOB トリガーと Azure Queue Storage を使用して実行されます。
  • Azure Notification Hubs は、スケーラブルなクロスプラットフォームのプッシュ通知に使用されます。
  • Azure Traffic Manager では、応答性と可用性の高いアプリケーションを提供するために、さまざまなデータセンターのサービス エンドポイントへのユーザー トラフィックの分散を制御します。

次のステップ