p.portfolio
Referenzen, Case Studies und Lösungsportfolio

6. Dezember 2023

Konzeption und Realisierung von API-Produkten zur Bereitstellung anonymisierter Fahrzeugdaten

Bereits seit 2017 arbeiten der Kunde und die pentacor GmbH zusammen und setzen verschiedene API- und API-Management-Projekte um. Seit März 2023 entwickeln sie gemeinsam neue Versionen von API-Produkten, die anonymisierte Fahrzeugdaten bereitstellen. Diese Daten werden von Sensoren in vernetzten Fahrzeugen erfasst und dienen der Analyse durch Fachbereiche oder externe Partner. Die daraus resultierenden standortbezogenen aggregierten Daten umfassen Informationen zu Straßenzuständen, Verkehrszeichen, potenziellen Gefahrenstellen und Wetterdaten. Die anonymisierten Daten werden als „Data-as-a-Service“-Produkte für Konsumenten wie Länder und Kommunen bereitgestellt. Die pentacor GmbH ist für die Konzeptionierung und Architektur der Plattform sowie der einzelnen Services verantwortlich. Das Projekt wird agil mit Scrum realisiert, wobei vorgegebene Meilensteine eingehalten werden müssen und zusätzliche Anpassungen agil bewertet werden.

Photo by Joseph Chan on Unsplash

Ausgangssituation und Ziel

Bei der Umsetzung der Backend-Systeme für die Bereitstellung der anonymisierten Fahrzeugdaten handelt es sich um eine Neuentwicklung mit dem Ziel die vorherige Umsetzung abzulösen, da diese den Anforderungen an Qualität und Performance nicht gerecht werden konnte.

Die von uns neu entwickelte Lösung basiert auf Microsoft Azure und setzt insbesondere auf Azure Data Explorer als leistungsfähige Daten-Plattform für die Speicherung und den Abruf der Daten über in Azure Kubernetes Service deployte Services. Für die flexible Entgegennahme von Daten kommen Event Hubs und Storage Accounts zum Einsatz, und konfigurierbare Mappings für Input sowie Output ermöglichen eine weitreichende Entkopplung von den Daten-Providern.

Wesentliche Qualitätsziele fokussieren dabei auf Zuverlässigkeit, Performance und Skalierbarkeit. Darüber hinaus ist Erweiterbarkeit ein wichtiger Aspekt der Konzeption und Realisierung der Backend-Plattform, da der Kunde nicht nur eine Reihe von API-Produkten für den Zugriff auf anonymisierte Fahrzeugdaten bietet, sondern auch bereits eine Reihe weiterer Produkte plant, die in Zukunft im Rahmen der gleichen Plattform umgesetzt werden sollen. Weiterhin liegt ein Augenmerk auf der Wiederverwendung gemeinsamer Aspekte der Backend-Services für die einzelnen Produkte bei gleichzeitiger Unterstützung produktspezifischer Besonderheiten, beispielsweise für die Filterung von Daten.

Herausforderungen im Projekt

Die neue Lösung für die Bereitstellung von anonymisierten Fahrzeugdaten wurde parallel zur Weiterentwicklung der bisherigen Version konzipiert und realisiert, so dass immer wieder auf neue und sich ändernde Anforderungen reagiert werden musste, während die neue Version gleichzeitig zum Anlass genommen wird, Konsistenz und Developer Experience bzw. Consumer Experience für Konsumenten der APIs zu verbessern.

Daneben stießen wir auch an technologische Grenzen von Microsoft Azure und seinen PaaS-Komponenten und standen wiederholt vor der Herausforderung, sie Limitierungen zum Trotz in Einklang mit den spezifischen Anforderungen und Zielen zu bringen. Diese Hürden konnten wir jedoch stets gemeinsam mit dem Kunden erfolgreich nehmen.

Ergebnisse

Bei der Umsetzung der API-Produkte für die Bereitstellung anonymisierter Fahrzeugdaten konnten wir von der technischen Basis, die wir mit der Arbeit an der API-Management-Plattform selbst geschaffen hatten, profitieren. Dennoch betrachten wir beide als weitestgehend unabhängige Projekte, um spezifische Belange zu separieren. Insbesondere die verwendete Tool-Chain hat jedoch von den Gemeinsamkeiten der API-Management-Plattform und den API-Produkten profitiert. In beiden Fällen wurde auf ein hohes Maß an Automatisierung über Azure DevOps Pipelines und die konsequente Verwendung von Infrastructure-as-Code mittels Terraform gesetzt. Auch bei der Realisierung der Individual-Services wurden die gleichen Konzepte und Ansätze verwendet, um für das Team eine vertraute Entwicklungsumgebung zu schaffen, die eine effektive und effiziente Arbeit ermöglicht und von früheren Erfahrungen profitiert.

Dass API-Management-Plattform- und API-Produkt-Entwicklung Hand in Hand gehen und vom gleichen Team vorangetrieben werden, ermöglicht wechselseitige Weiterentwicklung und erleichtert die Integration sowie Abstimmung mit Stakeholdern.

Für die API-Produkte zur Bereitstellung anonymisierter Fahrzeugdaten wurde der Beginn des Produktivbetriebs in mehreren Wellen vereinbart. In der ersten Welle Mitte Oktober 2023 gingen insgesamt fünf Produkte mit jeweils zugehörigen Services live. Alle Services und die benötigte Infrastruktur, bestehend aus Azure-PaaS-Komponenten, können unabhängig voneinander bereitgestellt werden, basieren dabei jedoch auf einer gemeinsamen Kern-Implementierung, die es ermöglicht, produktspezifische Besonderheiten allein konfigurativ umzusetzen. Dazu trägt bei, dass alle API-Produkte über eine identische Grundfunktionalität verfügen und erst die für die Zukunft geplante produktspezifische Datenfilterung oder -aufbereitung dedizierte Implementierungen erfordern wird, für die die Integrationspunkte bereits vorgesehen sind.

Während des gesamten Projektverlaufs lag das Hauptaugenmerk auf einem ganzheitlichen Ansatz für Architektur und Realisierung, einschließlich entsprechender umfassender Dokumentation. Die Services der Plattform werden auf allen Ebenen getestet, angefangen von Whitebox-Unit-Tests bis hin zu Blackbox-Systemintegrationstests auf Plattform-Level. Das pentacor Team zeichnet ebenfalls verantwortlich für die Automatisierung von Build-, Deployment- und Releaseprozessen und übernimmt das Monitoring der Backend-Systeme.

Technische Basis

Im Zentrum der API-Backends stehen PaaS-Komponenten wie Azure Data Explorer und zusätzlich Event Hubs und Storage Accounts für die Entgegennahme der Daten von den Daten-Providern. Als ergänzende Persistenz findet für die Verwaltung geografischer Bereiche für das Data Scoping auch eine Azure-SQL-Datenbank Verwendung.

Die Services selbst sind in Java als Spring-Boot-Anwendungen umgesetzt und werden als containerisierte Deployments in einem Kubernetes-Cluster auf Basis von Azure Kubernetes Service unter Verwendung des Azure Application Gateway Ingress Controllers bereitgestellt und nutzen Azure Application Insights für Logging, Monitoring und Alarming sowie Key Vaults für die Verwaltung von Secrets und Credentials.

Für die Konfiguration der Infrastruktur der Plattform nutzen wir Terraform und Helm für das Deployment von Anwendungen in Kubernetes, jeweils automatisiert ausgeführt über Azure DevOps Pipelines.

Fazit

Die bereits bestehenden API-Produkte für die Bereitstellung anonymisierter Fahrzeugdaten wurden durch gezielte Neu-Konzeption und Überarbeitung optimiert, um insbesondere Performance, Developer Experience und Konsistenz der einzelnen Produkte zu verbessern. Dabei wurde der Grundstein für die künftige Erweiterung der Funktionalität sowie die effiziente Umsetzung weiterer verwandter API-Produkte geschaffen. Als Basis dient eine weitreichende Entkopplung von Daten-Providern mit der Möglichkeit zur flexiblen Integration in eine stabile und einheitliche Architektur der Backend-Systeme.