Azure IoT-ReferenzarchitekturAzure IoT reference architecture

Diese Referenzarchitektur zeigt eine empfohlene Architektur für IoT-Anwendungen in Azure mit PaaS-Komponenten (Platform-as-a-Service).This reference architecture shows a recommended architecture for IoT applications on Azure using PaaS (platform-as-a-service) components.

Diagramm der Architektur

IoT-Anwendungen (Internet of Things = Internet der Dinge) können als Dinge (Geräte) beschrieben werden, die Daten senden, aus denen Erkenntnisse generiert werden.IoT applications can be described as things (devices) sending data that generates insights. Diese Erkenntnisse generieren Aktionen zum Verbessern eines Unternehmens oder Prozesses.These insights generate actions to improve a business or process. Ein Beispiel ist ein Modul (das „Ding“), das Temperaturdaten sendet.An example is an engine (the thing) sending temperature data. Diese Daten werden ausgewertet, um zu ermitteln, ob das Modul wie erwartet funktioniert (die „Erkenntnis“).This data is used to evaluate whether the engine is performing as expected (the insight). Die Erkenntnis wird verwendet, um den Wartungszeitplan für das Modul (die „Aktion“) proaktiv zu priorisieren.The insight is used to proactively prioritize the maintenance schedule for the engine (the action).

Diese Referenzarchitektur verwendet Azure-PaaS-Komponenten (Platform-as-a-Service).This reference architecture uses Azure PaaS (platform-as-a-service) components. Folgende weitere Optionen sind für die Erstellung von IoT-Lösungen in Azure verfügbar:Other options for building IoT solutions on Azure include:

  • Azure IoT Central.Azure IoT Central. IoT Central ist eine vollständig verwaltete SaaS-Lösung (Software-as-a-Service).IoT Central is a fully managed SaaS (software-as-a-service) solution. Sie abstrahiert die technischen Auswahlmöglichkeiten und erlaubt es Ihnen, sich ausschließlich auf Ihre Lösung zu konzentrieren.It abstracts the technical choices and lets you focus on your solution exclusively. Diese Einfachheit bringt jedoch den Nachteil mit sich, dass die Lösung weniger anpassbar ist als eine PaaS-basierte Lösung.This simplicity comes with a tradeoff in being less customizable than a PaaS-based solution.
  • Verwendung von OSS-Komponenten (Open Source Software) wie dem SMACK-Stapel (Spark, Mesos, Akka, Cassandra, Kafka), die auf Azure-VMs bereitgestellt werden.Using OSS components such as the SMACK stack (Spark, Mesos, Akka, Cassandra, Kafka) deployed on Azure VMs. Dieser Ansatz bietet umfangreiche Steuerungsmöglichkeiten, ist jedoch komplexer.This approach offers a great deal of control but is more complex.

Allgemein betrachtet gibt es zwei Möglichkeiten zum Verarbeiten von Telemetriedaten: warmer Pfad (Hot Path) und kalter Pfad (Cold Path).At a high level, there are two ways to process telemetry data, hot path and cold path. Der Unterschied besteht in den Anforderungen hinsichtlich der Wartezeit und des Datenzugriffs.The difference has to do with requirements for latency and data access.

  • Der warme Pfad analysiert Daten nahezu in Echtzeit, sobald sie eintreffen.The hot path analyzes data in near-real-time, as it arrives. Im warmen Pfad müssen Telemetriedaten mit sehr geringer Wartezeit verarbeitet werden.In the hot path, telemetry must be processed with very low latency. Der warme Pfad wird in der Regel mithilfe eines Moduls zur Streamverarbeitung implementiert.The hot path is typically implemented using a stream processing engine. Die Ausgabe kann eine Warnung auslösen oder in ein strukturiertes Format geschrieben werden, das mit Analysetools abgefragt werden kann.The output may trigger an alert, or be written to a structured format that can be queried using analytical tools.
  • Der kalte Pfad führt eine Batchverarbeitung in längeren Intervallen (stündlich oder täglich) aus.The cold path performs batch processing at longer intervals (hourly or daily). In der Regel verarbeitet der kalte Pfad große Datenmengen, die Ergebnisse müssen jedoch nicht so zeitnah sein wie beim warmen Pfad.The cold path typically operates over large volumes of data, but the results don't need to be as timely as the hot path. Im kalten Pfad werden Telemetrierohdaten erfasst und dann in einen Batchprozess gespeist.In the cold path, raw telemetry is captured and then fed into a batch process.

AufbauArchitecture

Diese Architektur umfasst die folgenden Komponenten.This architecture consists of the following components. Einige Anwendungen erfordern möglicherweise nicht alle der hier aufgeführten Komponenten.Some applications may not require every component listed here.

IoT-Geräte.IoT devices. Geräte können sicher in der Cloud registriert werden und zum Senden und Empfangen von Daten eine Verbindung mit der Cloud herstellen.Devices can securely register with the cloud, and can connect to the cloud to send and receive data. Einige Geräte sind u. U. Edgegeräte, die Daten auf dem Gerät selbst oder in einem Bereichsgateway verarbeiten.Some devices may be edge devices that perform some data processing on the device itself or in a field gateway. Wir empfehlen für die Edgeverarbeitung Azure IoT Edge.We recommend Azure IoT Edge for edge processing.

Cloudgateway.Cloud gateway. Ein Cloudgateway stellt einen Cloudhub bereit, über den Geräte eine sichere Verbindung mit der Cloud herstellen und Daten senden können.A cloud gateway provides a cloud hub for devices to connect securely to the cloud and send data. Es bietet zudem Geräteverwaltungsfunktionen, einschließlich der Steuerung von Geräten mit Befehlen.It also provides device management, capabilities, including command and control of devices. Für das Cloudgateway empfehlen wir IoT Hub.For the cloud gateway, we recommend IoT Hub. IoT Hub ist ein gehosteter Clouddienst, der Ereignisse von Geräten erfasst und als Nachrichtenbroker zwischen Geräten und Back-End-Diensten fungiert.IoT Hub is a hosted cloud service that ingests events from devices, acting as a message broker between devices and backend services. IoT Hub bietet sichere Konnektivität, Ereigniserfassung, bidirektionale Kommunikation und Geräteverwaltung.IoT Hub provides secure connectivity, event ingestion, bidirectional communication, and device management.

Gerätebereitstellung.Device provisioning. Zum Registrieren und Verbinden einer großen Anzahl von Geräten empfehlen wir IoT Hub Device Provisioning Service (DPS).For registering and connecting large sets of devices, we recommend using the IoT Hub Device Provisioning Service (DPS). Mit DPS können Sie Geräte bedarfsorientiert bestimmten Azure IoT Hub-Endpunkten zuweisen und registrieren.DPS lets you assign and register devices to specific Azure IoT Hub endpoints at scale.

Streamverarbeitung:Stream processing. Die Streamverarbeitung analysiert große Streams von Datensätzen und wertet die Regeln für diese Streams aus.Stream processing analyzes large streams of data records and evaluates rules for those streams. Für die Streamverarbeitung empfehlen wir Azure Stream Analytics.For stream processing, we recommend Azure Stream Analytics. Stream Analytics kann komplexe Analysen in großem Umfang mit Zeitfensterfunktionen, Streamaggregationen und externen Datenquellenverknüpfungen ausführen.Stream Analytics can execute complex analysis at scale, using time windowing functions, stream aggregations, and external data source joins. Eine weitere Option ist Apache Spark in Azure Databricks.Another option is Apache Spark on Azure Databricks.

Machine Learning ermöglicht die Ausführung von Vorhersagealgorithmen für historische Telemetriedaten und somit Szenarien wie Predictive Maintenance.Machine learning allows predictive algorithms to be executed over historical telemetry data, enabling scenarios such as predictive maintenance. Für Machine Learning empfehlen wir Azure Machine Learning.For machine learning, we recommend Azure Machine Learning.

Der Speicher für warme Daten enthält Daten, die direkt vom Gerät für die Berichterstellung und Visualisierung verfügbar sein müssen.Warm path storage holds data that must be available immediately from device for reporting and visualization. Für den Speicher für warme Daten empfehlen wir Cosmos DB.For warm path storage, we recommend Cosmos DB. Cosmos DB ist eine global verteilte Datenbank, die mehrere Modelle unterstützt.Cosmos DB is a globally distributed, multi-model database.

Der Speicher für kalte Daten enthält Daten, die über einen längeren Zeitraum gespeichert und zur Batchverarbeitung verwendet werden.Cold path storage holds data that is kept longer-term and is used for batch processing. Für den Speicher für kalte Daten empfehlen wir Azure Blob Storage.For cold path storage, we recommend Azure Blob Storage. Daten können in Blob Storage kostengünstig für unbegrenzte Zeit archiviert werden und sind dort für die Batchverarbeitung leicht zugänglich.Data can be archived in Blob storage indefinitely at low cost, and is easily accessible for batch processing.

Durch die Datentransformation wird der Telemetriedatenstrom bearbeitet oder aggregiert.Data transformation manipulates or aggregates the telemetry stream. Beispiele hierfür sind die Protokolltransformation, z. B. das Konvertieren von Binärdaten in JSON, oder das Kombinieren von Datenpunkten.Examples include protocol transformation, such as converting binary data to JSON, or combining data points. Wenn die Daten transformiert werden müssen, bevor sie IoT Hub erreichen, empfehlen wir die Verwendung eines Protokollgateways (nicht dargestellt).If the data must be transformed before reaching IoT Hub, we recommend using a protocol gateway (not shown). Andernfalls können die Daten transformiert werden, nachdem sie IoT Hub erreicht haben.Otherwise, data can be transformed after it reaches IoT Hub. In diesem Fall empfehlen wir die Verwendung von Azure Functions, da diese Lösung standardmäßig eine Integration mit IoT Hub, Cosmos DB und Blob Storage bietet.In that case, we recommend using Azure Functions, which has built-in integration with IoT Hub, Cosmos DB, and Blob Storage.

Durch die Integration von Geschäftsprozessen werden basierend auf den Erkenntnissen aus den Gerätedaten Aktionen ausgeführt.Business process integration performs actions based on insights from the device data. Bei diesen Aktionen kann es sich um das Speichern von Informationsmeldungen, Auslösen von Alarmen, Senden von E-Mails oder SMS oder die Integration in CRM handeln.This could include storing informational messages, raising alarms, sending email or SMS messages, or integrating with CRM. Für die Integration von Geschäftsprozessen empfehlen wir Azure Logic Apps.We recommend using Azure Logic Apps for business process integration.

Die Benutzerverwaltung beschränkt die Benutzer oder Gruppen, die Aktionen auf Geräten ausführen können (z. B. Aktualisierung der Firmware).User management restricts which users or groups can perform actions on devices, such as upgrading firmware. Außerdem definiert sie Funktionen für Benutzer in Anwendungen.It also defines capabilities for users in applications. Für die Authentifizierung und Autorisierung von Benutzern empfehlen wir Azure Active Directory.We recommend using Azure Active Directory to authenticate and authorize users.

Überlegungen zur SkalierbarkeitScalability considerations

Eine IoT-Anwendung sollte in Form von separaten Diensten erstellt werden, die unabhängig voneinander skaliert werden können.An IoT application should be built as discrete services that can scale independently. Beachten Sie die folgenden Hinweise zur Skalierbarkeit:Consider the following scalability points:

IoTHub.IoTHub. Beachten Sie für IoT Hub die folgenden Skalierungsfaktoren:For IoT Hub, consider the following scale factors:

  • Maximales tägliches Kontingent von Nachrichten, die an IoT Hub gesendet werdenThe maximum daily quota of messages into IoT Hub.
  • Kontingent von verbundenen Geräten in einer IoT Hub-InstanzThe quota of connected devices in an IoT Hub instance.
  • Erfassungsdurchsatz, d. h. wie schnell Nachrichten von IoT Hub erfasst werden könnenIngestion throughput — how quickly IoT Hub can ingest messages.
  • Verarbeitungsdurchsatz, d. h. wie schnell die eingehenden Nachrichten verarbeitet werdenProcessing throughput — how quickly the incoming messages are processed.

Jede IoT Hub-Instanz wird mit einer bestimmten Anzahl von Einheiten zu einem spezifischen Tarif bereitgestellt.Each IoT hub is provisioned with a certain number of units in a specific tier. Der Tarif und die Anzahl von Einheiten bestimmen das maximale tägliche Kontingent von Nachrichten, die Geräte an den Hub senden können.The tier and number of units determine the maximum daily quota of messages that devices can send to the hub. Weitere Informationen finden Sie in der Referenz zu IoT Hub-Kontingenten und -Drosselung.For more information, see IoT Hub quotas and throttling. Sie können einen Hub ohne Unterbrechung bestehender Vorgänge hochskalieren.You can scale up a hub without interrupting existing operations.

Stream Analytics.Stream Analytics. Stream Analytics-Aufträge lassen sich am besten skalieren, wenn sie an allen Punkten in der Stream Analytics-Pipeline parallel sind – von der Eingabe der Abfrage bis zur Ausgabe.Stream Analytics jobs scale best if they are parallel at all points in the Stream Analytics pipeline, from input to query to output. Bei einem vollständig parallelen Auftrag kann Stream Analytics die Arbeit auf mehrere Computeknoten aufteilen.A fully parallel job allows Stream Analytics to split the work across multiple compute nodes. Andernfalls muss Stream Analytics die Streamdaten an einer Stelle kombinieren.Otherwise, Stream Analytics has to combine the stream data into one place. Weitere Informationen finden Sie unter Nutzen der Parallelisierung von Abfragen in Azure Stream Analytics.For more information, see Leverage query parallelization in Azure Stream Analytics.

IoT Hub partitioniert Gerätenachrichten automatisch auf Grundlage der Geräte-ID.IoT Hub automatically partitions device messages based on the device ID. Alle Nachrichten von einem bestimmten Gerät gelangen immer auf dieselbe Partition, eine einzelne Partition enthält jedoch Nachrichten von mehreren Geräten.All of the messages from a particular device will always arrive on the same partition, but a single partition will have messages from multiple devices. Aus diesem Grund ist die Partitions-ID die Einheit der Parallelisierung.Therefore, the unit of parallelization is the partition ID.

Funktionen.Functions. Beim Lesen vom Event Hubs-Endpunkt gilt eine maximal Anzahl von Funktionsinstanzen pro Event Hub-Partition.When reading from the Event Hubs endpoint, there is a maximum of function instance per event hub partition. Die maximale Verarbeitungsrate hängt davon ab, wie schnell eine Funktionsinstanz die Ereignisse aus einer einzelnen Partition verarbeiten kann.The maximum processing rate is determined by how fast one function instance can process the events from a single partition. Die Funktion sollte Nachrichten in Batches verarbeiten.The function should process messages in batches.

Cosmos DB:Cosmos DB. Um eine Cosmos DB-Sammlung aufzuskalieren, erstellen Sie die Sammlung mit einem Partitionsschlüssel, den Sie in jedem Dokument hinzufügen, das Sie schreiben.To scale out a Cosmos DB collection, create the collection with a partition key and include the partition key in each document that you write. Weitere Informationen finden Sie unter Bewährte Methoden bei der Auswahl eines Partitionsschlüssels.For more information, see Best practices when choosing a partition key.

  • Wenn Sie ein einziges Dokument pro Gerät speichern und aktualisieren, eignet sich die Geräte-ID als Partitionsschlüssel.If you store and update a single document per device, the device ID is a good partition key. Schreibvorgänge werden gleichmäßig auf die Schlüssel verteilt.Writes are evenly distributed across the keys. Die Größe der einzelnen Partitionen ist streng begrenzt, da ein einzelnes Dokument für jeden Schlüsselwert vorhanden ist.The size of each partition is strictly bounded, because there is a single document for each key value.
  • Wenn Sie für jede Gerätenachricht ein separates Dokument speichern, wäre das Limit von 10 GB pro Partition bei der Verwendung der Geräte-ID als Partitionsschlüssel schnell überschritten.If you store a separate document for every device message, using the device ID as a partition key would quickly exceed the 10-GB limit per partition. In diesem Fall eignet sich die Nachrichten-ID besser als Partitionsschlüssel.Message ID is a better partition key in that case. Die Geräte-ID schließen Sie zum Indizieren und Ausführen von Abfragen in der Regel trotzdem in das Dokument ein.Typically you would still include device ID in the document for indexing and querying.

SicherheitshinweiseSecurity considerations

Vertrauenswürdige und sichere KommunikationTrustworthy and secure communication

Alle Informationen, die mit einem Gerät ausgetauscht werden, müssen vertrauenswürdig sein.All information received from and sent to a device must be trustworthy. Sofern ein Gerät die folgenden Kryptografiefunktionen nicht unterstützt, sollte es auf lokale Netzwerke beschränkt werden, und die gesamte Kommunikation zwischen den Netzwerken sollte über ein Bereichsgateway geleitet werden:Unless a device can support the following cryptographic capabilities, it should be constrained to local networks and all internetwork communication should go through a field gateway:

  • Datenverschlüsselung mit einem nachweislich sicheren, öffentlich analysierten und umfassend implementierten Verschlüsselungsalgorithmus für den symmetrischen Schlüssel.Data encryption with a provably secure, publicly analyzed, and broadly implemented symmetric-key encryption algorithm.
  • Digitale Signatur mit einem nachweislich sicheren, öffentlich analysierten und umfassend implementierten Signaturalgorithmus für den symmetrischen Schlüssel.Digital signature with a provably secure, publicly analyzed, and broadly implemented symmetric-key signature algorithm.
  • Unterstützung für TLS 1.2 für TCP oder andere streambasierte Kommunikationspfade oder DTLS 1.2 für datagrammbasierte Kommunikationspfade.Support for either TLS 1.2 for TCP or other stream-based communication paths or DTLS 1.2 for datagram-based communication paths. Die Unterstützung der Verarbeitung von x.509-Zertifikaten ist optional und kann durch den bezüglich Compute und Übertragung effizienteren Modus mit vorinstallierten Schlüsseln für TLS ersetzt werden (dieser Modus kann mit Unterstützung für die AES- und SHA-2-Algorithmen implementiert werden).Support of X.509 certificate handling is optional and can be replaced by the more compute-efficient and wire-efficient pre-shared key mode for TLS, which can be implemented with support for the AES and SHA-2 algorithms.
  • Aktualisierbarer Schlüsselspeicher und Schlüssel pro Gerät.Updateable key-store and per-device keys. Jedes Gerät muss über eindeutige Schlüsseldaten oder Token verfügen, die das Gerät gegenüber dem System identifizieren.Each device must have unique key material or tokens that identify it toward the system. Die Geräte müssen den Schlüssel sicher auf dem Gerät speichern (z. B. mit einem sicheren Schlüsselspeicher).The devices should store the key securely on the device (for example, using a secure key-store). Das Gerät muss die Schlüssel oder Token in regelmäßigen Abständen oder reaktiv in Notfallsituationen (z. B. bei einer Systemverletzung) aktualisieren können.The device should be able to update the keys or tokens periodically, or reactively in emergency situations such as a system breach.
  • Die Firmware und die Anwendungssoftware auf dem Gerät müssen Updates zur Reparatur erkannter Sicherheitsrisiken zulassen.The firmware and application software on the device must allow for updates to enable the repair of discovered security vulnerabilities.

Viele Geräte sind jedoch zu eingeschränkt, um diese Anforderungen zu unterstützen.However, many devices are too constrained to support these requirements. In diesem Fall sollte ein Bereichsgateway verwendet werden.In that case, a field gateway should be used. Geräte stellen über ein lokales Netzwerk eine sichere Verbindung mit dem Bereichsgateway her, und das Gateway ermöglicht die sichere Kommunikation mit der Cloud.Devices connect securely to the field gateway through a local area network, and the gateway enables secure communication to the cloud.

Physische ManipulationssicherungPhysical tamper-proofing

Zum Gewährleisten der Sicherheit, Integrität und Vertrauenswürdigkeit des gesamten Systems wird dringend empfohlen, Geräte mit integrierten Features zum Schutz vor physischen Manipulationsversuchen zu verwenden.It is strongly recommended that device design incorporates features that defend against physical manipulation attempts, to help ensure the security integrity and trustworthiness of the overall system.

Beispiel:For example:

  • Nutzen Sie Mikrocontroller/Mikroprozessoren oder zusätzliche Hardware, die eine sichere Speicherung und Verwendung von kryptografischen Schlüsseldaten bieten, z. B. die Integration von TPM (Trusted Platform Module).Choose microcontrollers/microprocessors or auxiliary hardware that provides secure storage and use of cryptographic key material, such as trusted platform module (TPM) integration.
  • Im TPM sollten ein sicheres Startladeprogramm und sicheres Laden von Software verankert sein.Secure boot loader and secure software loading, anchored in the TPM.
  • Verwenden Sie Sensoren, um Eindringversuche und Versuche zur Manipulation der Geräteumgebung mit Warnungen sowie ggf. „digitaler Selbstzerstörung“ des Geräts zu erkennen.Use sensors to detect intrusion attempts and attempts to manipulate the device environment with alerting and potentially "digital self-destruction" of the device.

Weitere Überlegungen zur Sicherheit finden Sie unter Internet der Dinge (IoT) – Sicherheitsarchitektur.For additional security considerations, see Internet of Things (IoT) security architecture.

Überwachung und ProtokollierungMonitoring and logging

Protokollierungs- und Überwachungssysteme werden verwendet, um zu ermitteln, ob die Lösung funktioniert, und um Probleme zu beheben.Logging and monitoring systems are used to determine whether the solution is functioning and to help troubleshoot problems. Mithilfe von Überwachungs- und Protokollierungssystemen lassen sich folgende betriebliche Fragen beantworten:Monitoring and logging systems help answer the following operational questions:

  • Liegt für Geräte oder Systeme eine Fehlerbedingung vor?Are devices or systems in an error condition?
  • Sind Geräte oder Systeme korrekt konfiguriert?Are devices or systems correctly configured?
  • Generieren Geräte oder Systeme genaue Daten?Are devices or systems generating accurate data?
  • Erfüllen Systeme die Erwartungen des Unternehmens und der Endkunden?Are systems meeting the expectations of both the business and end customers?

Protokollierungs- und Überwachungstools bestehen in der Regel aus den folgenden vier Komponenten:Logging and monitoring tools are typically comprised of the following four components:

  • Tools zur Visualisierung der Systemleistung und Zeitachsenvisualisierung für die Überwachung des Systems und die grundlegende ProblembehandlungSystem performance and timeline visualization tools to monitor the system and for basic troubleshooting.
  • Gepufferte Datenerfassung zum Puffern von ProtokolldatenBuffered data ingestion, to buffer log data.
  • Persistenter Speicher zum Speichern von ProtokolldatenPersistence store to store log data.
  • Such- und Abfragefunktionen zum Anzeigen von Protokolldaten für die detaillierte ProblembehandlungSearch and query capabilities, to view log data for use in detailed troubleshooting.

Überwachungssysteme liefern Erkenntnisse zur Integrität, Sicherheit, Stabilität und Leistung einer IoT-Lösung.Monitoring systems provide insights into the health, security, and stability, and performance of an IoT solution. Diese Systeme können auch eine detailliertere Ansicht bieten, Änderungen an der Komponentenkonfiguration aufzeichnen und extrahierte Protokollierungsdaten zum Erkennen potenzieller Sicherheitsrisiken bereitstellen, den Incident Management-Prozess optimieren und den Systembesitzer bei der Problembehandlung unterstützen.These systems can also provide a more detailed view, recording component configuration changes and providing extracted logging data that can surface potential security vulnerabilities, enhance the incident management process, and help the owner of the system troubleshoot problems. Umfassende Überwachungslösungen bieten die Möglichkeit, Informationen für bestimmte Subsysteme abzufragen oder für mehrere Subsysteme zu aggregieren.Comprehensive monitoring solutions include the ability to query information for specific subsystems or aggregating across multiple subsystems.

Beim Entwickeln eines Überwachungssystems sollten in einem ersten Schritt der ordnungsgemäße Betrieb sowie die Konformitäts- und Überwachungsanforderungen definiert werden.Monitoring system development should begin by defining healthy operation, regulatory compliance, and audit requirements. Folgende Metriken können erfasst werden:Metrics collected may include:

  • Physische Geräte, Edgegeräte und Infrastrukturkomponenten, die Konfigurationsänderungen meldenPhysical devices, edge devices, and infrastructure components reporting configuration changes.
  • Anwendungen, die Konfigurationsänderungen, Sicherheitsüberwachungsprotokolle, Anforderungsraten, Antwortzeiten, Fehlerraten und Garbage Collection-Statistiken für verwaltete Sprachen meldenApplications reporting configuration changes, security audit logs, request rates, response times, error rates, and garbage collection statistics for managed languages.
  • Datenbanken, persistente Speicher und Caches, die die Abfrage- und Schreibleistung, Schemaänderungen, Sicherheitsüberwachungsprotokolle, Sperren oder Deadlocks, die Indexleistung sowie die CPU-, Speicher- und Datenträgerauslastung meldenDatabases, persistence stores, and caches reporting query and write performance, schema changes, security audit log, locks or deadlocks, index performance, CPU, memory, and disk usage.
  • Verwaltete Dienste (IaaS, PaaS, SaaS und FaaS), die für die Integrität und Leistung abhängiger Systeme relevante Integritätsmetriken und Konfigurationsänderungen meldenManaged services (IaaS, PaaS, SaaS, and FaaS) reporting health metrics and configuration changes that impact dependent system health and performance.

Die Visualisierung von Überwachungsmetriken weist Bediener auf Instabilitäten des Systems hin und unterstützt sie bei der Reaktion auf Vorfälle.Visualization of monitoring metrics alert operators to system instabilities and facilitate incident response.

Ablaufverfolgung von TelemetriedatenTracing telemetry

Mithilfe der Ablaufverfolgung von Telemetriedaten kann der Bediener nachverfolgen, über welche Pfade Telemetriedaten nach ihrer Erstellung im System übertragen werden.Tracing telemetry allows an operator to follow the journey of a piece of telemetry from creation through the system. Die Ablaufverfolgung ist wichtig für das Debuggen und die Problembehandlung.Tracing is important for debugging and troubleshooting. Für IoT-Lösungen, die Azure IoT Hub und die IoT Hub-Geräte-SDKs verwenden, können Ablaufverfolgungsdatagramme aus den zwischen der Cloud und dem Gerät ausgetauschten Nachrichten erstellt und in den Telemetriedatenstrom eingeschlossen werden.For IoT solutions that use Azure IoT Hub and the IoT Hub Device SDKs, tracing datagrams can be originated as Cloud-to-Device messages and included in the telemetry stream.

ProtokollierungLogging

Protokollierungssysteme sind entscheidend für das Verständnis der von einer Lösung ausgeführten Aktionen oder Aktivitäten sowie der aufgetretenen Fehler und können die Behebung dieser Fehler erleichtern.Logging systems are integral in understanding what actions or activities a solution has performed, failures that have occurred, and can provide help in fixing those failures. Protokolle können analysiert werden, um Fehlerbedingungen zu verstehen und zu beheben, Leistungsmerkmale zu verbessern sowie die Konformität mit den geltenden Regeln und Bestimmungen sicherzustellen.Logs can be analyzed to help understand and remedy error conditions, enhance performance characteristics, and ensure compliance with governing rule and regulations.

Die Nur-Text-Protokollierung verursacht zwar geringere Vorlaufkosten für die Entwicklung, ist für einen Computer aber schwieriger zu analysieren und zu lesen.Though plain-text logging is lower impact on upfront development costs, it is more challenging for a machine to parse/read. Wir empfehlen die Verwendung einer strukturierten Protokollierung, da die gesammelten Informationen in diesem Fall sowohl für Computer analysierbar als auch für Menschen lesbar sind.We recommend structured logging be used, as collected information is both machine parsable and human readable. Bei der strukturierten Protokollierung enthalten die Protokollinformationen auch den situativen Kontext und Metadaten.Structured logging adds situational context and metadata to the log information. Eigenschaften haben bei der strukturierten Protokollierung Priorität und werden als Schlüssel-Wert-Paare oder mit einem festen Schema formatiert, um die Such- und Abfragefunktionen zu optimieren.In structured logging, properties are first class citizens formatted as key/value pairs, or with a fixed schema, to enhance search and query capabilities.

KostenbetrachtungCost considerations

Im Allgemeinen sollten Sie den Azure-Preisrechner verwenden, um Ihre Kosten zu ermitteln.In general, use the Azure pricing calculator to estimate costs. Weitere Überlegungen finden Sie im Microsoft Azure Well-Architected Framework unter Grundsätze der Kostenoptimierung.Other considerations are described in the Cost section in Microsoft Azure Well-Architected Framework.

Die Kosten, die im Zusammenhang mit den in dieser Referenzarchitektur verwendeten Diensten anfallen, können optimiert werden.There are ways to optimize costs associated the services used in this reference architecture.

Azure IoT HubAzure IoT Hub

In dieser Architektur ist IoT Hub das Cloudgateway, das Ereignisse von Geräten erfasst.In this architecture, IoT Hub is the cloud gateway that ingests events from devices. Die IoT Hub-Abrechnung variiert abhängig vom Vorgangstyp.IoT Hub billing varies depending on the type of operation. Vorgänge zum Erstellen, Aktualisieren, Einfügen und Löschen sind kostenlos.Create, update, insert, delete are free. Erfolgreiche Vorgänge wie Gerät-zu-Cloud- und Cloud-zu-Gerät-Nachrichten werden in Rechnung gestellt.Successful operations such as device-to-cloud and cloud-to-device messages are charged.

Erfolgreich gesendete Gerät-zu-Cloud-Nachrichten werden beim Eingang in IoT Hub in Blöcken von 4 KB berechnet.Device-to-cloud messages sent successfully are charged in 4-KB chunks on ingress into IoT Hub. Eine Nachricht mit 6 KB beispielsweise wird als zwei Nachrichten berechnet.For example, a 6-KB message is charged as two messages.

IoT Hub verwaltet Zustandsinformationen zu jedem verbundenen Gerät in einem JSON-Dokument für den Gerätezwilling.IoT Hub maintains state information about each connected device in a device twin JSON document. Lesevorgänge von einem Dokument für den Gerätezwilling werden in Rechnung gestellt.Read operations from a device twin document are charged.

IoT Hub bietet zwei Dienstebenen: Basic und Standard.IoT Hub offers two tiers: Basic and Standard.

Verwenden Sie ggf. die Dienstebene Standard, wenn Ihre IoT-Architektur Funktionen für die bidirektionale Kommunikation verwendet.Consider using the Standard tier if your IoT architecture uses bi-directional communication capabilities. In dieser Dienstebene ist auch eine kostenlose Edition verfügbar, die sich am besten zu Testzwecken eignet.This tier also offers a free edition that is most suited for testing purposes.

Wenn unidirektionale Kommunikation zwischen Geräten und Cloud erforderlich ist, verwenden Sie die (günstigere) Dienstebene Basic.If you only need uni-directional communication from devices to the cloud, use the Basic tier, which is cheaper.

Weitere Informationen finden Sie unter IoT Hub – Preise.For more information, see IoT Hub Pricing.

Azure Stream AnalyticsAzure Stream Analytics

Azure Stream Analytics wird für die Datenstromverarbeitung und die Regelauswertung verwendet.Azure Stream Analytics is used for stream processing and rules evaluation. Die Kosten für Azure Stream Analytics werden nach der Anzahl von Streamingeinheiten (Streaming Units, SUs) pro Stunde berechnet, die die Computeressourcen, den Arbeitsspeicher und den Durchsatz beinhalten, die für die Verarbeitung der Daten erforderlich sind.Azure Stream Analytics is priced by the number of Streaming Units (SU) per hour, which takes into compute, memory, and throughput required to process the data. Azure Stream Analytics auf IoT Edge wird pro Auftrag abgerechnet.Azure Stream Analytics on IoT Edge is billed per job. Die Abrechnung beginnt ab der Bereitstellung eines Stream Analytics-Auftrags auf Geräten und zwar unabhängig vom Auftragsstatus („Wird ausgeführt“, „Fehler“ oder „Beendet“).Billing starts when a Stream Analytics job is deployed to devices regardless of the job status, running, failed, or stopped.

Weitere Informationen zu den Preisen finden Sie unter Stream Analytics – Preise.For more information about pricing, see Stream Analytics pricing.

Azure-FunktionenAzure Functions

Azure Functions wird verwendet, um Daten nach ihrem Eingang bei IoT Hub zu transformieren.Azure Functions is used to transform data after it reaches the IoT Hub. Aus Kostensicht lautet die Empfehlung, den Verbrauchstarif zu nutzen, da Sie hierbei nur für die verbrauchten Computeressourcen zahlen.From a cost perspective, the recommendation is to use consumption plan because you pay only for the compute resources you use. Die Abrechnung erfolgt jedes Mal basierend auf dem Ressourcenverbrauch pro Sekunde, wenn ein Ereignis die Ausführung der Funktion auslöst.You are charged based on per-second resource consumption each time an event triggers the execution of the function. Durch die Verarbeitung mehrerer Ereignisse in einer einzelnen Ausführung oder in Batches können die Kosten gesenkt werden.Processing several events in a single execution or batches can reduce cost.

Azure Logic AppsAzure Logic Apps

In dieser Architektur wird Logic Apps für die Integration von Geschäftsprozessen verwendet.In this architecture, Logic Apps is used for business process integration.

Die Preise für Logik-Apps gelten für das Modell mit nutzungsbasierter Bezahlung.Logic apps pricing works on the pay-as-you-go model. Ausführungen von Triggern, Aktionen und Connectors werden jedes Mal gemessen, wenn eine Logik-App ausgeführt wird.Triggers, actions, and connector executions are metered each time a logic app runs. Alle erfolgreichen und nicht erfolgreichen Aktionen, einschließlich Trigger, werden als Ausführungen angesehen.All successful and unsuccessful actions, including triggers, are considered as executions.

Ihre Logik-App verarbeitet beispielsweise 1.000 Nachrichten pro Tag.For instance, your logic app processes 1000 messages a day. Ein Workflow mit fünf Aktionen kostet weniger als 6 US-Dollar.A workflow of five actions will cost less than $6.

Weitere Informationen hierzu finden Sie unter Logic Apps – Preise.For more information, see Logic Apps pricing.

DatenspeicherungData Storage

Für den Speicher für kalte Daten ist Azure Blob Storage die kostengünstigste Option.For cold path storage, Azure Blob Storage is the most cost-effective option.

Für den Speicher für warme Daten sollten Sie Azure Cosmos DB in Erwägung ziehen.For warm path storage, consider using Azure Cosmos DB. Weitere Informationen finden Sie unter Azure Cosmos DB – Preise.For more information, see Cosmos DB pricing.

Nächste SchritteNext steps