Motivation

In der heutigen digitalen Welt ist die Vernetzung ein Stück weit Normalität geworden. Man kann mit dem Smartphone von unterwegs die heimische Beleuchtung oder die Temperatur der Wohnräume steuern. In der Mobilität bringt das Connected Car dem Nutzer Vorteile durch verbesserten Komfort und gesteigerte Sicherheit.

Die Connected Car Cloud Plattform bildet das Rückgrat für die angebotenen Dienste. Hier werden alle Kunden mit ihren Fahrzeugen sowie deren Dienststatus und Lizenzen gespeichert. Durch Eingaben der Benutzer, beispielsweise mittels einer App, werden in der Cloud Plattform Prozesse angestoßen. Diese stellt ihrerseits die Umgebung für die direkt beteiligten Komponenten bereit und ist gleichzeitig für die Kommunikation mit weiteren Backends verantwortlich.

Ziel ist die Entwicklung und der Betrieb einer hochverfügbaren Connected Car Plattform in der Cloud, damit Endkunden die angebotenen Dienste rund um die Uhr weltweit nutzen können.

Beitrag der Novatec

Entwicklungsteam

Zur Entwicklung der Plattform werden mehrere Teams der Novatec eingesetzt. Die Teams betreuen eine oder mehrere fachliche Domänen und besitzen neben dem technischen auch das fachliche Wissen über diese Domänen. Die Anforderungen werden vom Fachbereich durch mehrere Product Owner (PO) des Kunden in das Backlog eingepflegt. Um die Anforderungen des Fachbereichs zu gliedern und für die Teams aufzubereiten unterstützen Proxy-PO der Novatec.

Die Entwicklung ist zu 100% agil. Um die Umsetzung von Features zu beschleunigen, wird der Prozess iterativ verbessert. Ein Beispiel dazu ist das Wechseln zu NoEstimates und das Unterteilen von zu großen Aufgaben in mehrere kleinere mittels Story Slicing. Da die Anforderungen teilweise über mehrere Domänen verteilt sind, findet unter den Entwicklungsteams ein hoher Austausch statt

Betrieb und Monitoring

Neben der fachlichen Entwicklung sind die Entwicklungsteams auch komplett für das Aufsetzen und den Betrieb der Microservices zuständig. Unterstützt werden sie von einem technischen Cloud Team, welches Infrastruktur-Themen, wie beispielsweise neue Versionen von Datenbanken oder Kubernetes, evaluiert.

Bevor neue Features in der Produktion live gehen, wird die Software automatisiert in der CI/CD-Pipeline getestet. Tritt dabei ein Fehler auf, wird dies sofort dem Entwicklungsteam über den Instant Messenger Slack mitgeteilt. Sind alle Tests erfolgreich, wird die neue Version automatisiert in der Produktion weltweit ausgerollt.

Um den Betrieb der Software sicherzustellen erfolgt ein Monitoring, welches den Zustand der Microservices permanent überwacht. Dabei werden sowohl die Azure-eigenen Metriken für die Azure Services Datenbanken, Event Hubs und den Kubernetes Cluster verwendet, als auch Datadog für das Tracing der Microservices eingesetzt. Anhand von Dashboards können die Entwicklungsteams den Zustand der Microservices jederzeit einschätzen. Damit Fehlerfälle nicht unerkannt bleiben, sind Alerts konfiguriert. Diese lösen bei kritischen Systemzuständen automatisch aus und informieren die Entwicklungsteams über Slack, Mattermost oder E-Mail.

24/7 Support

Da die Endkunden der vernetzen Car Cloud Plattform weltweit verteilt sind und die Cloud Plattform rund um die Uhr zur Verfügung stehen muss, gibt es von der Novatec einen 24/7 Support. Dieser ist für Fehler außerhalb der Bürozeiten, sowie an Wochenenden und Feiertagen – also immer – erreichbar. Aktiviert wird dieser entweder durch einen Alert aus dem Monitoring oder durch ein Supportteam des Kunden.

Kommt es zu einer Alarmierung, kann der oder die zuständige Entwickler:in innerhalb von Minuten mit dem Laptop die Lage beurteilen und Maßnahmen ergreifen, um das System zu stabilisieren. Nach jedem Incident führt das Team ein Debriefing durch um geeignete Maßnahmen zu treffen, damit es zukünftig nicht mehr zu diesem Fehlerbild kommen kann. Zum Beispiel werden zusätzliche Metriken mit einem neuen Alert eingeführt, um früher über einen problematischen Zustand informiert zu werden.

Die richtige Technologie am richtigen Platz

Den Entwickler:innen ist es selbst überlassen, für einen umzusetzenden Use Case das passende Framework oder die geeignete Datenbank auszuwählen. Da die verschiedenen Microservices unterschiedlicher Last ausgesetzt sind, kann die richtige Technologie für den jeweiligen Einsatzzweck gewählt werden. Zum Beispiel wurde ein Microservice, der unter sehr hoher Last steht und teilweise noch sehr viel größeren Lastspitzen ausgesetzt ist, mit dem leichtgewichtigen Microservices Framework Micronaut implementiert.

Da dieser Microservice Antworten eines Drittsystems in einem Cache vorhält und diese zuerst von diesem Drittsystem abfragen muss, erfolgte die Entwicklung mit dem asynchronen non-blocking Framework Kotlin Coroutines.

Ergebnis

Die Plattform ist nun seit mehreren Jahren stabil im Betrieb. Sie wird kontinuierlich durch neue Anforderungen des Kunden erweitert. Da die Plattform der immer größerer werdenden Zahl von Endkunden rund um die Uhr zur Verfügung stehen soll, liegt, neben den fachlichen Anforderungen, ein großer Augenmerk auch auf den Qualitätsanforderungen.

Die Stabilität der Cloud Plattform wird dadurch kontinuierlich verbessert, so dass die Endkunden jederzeit den Fahrzeugstatus ihrer Connected Cars abfragen sowie die angebotenen Dienste nutzen können.

Ihr Ansprechpartner

Novatec_Markus-Mueller

Markus Müller

Director Software Engineering
Inhaltsverzeichnis
Ihr Ansprechpartner Markus Müller Director Software Engineering
Novatec_Markus-Mueller