Fehlende Ressourcen oder technische Herausforderungen sind häufig Blockaden, wenn es darum geht, den Wertbeitrag und die Machbarkeit eines IoT Use Cases zu ermitteln und späteren Projektsponsoren vorzustellen. Selbst simple IoT Use Cases benötigen teils Wochen anstatt Tage, um greifbare Ergebnisse hervorzubringen. Wir möchten im Rahmen dieses Blockbeitrags unsere IoT-Kickstarter-Plattform aufzeigen, die es ermöglicht, „einfache“ IoT Analytics Use Cases innerhalb weniger Tage unter technischen Gesichtspunkten zu verproben.
IoT-Kickstarter-Plattform basierend auf nativen AWS Cloud Services
Für das Verproben einfacher IoT Use Cases verwenden wir die folgende technische Architektur, die sowohl einen Hot Path als auch einen Warm und Cold Path für die Erfassung und Auswertung der Sensordaten ermöglicht.
Abbildung: Architektur der IoT-Kickstarter-Plattform
Um Sensordaten in die Cloud zu senden, wird zunächst ein kompatibles Device benötigt, das für den zu testenden Use Case vorgesehen ist. Möglich und in der obigen Skizze dargestellt ist auch die Simulation von Sensordaten z. B. durch das AWS IoT Device SDK. Die Kommunikation zwischen dem Device und der AWS-Cloud sowie die Weiterleitung der Sensordaten an weitere AWS-Services erfolgen über AWS IoT Core. Von dort aus bildet der obere Strang den Hot Path über AWS IoT SiteWise, wodurch Near-Real-Time Use Cases realisiert werden können. Der untere Strang der dargestellten Architektur bildet je nach Konfiguration des S3 Services den Warm und/oder Cold Path, wodurch zeitunkritische Analysen umgesetzt werden können. Mit AWS Glue können Daten automatisiert katalogisiert werden, und Amazon Athena dient als Schnittstelle für SQL-Abfragen.
Sollen für einen IoT Use Case AI- oder Data-Warehouse-Workloads in der Cloud getestet werden, kann die vorgestellte Lösung mit Cloud Services wie AWS Redshift oder AWS SageMaker erweitert und einfach mit Amazon Athena verknüpft werden.
Befähigung und Wiederverwendbarkeit durch AWS Cloud Development Kit (CDK)
Um die AWS-IoT-Kickstarter-Plattform auf Knopfdruck verfügbar zu machen und iterative Anpassungen sowie die Wiederverwendbarkeit der genannten Architektur zu ermöglichen, wurde das CDK verwendet. Das CDK ermöglicht die Definition und Konfiguration der Cloud-Infrastruktur mittels Code-Abstraktion – einmal entwickelt, kann dieser Code über ein Repository zur Verfügung gestellt werden.
Neben der Konfiguration der Cloud Services kann das Datenmodell der Sensoren und Maschinen definiert werden, so dass bereits ein Monitoring auf Basis dieses Modells möglich ist. Dies geschieht durch die Definition von Measurements oder Attributen eines Assets. Measurements repräsentieren physikalische Größen, die direkt von den Assets gemessen werden. Beispielsweise können Temperaturen oder Geschwindigkeiten als Measurements definiert werden. Diese werden regelmäßig von den Assets erfasst und in IoT SiteWise gespeichert. Metriken hingegen sind abgeleitete oder berechnete Größen, die auf Basis von Measurements erzeugt werden. Sie können als aggregierte Werte oder statistische Kennzahlen verwendet werden, um einen Überblick über den Zustand eines Assets zu geben. Beispielsweise könnte eine Metrik die durchschnittliche Temperatur über einen bestimmten Zeitraum sein, die aus den zugrundeliegenden Measurements berechnet wird. Ein solches Beispiel ist im folgenden Codeauszug dargestellt.
swise.CfnAssetModel.AssetModelPropertyProperty(
data_type='INTEGER',
logical_id='3',
name='Temperature',
type=swise.CfnAssetModel.PropertyTypeProperty(
type_name='Measurement',
)
),
Abbildung: Definition eines Measurements
swise.CfnAssetModel.AssetModelPropertyProperty(
data_type='DOUBLE',
logical_id='4',
name='Temperaturemetric',
type=swise.CfnAssetModel.PropertyTypeProperty(
type_name='Metric',
metric=swise.CfnAssetModel.MetricProperty(
expression='max(temperature)',
variables=[swise.CfnAssetModel.ExpressionVariableProperty(
name='temperature',
value=swise.CfnAssetModel.VariableValueProperty(
property_logical_id='3'
)
)],
window=swise.CfnAssetModel.MetricWindowProperty(
tumbling=swise.CfnAssetModel.TumblingWindowProperty(
interval='1m',
)
Abbildung: Definition einer Metrik
Wenn Du Unterstützung bei der Umsetzung eines Proof of Concept für IoT Use Cases benötigst, können wir Dich mit der AWS-IoT-Kickstarter-Plattform auf Knopfdruck unterstützen – sprich mich an!