Cloud is in the house
Neues aus unserer Entwicklungsabteilung

 

Verkehrstelematiksysteme von Heusch/Boesefeldt sind seit jeher auf hohe Verfügbarkeit und Skalierbarkeit ausgelegt. Im Cloud-Zeitalter haben sich Technologien und Methoden entwickelt, die diese Ziele ebenfalls verfolgen und zu weit verbreiteten IT-Standards herangereift sind. Diese Entwicklung haben wir bei Heusch/Boesefeldt beobachtet. Mittlerweile halten wir die Technologien für ausgereift und etabliert genug um sie auch selbst in unseren Systemen einzusetzen.

Demzufolge setzen wir nun verstärkt

  • Docker zur Paketierung von Systemkomponenten
  • Kubernetes zur Verwaltung von Container-Anwendungen
  • Prometheus und Grafana zum System- und Komponenten-Monitoring

ein.

Der Aufbau der Systeme folgt dabei dem Microservice Architekturansatz mit unabhängig voneinander deploybaren Softwaremodulen. Für die Speicherung von Daten kommt dabei immer öfter das dokumentenbasierte Datenbankmanagementsysteme MongoDB zum Einsatz und für eine losgelöste und entkoppelte Kommunikation nutzen die Systeme MQTT-Messaging- oder Streamingplattformen (Apache Kafka).

Kubernetes

Mit Kubernetes hat jeder Entwickler die Möglichkeit seine Anwendung selbst zu deployen und das Verhalten im Betrieb zu beobachten.

Einen Bug gefunden? Kein Problem, mit Kubernetes können wir im laufenden Betrieb eine neue Version ausrollen, ohne den Service zu unterbrechen.

Dank Prometheus und Grafana haben wir immer aussagekräftige Daten, wie es unserer Applikation geht und können rechtzeitig Maßnahmen einleiten, bevor der Benutzer gestört wird.

Apache Kafka

Services sollen immer verfügbar sein. Um dies zu erreichen werden gerne Microservices in Cluster-Systemen genutzt. Für die vielen Schnittstellen zwischen den zahlreichen Services sind dabei entsprechende Interfaces zu realisieren.

Anstatt hier für jeden Service das Rad neu zu erfinden, setzen wir Kafka als asynchrone Schnittstelle zwischen den einzelnen Instanzen ein.

Kafka eignet sich auch hervorragend für Event-basierte Benachrichtigungen, da beim Versenden noch nicht feststehen muss, wer die Nachricht alles erhalten muss.

Im Gegensatz zu anderen Message-Brokern können wir hier auch bereits verarbeitete Daten erneut abrufen, um so (nach einen Neustart) an den aktuellen Gesamtzustand zu kommen und sparen uns damit zudem eine zusätzliche Persistenzschicht.