Serverless Backend

Use-Case Eigentumsnachweis über KundendatenScope Neue Schnittstelle für externes SystemBrancheLogistik (RIO)

Ausgangslage

RIO bietet als Digitalmarke der TRATON GROUP eine offene Cloud-basierte Lösung für das gesamte Transport- und Logistik-Ökosystem. RIO bündelt in seinem Marketplace digitale Services für Fuhrparkmanager, Spediteure und Fahrzeugvermieter; Ziel ist es, alle Beteiligten der Lieferkette auf einer Plattform zu vernetzen. Die Services von RIO und Partnern bieten digitale Lösungen für LKW, Vans und Busse – unabhängig von der jeweiligen Fahrzeugmarke. Die in den Fahrzeugen installierte RIO Box ermöglicht einen Überblick über den gesamten Fuhrpark eines Anbieters. Daten wie die Fahrzeugposition, der Zustand des Lkws und der Stand des Fahrtenschreibers stehen in Echtzeit zur Verfügung. Im Transport- und Logistiksektor können damit zahlreiche Anforderungen zur Qualitätssicherung abgedeckt werden: Das Tracking der Fracht, die Sicherstellung, dass die Fracht zu einer bestimmten Zeit an einem bestimmten Ort eintrifft (Geofencing), die Wartung der Fahrzeuge oder die Überwachung der Fahrzeiten zur Optimierung der Routenplanung. Die gewonnenen Daten können von Flottenverwaltern und Spediteuren ausgewertet und zur Optimierung ihrer Geschäftsstrategien genutzt werden. RIO muss daher die Vielzahl von IoT-Ereignissen, die von den Telematikgeräten kontinuierlich ausgesendet werden, schnell und zuverlässig verarbeiten. Dies beinhaltet Real-Time Daten wie z. B. die radbezogene Geschwindigkeit, den Kraftstoffverbrauch, die Motortemperatur etc. Auf der anderen Seite könnten zusätzliche Daten wie Informationen über die physikalische Struktur des Fahrzeugs für die Plattformnutzer von Interesse sein. Diese Daten können vom Fahrzeughersteller geliefert werden und RIO muss eine Schnittstelle bereitstellen, um diese Informationen in seine Plattform zu integrieren.

Lösungsansatz

Technische Exzellenz
AWS, Serverless, CI/CD, Microservice
The LESS mindset
Mindset
Kostensparende Vorgehensweise, Erweiterbarkeit der Infrastruktur nach Bedarf

Die Menge der IoT-Ereignisse, die vom Fuhrpark eines Unternehmens produziert wird, muss erst konsolidiert und aufbereitet werden, bevor ein Flottenverwalter oder Spediteur die benötigten Informationen extrahieren kann. Dabei muss die sichere Zuordnung der Daten zum Account des Unternehmens gewährleistet sein, damit z. B. Positionsdaten eines Fahrzeugs mit zugehörigem Fahrer nur für die berechtigten Personen einsehbar sind. So ist für die korrekte Zuordnung und GDPR-konforme Darstellung von einströmenden Daten zum Account eines Unternehmens ein Eigentumsnachweis für die Fahrzeuge notwendig. Allerdings können neben den Daten verschiedener Telematiklösungen auch Daten von externen Systemen über zusätzliche Schnittstellen abgegeben werden. Diese Daten sind entkoppelt von den Telematikdaten, aber dürfen ebenfalls erst zur Ansicht gebracht werden, wenn ein Eigentumsnachweis zum zugehörigen Fahrzeug besteht.

Aus der Problemstellung ergeben sich zwei unterschiedliche Datenströme, die die RIO Plattform erreichen: ein fortwährender Strom an IoT-Ereignissen und ein kleiner Bach an einmalig abgegebenen Stammdaten. Der weitaus größere IoT-Datenstrom erreicht die RIO Plattform über eine zentrale Komponente, welche die Daten entgegennimmt, aufbereitet und auf einen Kafka Stream ablegt, um sie anderen spezialisierten Services zur Verfügung zu stellen. Diese Komponente ist als hochverfügbar auf AWS Fargate konzeptioniert, damit Daten lückenlos gesammelt werden können und so eine zuverlässige historische Aufzeichnung garantiert werden kann – auch wenn sich ein Rückstau an Daten angesammelt hat. Sie skaliert automatisch nach Bedarf, um Lastschwankungen entgegenzuwirken und Betriebskosten gering zu halten. So laufen nachts weniger Instanzen der Komponente als tagsüber, wenn Fahrzeuge vermehrt auf den Straßen unterwegs sind und Daten produzieren. Der kleinere Datenstrom von externen Systemen zu Fahrzeugstammdaten wird zunächst über ein Serverless-Backend entgegengenommen, welches die Daten in einer DynamoDB zwischenspeichert und sie erst dann für weitere RIO Plattform-Services zur Verfügung stellt, wenn ein Eigentumsnachweis zu den Fahrzeugen vorliegt. Da diese Daten meist nur einmal in größeren Zeitabständen abgegeben werden, wurden AWS Lambdas verwendet, die nur dann aktiviert werden und Kosten verursachen, wenn Daten abgegeben werden. Eine Zweifaktorauthentifizierung bei der Verknüpfung eines Telematikgerätes mit der digitalen Darstellung des Fahrzeugs ist aktuell eine ausreichende Garantie für den Eigentumsnachweis für die Daten der IoT-Ereignisse. Um nun auch einen Eigentumsnachweis für die externen Stammdaten zu erhalten, wurde ein neuer Service konzipiert, der die durch die Koppelung von Telematikgerät und Fahrzeug erbrachten Eigentumsnachweise konsumiert, speichert und an interessierte Service weiterleitet. Dadurch kann nun auch das Serverless Backend diese Eigentumsnachweise einsehen und bestimmen, ob Stammdaten an RIO Plattform-Services weitergegeben werden dürfen. Dieser Ownership-Service läuft wie die meisten Komponenten der RIO Plattform als Spring Boot Microservice in AWS Fargate. Dadurch entsteht kein Aufwand für die Verwaltung einer Server-Infrastruktur. Änderungen der Besitzverhältnisse werden über ein Kafka-Topic konsistent überwacht, in einer DynamoDB-Tabelle gespeichert und ebenfalls über eine SQS-Fifo-Queue veröffentlicht. Diese Queue gewährleistet, dass Nachrichten immer nur genau einmal und in korrekter Reihenfolge von einem abfragenden Service verarbeiten werden können.

Derzeit ist das Serverless-Backend der einzige Konsument der Daten des Ownership-Services. Es springt immer nur dann an, wenn neue Ereignisse auf der SQS-Queue liegen oder neue Stammdaten zu einem Fahrzeug über ein angebundenes API-Gateway eintreffen. Da diese Events nicht häufig auftreten, vermindert der Einsatz von AWS-Lambda die Kosten gegenüber einem AWS-Fargate Cluster oder einer EC2 Instanz. Die Fahrzeugstammdaten werden zusammen mit Besitzverhältnissen in einer DynamoDB abgespeichert, die wiederum über DynamoDB Streams eine AWS Lambda aktiviert, um die Daten an die RIO Plattform weiterzuleiten, sobald ein Eigentumsnachweis für ein Fahrzeug vorliegt. Durch DynamoDB-Streams sind Retrys für die Datenabgabe an die RIO Plattform garantiert, da Stream-Events über einen längeren Zeitraum zwischengespeichert werden, bis sie erfolgreich von einer AWS Lambda abgearbeitet werden konnten. Dadurch konnte auf eine komplizierte Businesslogik verzichtet werden, während eine konsistente Datenabgabe zur RIO Plattform auch bei Verbindungsausfällen gewährleistet werden kann. Sobald mehrere Services auf die Nachrichten der SQS-Queue angewiesen sind, wird die Architektur um einen zusätzlichen Publish-Subscribe Channel (AWS SNS) erweitert; dieser kann dann wieder beliebige neue Dienste anbinden. Somit bietet AWS auch hier die Möglichkeit bestehende Infrastrukturen zu ergänzen, ohne Abhängigkeiten zwischen den Services entstehen zu lassen.