Bearbeiten

Datenstreaming mit AKS

Azure App Service
Azure API Management
Azure Container Registry
Azure Cache for Redis
Azure Cosmos DB

Lösungsmöglichkeiten

Dieser Artikel ist ein Lösungsvorschlag. Wenn Sie möchten, dass wir diesen Artikel um weitere Informationen ergänzen, z. B. potenzielle Anwendungsfälle, alternative Dienste, Überlegungen zur Implementierung oder Preisempfehlungen, lassen Sie es uns über Feedback auf GitHub wissen.

In diesem Artikel wird eine Lösung für die Verwendung von Azure Kubernetes Service (AKS) zur schnellen Verarbeitung und Analyse einer großen Menge von Streamingdaten von Geräten vorgestellt.

Apache® und Apache Kafka und Apache Spark sind entweder eingetragene Marken oder Marken der Apache Software Foundation in den USA und/oder anderen Ländern. Die Verwendung dieser Markierungen impliziert kein Endorsement durch die Apache Software Foundation.

Aufbau

Architekturdiagramm, das zeigt, wie Streamingdaten von Geräten erfasst, verarbeitet und analysiert werden.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Sensoren generieren Daten und streamen diese an Azure API Management.
  2. Ein AKS-Cluster führt Microservices aus, die als Container hinter einem Netz aus Diensten bereitgestellt werden. Die Container werden mithilfe eines DevOps-Prozesses erstellt und in Azure Container Registry gespeichert.
  3. Ein Erfassungsdienst speichert Daten in Azure Cosmos DB.
  4. Ein Analysis-Dienst empfängt die Daten asynchron und streamt sie an Apache Kafka und Azure HDInsight.
  5. Wissenschaftliche Fachkräfte für Daten verwenden Machine Learning-Modelle und die Splunk-Plattform, um die Daten zu analysieren.
  6. Ein Verarbeitungsdienst verarbeitet die Daten und speichert das Ergebnis in Azure Database for PostgreSQL. Der Dienst speichert die Daten auch in Azure Cache for Redis zwischen.
  7. Eine Web-App, die in Azure App Service ausgeführt wird, erstellt Visualisierungen der Ergebnisse.

Komponenten

Die Lösung verwendet die folgenden Schlüsseltechnologien:

Szenariodetails

Diese Lösung eignet sich gut für ein Szenario, das Millionen von Datenpunkten umfasst, in denen die Datenquellen IoT-Geräte (Internet der Dinge), Sensoren und Fahrzeuge umfassen. In einer solchen Situation stellt die Verarbeitung dieser großen Datenmengen eine Herausforderung dar. Die schnelle Analyse der Daten ist eine weitere anspruchsvolle Aufgabe, da Organisationen versuchen, Einblicke in komplexe Szenarien zu erhalten.

Containerisierte Microservices in AKS sind ein wichtiger Bestandteil der Lösung. Diese eigenständigen Dienste erfassen und verarbeiten den Echtzeit-Datenstrom. Sie lassen sich je nach Bedarf skalieren. Die Portabilität der Container ermöglicht es, dass die Dienste in verschiedenen Umgebungen ausgeführt werden und Daten aus mehreren Quellen verarbeiten können. Zum Entwickeln und Bereitstellen der Microservices werden DevOps und Continuous Integration/Continuous Delivery (CI/CD) verwendet. Diese Ansätze verkürzen den Entwicklungszyklus.

Die Lösung verwendet Azure Cosmos DB, um die erfassten Daten zu speichern. Diese Datenbank skaliert Durchsatz und Speicher elastisch, weshalb sie gut für große Datenmengen geeignet ist.

Die Lösung verwendet außerdem Kafka. Diese Streamingplattform mit geringer Latenz verarbeitet Echtzeit-Datenfeeds mit extrem hoher Geschwindigkeit.

Eine weitere wichtige Lösungskomponente ist HDInsight, ein verwalteter Open-Source-Cloudanalysedienst. HDInsight vereinfacht die Ausführung von Big Data-Frameworks mit großem Volumen und Geschwindigkeit bei Verwendung von Apache Spark in Azure. Splunk unterstützt den Datenanalyseprozess. Diese Plattform erstellt Visualisierungen aus Echtzeitdaten und bietet Business Intelligence.

Mögliche Anwendungsfälle

Von dieser Lösung profitieren folgende Bereiche:

  • Fahrzeugsicherheit, insbesondere in der Automobilindustrie
  • Kundendienst im Einzelhandel und in anderen Branchen
  • Cloudlösungen im Gesundheitswesen
  • Finanztechnologielösungen in der Finanzindustrie

Nächste Schritte

Produktdokumentation:

Microsoft-Trainingsmodule: