AKS を使用したデータ ストリーミング
ソリューションのアイデア
この記事ではソリューションのアイデアについて説明します。 クラウド アーキテクトはこのガイダンスを使用すると、このアーキテクチャの一般的な実装の主要コンポーネントを視覚化しやすくなります。 ワークロードの特定の要件に適合する、適切に設計されたソリューションを設計するための出発点として、この記事を使用してください。
この記事では、Azure Kubernetes Service (AKS) を使用してデバイスからの大量のストリーミング データをすばやく処理および分析するためのソリューションについて説明します。
Apache®、 Apache Kafka、 Apache Spark は、米国およびその他の国の Apache Software Foundation の登録商標または商標です。 これらのマークを使用することが、Apache Software Foundation による保証を意味するものではありません。 Splunk はシスコの登録商標です。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
- センサーによってデータが生成され、Azure API Management にストリーミングされます。
- AKS クラスターで、サービス メッシュの背後にコンテナーとしてデプロイされているマイクロサービスが実行されます。 コンテナーは、DevOps プロセスを使用して構築されます。 コンテナー イメージは Azure Container Registry に格納されます。
- AKS の取り込みサービスは、Azure Cosmos DB にデータを格納します。
- 非同期的に、AKS の分析サービスはデータを受信し、Azure HDInsight 上の Apache Kafka にストリーム配信します。
- データ サイエンティストは、Azure HDInsights 上の machine 学習モデル Splunk プラットフォームを使用してデータを分析します。
- AKS の処理サービスはデータを処理し、その結果を Azure Database for PostgreSQL に格納します。 また、このサービスにより Azure Cache for Redis のデータがキャッシュされます。
- Azure App Service で実行されている Web アプリで、結果の視覚化が作成されます。
コンポーネント
AKS は、マネージド Kubernetes コンテナー オーケストレーション サービスです。 このアーキテクチャでは、センサーからストリーミング データを取り込み、処理し、さまざまなストレージ層と分析レイヤーにルーティングするコンテナー化されたマイクロサービスをホストします。
Apache Kafka は、高スループットで待機時間の短いデータ フィード用に設計された分散イベント ストリーミング プラットフォームです。 このアーキテクチャでは、AKS マイクロサービスからリアルタイム データを受信し、大規模な分析のために Azure HDInsight にストリーム配信します。
API Management は、API の発行、セキュリティ保護、および分析のためのゲートウェイです。 このアーキテクチャでは、センサーから受信データを受信し、処理のために AKS クラスターにルーティングします。
App Service は、Web アプリケーションを構築およびホストするためのフル マネージド プラットフォームです。 このアーキテクチャでは、PostgreSQL データベースから処理された結果を視覚化する Web アプリを実行します。
Azure Cache for Redis は、高速データ アクセスをサポートするメモリ内データ ストアです。 このアーキテクチャでは、アクセスを高速化し、待機時間を短縮するために、AKS マイクロサービスから処理されたデータを一時的に格納します。
Azure Cosmos DB は、グローバルに分散された NoSQL データベース サービスです。 このアーキテクチャでは、AKS マイクロサービスから取り込まれたデータを格納します。
Azure Database for PostgreSQL は、PostgreSQL に基づくマネージド リレーショナル データベース サービスです。 このアーキテクチャでは、ダウンストリームのレポートと視覚化のために、AKS マイクロサービスから処理された結果を格納します。
Azure HDInsight は、オープンソース フレームワークを使用したビッグ データ分析のためのクラウドベースのサービスです。 このアーキテクチャでは、Apache Spark ジョブを実行して Kafka からストリーミングされたデータを分析し、機械学習ワークロードをサポートします。
Azure Pipelines は、Azure DevOps 内の継続的インテグレーションおよび継続的デリバリー (CI/CD) サービスです。 このアーキテクチャでは、コンテナー化されたマイクロサービスを構築して AKS にデプロイし、自動化された反復可能な配信ワークフローを有効にします。
Container Registry は、マネージド Docker コンテナー レジストリ サービスです。 このアーキテクチャでは、マイクロサービスを含むコンテナー イメージを格納します。
Splunk は、マシンで生成されたデータのデータ分析と視覚化のプラットフォームです。 このアーキテクチャでは、Azure HDInsight からのリアルタイム データを分析し、ビジネス インテリジェンス用のビジュアル ダッシュボードを作成します。
シナリオの詳細
このソリューションは、何百万ものデータ ポイントを扱うシナリオに適しています。データ ソースにはモノのインターネット (IoT) デバイス、センサー、自動車などが含まれます。 このような場合、大量のデータを処理することが課題の 1 つです。 組織は複雑なシナリオに関する分析情報を得ようとするため、データを迅速に分析することも要求の多いタスクの 1 つです。
AKS のコンテナー化されたマイクロサービスは、ソリューションの重要な部分を形成しています。 これらの自己完結型サービスでは、リアルタイム データ ストリームが取り込まれ、処理されます。 また、必要に応じてスケーリングすることもできます。 コンテナーの移植性により、サービスをさまざまな環境で実行し、複数のソースからのデータを処理できます。 マイクロサービスの開発やデプロイには、DevOps と継続的インテグレーション/継続的デリバリー (CI/CD) が使用されます。 これらのアプローチにより、開発サイクルが短縮されます。
このソリューションでは、取り込まれたデータの格納に Azure Cosmos DB が使用されます。 このデータベースは、スループットやストレージの柔軟なスケーリングが可能なため、大量のデータにも対応できます。
このソリューションでは、Apache Kafka も使用されます。 この低遅延ストリーミング プラットフォームでは、リアルタイムのデータ フィードが非常に高速に処理されます。
もう 1 つの主要なソリューション コンポーネントは Azure HDInsight です。これは、最も一般的なオープンソース フレームワークを使用して大量のデータを効率的に処理できるマネージド クラウド サービスです。 Azure HDInsight を使用すると、Azure で Apache Spark を使用しながら、大規模かつ高速でビッグ データ フレームワークを簡単に実行できます。 Splunk は、データ分析プロセスに役立ちます。 Splunk は、リアルタイム データから視覚化を作成し、ビジネス インテリジェンスを提供します。
考えられるユース ケース
このソリューションは、次のような分野に役立ちます。
- 自動車の安全性 (特に自動車業界)
- 顧客サービス (小売業界など)
- 医療クラウド ソリューション
- 金融技術ソリューション (金融業界)
次のステップ
製品ドキュメント:
- Azure Cache for Redis について
- Azure API Management とは
- App Service の概要
- Azure Kubernetes サービス
- Azure Container Registry の概要
- Azure Cosmos DB へようこそ
- Azure Database for PostgreSQL とは
- Azure HDInsight とは
- Azure Pipelines とは
Microsoft トレーニング モジュール:
- Azure Container Registry を使用してコンテナー イメージをビルドして格納する
- Azure App Service プランを構成する
- Azure Cosmos DB を操作する
- Azure Database for PostgreSQL を作成して接続する
- Azure Cache for Redis の開発
- API Management の詳細
- Azure HDInsight の概要