Testdaten generieren mithilfe von Openmaps

Mit OpenMap einfach Daten generieren

Contributor: Nicolas Voigt

Für eine Streaming-Anwendung mit Apache Kafka werden geografische Testdaten benötigt. Vorliegendes Schaubild bildet ein Tech Stack Overview ab. Hierbei wird der Ablauf samt beteiligter Software veranschaulicht. 

Abb.1 - Tech Stack Overview

Für die Erzeugung eines simplen Datasets,
beispielsweise in Form von GPS-Koordinaten von Autos, wird ein Fleet von Pods
unter Betrachtung von Kubernetes benutzt. 
Ein einzelner Pod wird hierbei ein einzelnes Dataset von Koordinaten bzw. ein
Auto generieren (s.h. Abbildung 1).

Wichtige Voraussetzungen und involvierte Module/Software

1.      Spring Boot ist ideal für die Entwicklung und Bereitstellung individueller Microservices, unabhängig von der gewählten Programmierungssprache. Es wird eine hoch skalierbare und robuste Kommunikation zwischen den Services ermöglicht.

 

2.      Osmapi wird von StreetComplete benutzt und bildet einen Client der OSM API 0.6. Es ist ein offizielles Modul von Openstreetmap und als Testprojekt im Vergleich zu Google Maps relativ kostengünstig. Vorteilig ist zudem, dass Openstreetmap, einige kostenlose Varianten anbietet und leicht anbindbar ist. Die OSM-API ist hierbei lediglich für die Bearbeitung der Karte verantwortlich und nicht für das Abrufen größerer Datenmengen geeignet. Die Aufarbeitung größeren Datenbeständen erfolgt wiederum von Overpass-API.

3.      Spring für Apache Kafka wendet zentrale Spring-Konzepte auf Basis von Kafka-basierten Messaging-Lösungen an. Vorteilig hierbei ist, dass es mit Azure Eventhub angebunden ist, jedoch auch nur in Verbindung mit diesem zu nutzen ist. Als High-Level-Abstraktion bietet spring-kafka eine Vorlage für die Sendung von Nachrichten an. Zudem unterstützt es bei Message-driven POJOs mit KafkaListener-Annotationen.

 

4.      Innerhalb der Streaming Anwendung werden folgende drei Azure Services verwendet:

Zum einen AKS Azure Kubernetes, welche eine Open-Source-API bereitstellt und Container bzw. gruppierte Pods (s.h. Abbildung 1) genauer steuert. Ein weiterer Streaming Service ist Azure Application Gateway, welche hilfreich ist, um URL-basiertes Routing durchzuführen. Für den Schutz der einzelnen Pods sollte eine direkte Verbindung mit dem Internet vermieden werden. Azure Gateway ist zudem wichtig,
um eine Abtrennung zwischen Pods und Internet zu schaffen und den Einlass von fehlerhaften Inhalten gegebenenfalls zu verhindern und zu monitoren. Die dritte Serviceanwendung Interconnect VPN stellt die Funktionalität, Sicherheit und Verwaltungsrichtlinien eines privaten Netzwerks sicher. Grund für die Nutzung von VPN Interconnect ist zusätzlich der Fakt, dass Eventhub im eigenen privaten Subnet läuft.

Abb.2 - Vorgang Datengeneration mit Openstreetmap

Wie das Ganze deployed wird 

Die Bereitstellung der Daten erfolgt mit der Open-Source-Infrastruktur as code (IaC) Plattform Terraform, welche von HashiCorp entwickelt wurde. Die Infrastruktur wird in diesem Zusammenhang als YAML Dateien beschrieben. Vorteil dieser Software-Anwendung ist zudem, dass
diese äußerst git friendly ist, sprich eine parallele Entwicklung der Infrastruktur ermöglicht und eine einfache Historie samt Änderungen aufzeigt. Zusätzlich ist es rollback friendly und im Falle eines Bugs kann die vorherige fehlerfreie Infrastruktur schnell und leicht wieder eingesetzt werden. Letztlich wird eine einfache Einstellung bezüglich der Skalierung und Parallelisierung gegeben.

Abb.3 - Source Snippets Auszug

Conclusion:

Zusammenfassend bilden Gateway und VPN Interconnect eine Verbindungsstelle, damit die Pods die generierten GPS-Koordinaten
verifizieren können. Insgesamt ist die Infrastruktur korrekt einzuordnen, abänderbar und leicht verständlich.

 

Thinkport ist ein dynamisches und stetig wachsendes Cloud-Beratungsunternehmen, mit dem Ziel innovative Technologien und Lösungen im Bereich Cloud Computing zu entwickeln. Als zertifizierter Microsoft Silver Platform Partner arbeiten wir eng mit Microsoft, im Azure-Cloud-Umfeld, zusammen und verfügen auch über zertifizierte Expertise mit Amazon Web Services und der Google Cloud Plattform.
Unsere Stärken und unser Know-how liegen in den Bereichen Multi-Cloud, Data Lakes, Big Data, AI und Event-Driven Architectures (Hadoop, Kafka, Solace) sowie Terraform. Um einen weiteren Einblick über unsere Dienstleistungen zu bekommen, besuchen Sie gerne unsere Website und die neu aktualisierte Workshop Seite

Referenzen: 
1. https://github.com/westnordost/osmapi
2. https://docs.microsoft.com/de-de/azure/developer/java/spring-framework/configure-spring-cloud-stream-binder-java-app-kafka-azure-event-hub
3. https://spring.io/projects/spring-kafka
4. https://www.confluent.io/resources/event-driven-microservices-with-spring-boot-and-confluent-cloud/?utm_medium=sem&utm_source=google&utm_campaign=ch.sem_br.nonbrand_tp.prs_tgt.kafka_mt.xct_rgn.emea_lng.eng_dv.all_con.kafka-spring&utm_term=apache%20kafka%20spring&creative=&device=c&placement=&gclid=CjwKCAjwwqaGBhBKEiwAMk-FtFxg3qKuRsotG1cOIuXpYhkVcQB0SjdVFplQO-29JygGZA7-huflWBoCxIgQAvD_BwE

Blog Kurator

Bledion Vladi

Business Development

Email:

bvladi@thinkport.digital