Bearbeiten

Freigeben über


Softwaredefiniertes Fahrzeug DevOps-Toolkette

Azure Event Grid
Azure Kubernetes Service (AKS)
Azure Virtual Machines
Azure Container Registry
Azure ExpressRoute

In der gesamten Automobilindustrie erfordert der Übergang zu softwaredefinierte Fahrzeuge (SDVs) einen einzigartigen Ansatz für die Entwicklung, Bereitstellung, Überwachung und Verwaltung von Fahrzeugsoftwarestapeln. Automobilhersteller (Original Equipment Manufacturers, OEMs) setzen eine Shift-Left-Strategieein, die frühzeitig im Produktentwicklungszyklus Tests durchführt.

Im Ansatz in diesem Artikel durchläuft der In-Vehicle-Softwarestapel umfassende Simulationen und Tests in einer cloudbasierten Umgebung. Die folgende Beispielarchitektur beschreibt, wie Sie die Softwarestapel und -verteilungen nutzen können, die die Eclipse SDV-Arbeitsgruppe bietet. Sie können diese Komponenten mit GitHub- und Azure-Diensten verwenden, um einen End-to-End-Automotive-Softwarestapel zu entwickeln, Software in der Schleife (SIL)-Testszu implementieren, Hardware in der Schleife (HIL)-Testszu koordinieren und die Validierung der Fahrzeugflotte zu entwickeln.

In diesem Artikel wird beschrieben, wie Sie:

  • Integrieren Sie modernste Entwicklertools in den Entwicklungsprozess.
  • Arbeiten mit und Verwalten von Automobilquellcode.
  • Erstellen Sie virtuelle Fahrzeugumgebungen automatisch im Rahmen der kontinuierlichen Integration und kontinuierlichen Bereitstellung (CI/CD)-Pipelines und verwalten Sie ihre Ausführung für virtuelle Tests.
  • Koordinierte Bereitstellungen für SIL-Tests (virtuelle Tests) und HIL-Tests.
  • Verwenden Sie hoch skalierbare Dienste, um Daten zu sammeln und zu analysieren, die während Validierungstests und Feldnutzung erstellt werden.

Architektur

Dieses Diagramm zeigt die Architektur der Automobil-SDV-Toolkette.

Diagramm, das die Übersicht über die Automobil-SDV-Toolkette zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

Arbeitsablauf

Die Architektur besteht aus sechs wichtigen Bausteinen:

  1. Die SDV-Toolkette ist ein Plug-and-Play-Ansatz, der offen und konfigurierbar ist. Dieser Ansatz nutzt Microsoft-Entwickler und DevOps-Ressourcen und -Dienste. Sie reduziert die Abhängigkeit von In-Fahrzeug-Silizium, indem konfigurierbare und flexible virtuelle elektronische Steuerungseinheit (vECU) und virtuellen Hochleistungscomputer (vHPC) Umgebungen in Azure eingerichtet wird. Diese Umgebungen helfen, die Entwicklung, Tests und Validierung von Automobilsoftware zu beschleunigen. Durch diesen Ansatz wird die Kompatibilität mit Edge- und In-Vehicle-Silizium sichergestellt, um Bit- und Timing- und Codeparität sicherzustellen.

  2. Ein Automotive Software Stack umfasst eine Vielzahl von Technologien und Frameworks. Branchenstandards und gemeinsame Anstrengungen, wie die Eclipse Foundation softwaredefinierte Fahrzeugarbeitsgruppe, regeln diese Technologien und Frameworks häufig. Eclipse-Projekte umfassen nicht differenzierende Komponenten für Fahrzeugkonnektivität, Messaging und Kommunikationsprotokolle, wie z. B. eine in-Fahrzeug-Digitale Twin-Abstraktionsebene, erweiterte Fahrerassistenzsysteme (ADAS) und autonome Fahrlösungen.

    Automotive-Softwarestapel bieten eine robuste Grundlage für Autohersteller und Softwareentwickler. Sie sorgen für nahtlose Integration und Kompatibilität im gesamten Automobilökosystem und bieten einen communitygesteuerten Ansatz für technologische Fortschritte.

  3. GitHub Marketplace und Azure Marketplace es Partnern wie Anbieter von Software-Tools der Stufe 1 und Automobiltools ermöglichen, Lösungen wie verwaltete Fahrzeugsoftwarestapel, vECUs und Entwicklertools anzubieten. Sie können diese Lösungen in die SDV-Toolkette integrieren.

  4. Mit HIL-Testskönnen Sie Tests und Validierungen auf Zielhardware ausführen. Für die Validierung mit Edge- und In-Vehicle-Silizium verwendet HIL-Tests das gleiche Orchestrierungskonzept wie SIL-Tests. Die spezialisierte Hardware ist mit schnellem Netzwerkzugriff und sicheren Netzwerken verbunden.

  5. Fahrzeugnachrichten, Daten und Analysen bieten die erforderliche Infrastruktur für:

    • Verwalten von Fahrzeugen und Geräten.
    • Bereitstellung und Betrieb von verbundenen Fahrzeuganwendungen mit Abhängigkeiten zu In-Fahrzeug-Softwarekomponenten.
    • Bereitstellen von Datenanalysen für Engineering, Operations und Mobilitätsbasierte Dienste.

    Informationen zur Datenerfassung und -analyse für Komponenten- und Systemvalidierung finden Sie unter Datenanalyse für Fahrzeugtestflotten.

  6. Autonomen Fahrzeugbetrieb (AVOps) automobilen OEMs die Entwicklung automatisierter Fahrlösungen in Azure ermöglichen. Die AVOps-Lösung beschreibt:

    • Verwalten von Datenvorgängen (DataOps) für autonome Fahrzeuge
    • Automatisierte Featureextraktion, Kennzeichnung und Modelltraining für Wahrnehmung und Sensorfusion (MLOps).
    • Tests entwickelter Modelle in simulierten Umgebungen (ValOps).

    Diese Lösung ist in die SDV-Toolkette integriert, indem trainierte Modelle bereitgestellt und softwarevalidiert ausgeführt werden.

Diese Architektur konzentriert sich auf einen allgemeinen SDV-Toolchain- und Automotive-Softwarestapel. Es enthält Beispiele für Implementierungen, die Open-Source-Projekte unter der Purview der Eclipse SDV-Arbeitsgruppe verwenden, z. B. Eclipse uProtocol, Eclipse Chariott, Eclipse Ibeji, Eclipse Freyja, und Eclipse Agemo.

Microsoft ist Mitglied der Eclipse softwaredefinierte Fahrzeugarbeitsgruppe, einem Forum für open-source-Zusammenarbeit für Fahrzeugsoftwareplattformen.

Die Automobil-SDV-Werkzeugkette besteht aus den folgenden Komponenten.

  • Entwicklungstools umfassen Entwicklungs- und Zusammenarbeitsdienste wie GitHub, Microsoft Dev Box, Visual Studio Code und Azure Container Registry. Diese Architektur verwendet auch die Codescanfunktionen von GitHub. Das CodeQL-Analysemodul findet Sicherheitsfehler im Quellcode und zeigt Warnungen in Pullanforderungen an, bevor der anfällige Code zusammengeführt und freigegeben wird.

  • Entwicklung, Validierung und Integration ist eine Methode, die Metadaten- und Orchestrierungsdienste kombiniert. Es ermöglicht Entwicklern, virtuelle Ausführungsumgebungen bei Bedarf zu konfigurieren, zu erstellen, bereitzustellen und zu koordinieren. Entwickler können den Entwicklungs- und Testprozess optimieren, in vorhandene Toolketten integrieren und mehrere Anwendungsformate, Binärdateien, Betriebssysteme und Laufzeitumgebungen unterstützen.

  • Die Ausführungsumgebung besteht aus Azure-Diensten und -Komponenten, die zuverlässige, wiederholbare und feststellbare Cloud- und Edgeumgebungen zum Erstellen, Testen und Überprüfen von Fahrzeugsoftwarestapeln ermöglichen. Diese Komponenten können folgendes umfassen:

    • Azure-Bereitstellungsumgebungen.
    • Azure Compute Gallery.
    • Containerregistrierung.
    • Azure Arc.
    • Azure compute, like ARM64-based Azure virtual machines (VMs) and high-performance computing.
    • Azure-Netzwerkdienste und Konnektivitätsdienste, z. B. Azure ExpressRoute.

Die folgenden Workflows zeigen, wie ein Entwickler virtuelle Tests für Automobilsoftware definiert, koordiniert und ausführt.

Workflow: Bereitstellen von vECUs

Diese Lösung beschreibt, wie ein Automobilsoftwareentwickler für das fiktive Unternehmen Contoso Automotive die Automotive SDV-Toolkette verwendet, um:

  • Richten Sie eine Entwicklungsumgebung in Minuten ein.
  • Lösen Sie eine Updateänderung in der SIL-Cloudinfrastruktur aus, um eine vECU bereitzustellen, die auf einer ARM64-basierten VM ausgeführt wird.

Contoso Automotive fügt ein neues HPC-Gerät (Automotive High Performance Compute) zu einem bevorstehenden Fahrzeugmodell hinzu und muss ein neues Entwicklungsteam integrieren, um containerisierte Anwendungen zu entwickeln. Die Hardware für das Fahrzeug ist noch nicht verfügbar, aber komprimierte Zeitachsen bedeuten, dass die Softwarefunktionalität parallel entwickelt und validiert werden muss.

Diagramm, das die Komponenten und workflows der Automobil-SDV-Toolkette zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

  1. Der Automobilentwickler erstellt und stellt eine Verbindung mit einem Microsoft Dev Box. Das Entwicklerfeld ist vorkonfiguriert mit allen erforderlichen Entwicklungstools (z. B. Visual Studio Code und Android Studio) und allen erforderlichen Erweiterungen (z. B. GitHub Copilot), die mit den Contoso Automotive-Anwendungen kompatibel sind.

  2. Der Automobilentwickler führt ein Auschecken des Automobil-Anwendungscodes und Metadaten durch, die die bevorstehende Fahrzeugkonfiguration, die enthaltenen HPCs und ECUs sowie die erforderliche Bereitstellung zur Durchführung der SIL-Validierung beschreiben.

  3. Der Automobilentwickler verwendet Metadatenerweiterungen, um Konfigurationen anzupassen, z. B. das Ändern der Merkmale des HPC basierend auf neuen Informationen aus dem Engineering-Team.

  4. Das Ändern der Konfiguration löst die Metadatenverarbeitungserweiterungaus. Es führt die Metadatenüberprüfung durch, generiert alle erforderlichen Artefakte und konfiguriert eine Bereitstellungskampagne für die Ausführungsumgebung.

  5. Nachdem alle Konfigurationsänderungen abgeschlossen sind, sendet der Entwickler eine Pullanforderung, die eine GitHub-Aktion für die Bereitstellung auslöst.

  6. Die GitHub-Bereitstellungsaktion löst die Metadaten- und Orchestrierungsdiensteaus, die die Bereitstellungskampagne ausführen.

  7. Die Metadaten- und Orchestrierungsdienste die Azure-Entwicklungsumgebung verwenden, um die erforderliche Berechnung bereitzustellen, um die neue Version der elektronischen Automobilarchitektur zu simulieren.

  8. Die Metadaten- und Orchestrierungsdienste den gewünschten Zustand der Berechnung basierend auf der Kampagne festlegen. Die Dienste verwenden den Artefaktespeicher zum Bereitstellen und Konfigurieren der erforderlichen vHPC- und ECU-Images.

Workflow: Software over the air (SOTA)-Updates für Automobilanwendungen

Contoso Automotive möchte containerisierte Automobilanwendungen in seiner Engineering-Testflotte bereitstellen, um Integrationstests durchzuführen. Der Automobilentwickler erstellt, testet und überprüft die neue Version der Anwendung und stellt sie auf dem Fahrzeug bereit.

Diagramm, das eine Softwareupdatearchitektur zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

  1. Der Automobilentwickler erstellt eine Version. Die Version enthält eine Definition des gewünschten Zustands für den Softwarestapelcontainer und eine Definition des Builds.

  2. Die Toolkette- und Orchestrierungsdienste den Veröffentlichungsprozess auslösen. Die Dienste stellen die erforderliche Infrastruktur bereit, um Softwarecontainer zu erstellen, zu validieren und freizugeben.

  3. Während der Ausführung werden die Anwendungen mit containerbasierten Tools erstellt, überprüft und freigegeben. Je nach den Anforderungen der Tools können sie auf Azure Kubernetes Service (AKS) für containerisierte Anwendungen bereitgestellt oder auf dedizierten VMs bereitgestellt werden.

    Nach Abschluss des Builds werden die Ergebnisse an Containerregistrierung für freigegebene Container übertragen, und die Änderungen werden im OTA-Serverregistriert.

  4. Der OTA-Client verfügt über einen dedizierten OTA-Agent für containerbasierte Anwendungen. Die gewünschten Agent für die Statussuche stellt eine Verbindung mit den Toolchain- und Orchestrierungsdiensten zum Abrufen der gewünschten Zustandsdefinition dar.

  5. Die Container-Orchestrierung Modul lädt die gewünschten Container aus Containerregistrierungherunter und aktiviert sie.

Workflow: Automotive Software Stack

In dieser Lösung synchronisiert ein generischer Fahrzeugsoftwarestapel seinen Zustand mit der Azure-Cloud.

Der Stapel verfügt über die folgenden Komponenten:

  • Eine Serviceregistrierung ermöglicht es, Dienstleistungen innerhalb des Fahrzeugs zu registrieren und zu entdecken.

  • Mit dem dynamischen Themenverwaltungs- können Dienste Nachrichten in benannten Themen abonnieren und veröffentlichen und das Kommunikationsprotokoll abstrahieren.

  • Der digitalen Twin-Service im Fahrzeug den Zustand des Fahrzeugs aufrecht, darunter Signale von ECUs und Recheneinheiten wie AD/ADAS und Infotainment.

  • Die digitale Twin Cloud-Synchronisierung synchronisiert den lokalen Zustand des Fahrzeugs mit dem Zustand in der Cloud, um digitale Produkte und Dienste bereitzustellen, die keine direkte Verbindung mit dem Auto erfordern.

Diagramm, das die Softwarestapelarchitektur zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

  1. Alle Komponenten registrieren ihre Funktionen über die Dienstregistrierung.

  2. Vehicle computet die Zustandsbeschreibungen für den digitalen Twin-Anbieter des digital twin Service. Nach der Registrierung können die Computeeinheiten Aktualisierungen im Zustand veröffentlichen.

    1. Vehicle compute registriert komplexe Zustandsobjekte und Interaktionen.
    2. Fahrzeug-ECUs registrieren, welche Signale für Automobilanwendungen zur Verfügung stehen und welche Befehle akzeptiert werden können.
  3. Der digital twin im Fahrzeug veröffentlicht Zustandsänderungen und Aktualisierungen des dynamischen Themenmanagements. Diese Updates sind in Themen organisiert.

  4. Automotive-Anwendungen können Nachrichten von jeder Quelle abonnieren, die von der dynamischen Themenverwaltung verwaltet wird. Diese Anwendungen werden relevanten Themen abonniert und reagieren auf Zustandsänderungen. Sie können auch eigene Nachrichten veröffentlichen.

  5. Der Digital Twin Service veröffentlicht auch ausgewählte Themen für die Digital Twin Cloud Synchronisierung Service.

  6. Die Digital Twin Cloud-Synchronisierung kann einen Kartographen verwenden, um die Themennamen (über einen digitalen Twin Mapping Service) den entsprechenden Namen in der Cloud zuzuordnen. Durch diese Harmonisierung wird die Abhängigkeit zwischen Fahrzeug- und Cloudsoftware sowie zwischen Fahrzeugmodellen reduziert.

  7. Der Cloud Connector veröffentlicht Updates für die Cloud und abonniert Zustandsänderungen, die von anderen Diensten und Anwendungen veröffentlicht werden.

  8. Azure Event Grid leitet die Nachrichten an die relevanten Dienste und Anwendungen weiter. Der Zustand des Fahrzeugs wird über Dienstleistungen gespeichert. Beispielsweise kann Azure Cache für Redis den letzten bekannten Wert für schnellen Zugriff und Abruf speichern, und Azure Data Explorer kann kurzfristige Fahrzeugzustandsverlauf und -analysen bereitstellen.

Komponenten

Die folgenden GitHub- und Azure-Komponenten werden in dieser Architektur verwendet.

Entwicklungstools

  • Containerregistrierung ist ein Dienst, den Sie zum Erstellen, Speichern und Verwalten von Containerimages und Artefakten in einer privaten Registrierung für alle Arten von Containerbereitstellungen verwenden können. Automotive-Software hat containerbasierte Automobilanwendungen und Arbeitslasten übernommen. Die SDV-Toolkette verwendet Azure-Containerregistrierungen für containerentwicklung, Bereitstellungsprozesse und Pipelines.

  • Dev Box bietet Entwicklern Self-Service-Zugriff auf einsatzbereite, cloudbasierte Arbeitsstationen, die als Entwicklerfelder bezeichnet werden, die mit projektspezifischen Tools, Quellcode und vordefinierten Binärdateien für die sofortige Workflowintegration angepasst werden können.

  • GitHub ist eine Entwicklungsplattform, mit der Sie Code hosten und überprüfen, Projekte verwalten, zusammenarbeiten und Software zusammen mit Entwicklern erstellen können, die sich innerhalb oder außerhalb Ihrer Organisation befinden.

  • Visual Studio Code ist ein einfacher Quellcode-Editor, der für Windows, macOS und Linux verfügbar ist. Es verfügt über ein reichhaltiges Ökosystem von Erweiterungen für mehrere Sprachen und Laufzeiten.

Ausführungsumgebung

  • Azure Deployment Environments bietet eine vorkonfigurierte Sammlung von Azure-Ressourcen. Es ermöglicht Entwicklungsteams, mithilfe von projektbasierten Vorlagen schnell und einfach Infrastruktur zu erstellen. Vorlagen schaffen Konsistenz und bewährte Methoden, während die Sicherheit maximiert wird.
  • Azure Compute ist eine umfassende Suite von Clouddiensten, mit der Entwickler ihre Fahrzeugsoftwarestapel, Anwendungen und Workloads auf VMs und Containern ausführen können. Es gibt viele Computevarianten, einschließlich speicheroptimierter, CPU-optimierter, hochleistungsfähiger und allgemeiner Berechnung.
  • Compute Gallery ist ein Dienst, der Versionsverwaltungs- und Gruppierungsressourcen unterstützt. Sie können Bilder für die Community über Abonnements hinweg und zwischen Microsoft Entra ID-Mandanten freigeben. Sie können Bereitstellungen auch mit Ressourcenreplikaten in jeder Azure-Region skalieren. Compute Gallery bietet Struktur und Organisation für Automotive-Softwarestapelartefakte.
  • Azure Arc vereinfacht Governance und Verwaltung und bietet eine konsistente Cloud an die HIL-Verwaltungsplattform. Automobil-OEMs können Azure Arc verwenden, um immer komplexere HIL-Umgebungen in lokalen und cloudbasierten Rechenzentren zu steuern und zu steuern.
  • Azure Blob Storage ist ein Dienst, der massive skalierbare Objektspeicher für jede Art von unstrukturierten Daten wie Bilder, Videos, Audio und Dokumente bereitstellt, die Von Automobilsoftwarestapeln produzieren und nutzen.
  • Azure-Netzwerkdienste globale, sichere und zuverlässige Dienste sind. Automotive-Softwarestapel und Entwicklungstools erfordern Datenverarbeitungspipelinen, damit sie auf HIL-Farmen zugreifen können, um autonome und unterstützte Fahrlösungen zu entwickeln und zu testen. Die Netzwerkdienste in Azure bieten verschiedene Netzwerkfunktionen, z. B. Konnektivitätsdienste, Anwendungsschutzdienste, Anwendungsbereitstellungsdienste und Netzwerküberwachung.

Alternativen

Die Azure-Dienste, die Sie für Ihre Implementierung der Architektur auswählen, hängen von vielen Faktoren ab.

Das Beispiel im Abschnitt Bereitstellen dieses Szenarios verwendet AKS. Serverless Kubernetes wird verwendet, um Microservices auszuführen, Sicherheits- und Governance-Funktionen auf Unternehmensniveau bereitzustellen und eine integrierte CI/CD-Erfahrung bereitzustellen. Als alternative schnelle und einfache Methode können Sie Microservices in Azure-Containerinstanzen ausführen. In dieser Alternative müssen Sie keinen Dienst auf höherer Ebene wie AKS übernehmen.

Das Beispiel im Abschnitt Bereitstellen dieses Szenarios schlägt die Verwendung von Azure Event Hubs oder Azure Service Bus zur Implementierung eines uBus-Diensts vor. Weitere Informationen finden Sie unter Auswählen zwischen Azure-Messagingdiensten. Messagingdienste sind häufig komplementär, und Sie können mehrere verwenden.

Die Anwendungen und Dienste in dieser Architektur werden über Azure Resource Manager-Vorlagen oder Bicep bereitgestellt. Alternativ können Sie Terraform-Skripts verwenden, um Cloudinfrastruktur bereitzustellen und zu verwalten.

Alternativen zur Fahrzeugnachrichten-, Daten- und Analyseschicht der Architektur finden Sie unter Alternativen.

Szenariodetails

Autonome und verbundene SDVs eröffnen eine ganz neue Welt von Funktionalität, Serviceierbarkeit und Zuverlässigkeit. Wenn Hardware und Software entkoppelt werden, können OEMs unabhängige Anwendungen entwickeln, um bestimmte Funktionen und Dienste zu adressieren. Diese Methode erleichtert das Aktualisieren und Hinzufügen von Software zur gesamten Fahrzeugplattform.

Automobilhersteller und ihre Zulieferer werden ermutigt, ihre Automobilaktivitäten anzupassen, um agile Softwareentwicklungszyklen zu ermöglichen, die flexibel und anpassbar für kurze Entwicklungszyklen und häufige Versionen sind. Diese Zyklen tragen zur Sicherstellung der Zusammenarbeit und kontinuierlichen Verbesserung bei.

Ohne eine standardisierte, offene und konfigurierbare Toolkettestrategie verfügen OEMs möglicherweise über eine Landschaft von verstreuten Tools. Für eine wirklich agile Softwareentwicklungsstrategie müssen Unternehmen über eine einheitliche Toolkette verfügen, die auf einer modernen cloudbasierten Plattform basiert, die für Azure nativ ist. Die Plattform muss Entwicklern die Zusammenarbeit und Wiederverwendung von Software ermöglichen. Sie muss Entwicklern von Drittanbietern die Möglichkeit bieten, Anwendungen zu erstellen. Die Plattform ist besonders hilfreich für Entwickler, die über starke Softwarekenntnisse verfügen, aber keine vorherige Hardwareerfahrung im Automobilsektor.

Diese Automobilbeispielarchitektur erfüllt die Anforderungen der sich schnell entwickelnden Automobilindustrie. Es wendet das Shift-Left-Prinzip an, das die frühzeitige Integration von Software- und Hardwarekomponenten betont. Sie ermöglicht kontinuierliche Tests und Validierungen ab den frühen Entwicklungsphasen. Die Virtualisierung spielt eine zentrale Rolle, sodass die Erstellung virtueller Prototypen und Testumgebungen innovationen beschleunigt und physische Prototypenanforderungen reduziert werden kann.

Das Herzstück dieser Architektur ist die robuste CI/CD-Pipelineautomatisierung, die eine nahtlose Integration, Tests und Bereitstellung von Softwareupdates während des gesamten Lebenszyklus des Fahrzeugs gewährleistet. Diese Flexibilität ermöglicht schnelle Softwareupdates, die sicherheitsrelevante Sicherheitsrisiken umgehend beheben, die Leistung verbessern und neue Features bereitstellen. Es hilft Verbrauchern, ein sicheres, funktionsreiches Fahrerlebnis zu bieten.

Das folgende Diagramm zeigt eine allgemeine Übersicht über die Automobil-SDV-Toolkette-Architektur.

Diagramm, das SDV-Szenarien zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

Potenzielle Anwendungsfälle

  • Entwickler-Onboarding-: Implementieren Sie eine vollständig konfigurierte Automobilentwicklungsumgebung, um das Onboarding von Automobilsoftwareentwicklern zu beschleunigen.

  • Effiziente Entwicklung: Simulieren des Verhaltens verschiedener Hardware- und Softwarekombinationen. Reduzieren Sie die Abhängigkeit von Rand- oder Fahrzeugsilicium frühzeitig im Entwicklungsprozess.

  • SIL-Überprüfung: Führen Sie automatisierte Build-, Test- und Validierungspipelinen aus, um das Verhalten Ihrer Softwareanwendung zu überprüfen. Verwenden Sie Computeressourcen in der Cloud für einen schnelleren Entwicklungszyklus.

  • HIL-Überprüfung: Vereinfachen der Bereitstellung und Überwachung von HIL-Farmen.

  • Test-Flottenvalidierung: Erfassen von Softwaremetriken, Protokollen und Ablaufverfolgungen der Softwareanwendungen sowie Fahrzeugtelemetrie- und Signaldaten. Verwenden Sie diese Daten, um eine umfassende Übersicht über das Fahrzeugverhalten für Validierung, Ursachenanalyse und Genehmigung zu erstellen.

  • Software-Versionen: Erstellen Sie nachverfolgbare Softwareversionen, die über DevOps-Praktiken für die Fahrzeugflotte aktualisiert und verwaltet werden können.

  • kontinuierliche Verbesserung: Verwenden Sie aus dem Feld gesammelte Informationen, um Verbesserungen in Ihren Softwareanwendungen voranzutreiben.

Empfehlungen

Die folgenden Empfehlungen tragen dazu bei, dass Sie Ihre Azure-Umgebung effektiv verwalten. Befolgen Sie diese Empfehlungen, es sei denn, Sie haben eine Anforderung, die sie außer Kraft setzt.

  • Befolgen Sie bewährte Methoden, wenn Sie Azure-Dienste bereitstellen und konfigurieren, um eine sichere, effiziente und kostengünstige Umgebung sicherzustellen.

  • Definieren Sie Ihre Azure-Ressourcen gemäß Ihren Implementierungsanforderungen. Diese Ressourcen können virtuelle Computer, Kubernetes-Cluster, Messagingdienste und Daten- und Analysedienste umfassen.

  • Implementieren Sie Ressourcen-Manager-Vorlagen für Infrastruktur als Code (IaC), damit Sie Ihre Bereitstellung automatisieren und Konsistenz gewährleisten können.

  • Implementieren Sie rollenbasierte Zugriffssteuerung (RBAC), um Benutzern und Diensten Berechtigungen auf geringster Berechtigungsbasis zu gewähren.

  • Verwenden Sie Das Azure Security Center, um Sicherheitsbedrohungen proaktiv zu überwachen und zu mindern.

  • Erwägen Sie die Verwendung von Azure-Lastenausgleichs- und Verfügbarkeitssätzen oder Verfügbarkeitszonen, um Skalierbarkeit und Redundanz zu verbessern.

  • Überwachen Sie regelmäßig die Leistung und Nutzung Ihrer Azure-Ressourcen, damit Sie Kosten optimieren und die Leistung verbessern können. Verwenden Sie Tools wie Azure Monitor und Microsoft Cost Management.

Betrachtungen

Diese Überlegungen implementieren die Säulen des Azure Well-Architected-Frameworks, das eine Reihe von leitden Tenets ist, die verwendet werden können, um die Qualität einer Workload zu verbessern. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Zuverlässigkeit

Zuverlässigkeit stellt sicher, dass Ihre Anwendung die Verpflichtungen erfüllen kann, die Sie an Ihre Kunden vornehmen. Weitere Informationen finden Sie unter Übersicht über die Zuverlässigkeitssäule.

Sie können eine End-to-End-Anwendungsinfrastruktur ausführen, die dienstorientiert ist und die Implementierung einer verteilten Kommunikationsprotokollplattform auf Azure mit moderner CI/CD unterstützt. Wenn Sie diese Lösung verwenden, benötigen Sie eine zuverlässige und hochverwendbare Architektur. Architekturanleitungen und bewährte Methoden zum Verwalten und Ausführen von Diensten auf AKS finden Sie unter AKS-Übersicht.

HIL-Tests sind ein unverzichtbarer und wichtiger Bestandteil des Entwicklungsprozesses und der Teststrategie der Automobilsoftware. Wenn Sie die Netzwerkarchitektur für HIL-Farmen entwerfen und implementieren, sollten Sie Entwerfen für hohe Verfügbarkeit mit ExpressRoute-in Betracht ziehen. Verwenden Sie diese Strategie, um einzelne Fehlerpunkte zu reduzieren und die Verfügbarkeit von Remoteumgebungen für Ihre Entwicklungs- und Testteams zu maximieren.

Sicherheit

Die Sicherheit bietet Sicherheitsmaßnahmen gegen bewusste Angriffe und den Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Sicherheitssäule.

Sicherheit ist einer der wichtigsten Aspekte einer Architektur. Um die Sicherheit komplexer Systeme zu gewährleisten, müssen Sie die geschäftlichen, sozialen und technischen Bedingungen verstehen. Erwägen Sie die Implementierung der Codescanfunktionen von GitHub, damit Sie Sicherheitsprobleme und kritische Fehler frühzeitig im Entwicklungsprozess finden und beheben können. GitHub unterstützt die Codierungsstandards AUTOSAR C++ und CERT C++-, die die Entwicklung funktionaler Sicherheitsanwendungen ermöglicht.

Erwägen Sie Sicherung Ihrer End-to-End-Lieferkette auf GitHub-.

Erwägen Sie die Einführung von Azure Key Vault, um die End-to-End-Sicherheit aufrechtzuerhalten, wenn Sie vertrauliche und unternehmenskritische Elemente behandeln, z. B. Verschlüsselungsschlüssel, Zertifikate, Verbindungszeichenfolgen und Kennwörter. Key Vault-verwaltete Hardwaresicherheitsmodule (KEY Vault Managed Hardware Security Modules, HSMs) bieten eine robuste Lösung, die den gesamten Softwareentwicklungs- und Lieferkettenprozess verhindert. Mit key Vault verwalteten HSMs können Sie Automobilanwendungen verwenden, um vertrauliche Ressourcen sicher zu speichern und zu verwalten und sicherzustellen, dass sie vor potenziellen Cyber-Sicherheitsbedrohungen geschützt bleiben. Sie können die Sicherheit weiter verbessern, indem Sie den Zugriff und die Berechtigungen für kritische Ressourcen mit RBAC regeln.

Kostenoptimierung

Bei der Kostenoptimierung geht es um Möglichkeiten, unnötige Ausgaben zu reduzieren und die betriebliche Effizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Kostenoptimierungssäule.

  • Stellen Sie beim Erstellen von vECUs sicher, dass die VM-Größe den Anforderungen entspricht. Wenn Sie die Konfiguration so ändern, dass sie eine größere Größe als erforderlich verwendet, erhöht sich die Kosten, insbesondere, wenn mehrere Computer parallel ausgeführt werden, um lange ausgeführte Aufgaben auszuführen.

  • Bei Build-, Validierungs- und Testaufgaben, die nicht zeitkritisch sind, sollten Sie virtuellen Azure Spot-Computerverwenden. Sie können von nicht genutzter Kapazität profitieren und erhebliche Kosteneinsparungen verursachen.

  • Wenn Sie über eine Azure Consumption Commitmentverfügen, sollten Sie berechtigten Partnerangebote von Azure Marketplace verwenden, wenn Sie Entwicklungstools und vECUs in der Ausführungsumgebung bereitstellen.

  • Tipps zum Ausführen autonomer Fahrzeugentwicklungslasten finden Sie unter Erstellen einer AVOps-Lösung.

  • Copilot bietet Codevorschläge in Echtzeit und AutoVervollständigen, wodurch der Softwareentwicklungsprozess beschleunigt wird. Automotive-Softwareentwickler können Copilot verwenden, um Code schnell und effizient zu schreiben, wodurch die Zeit für neue Fahrzeugfeatures und -updates reduziert wird.

Operative Exzellenz

Operative Exzellenz deckt die Betriebsprozesse ab, die eine Anwendung bereitstellen und in der Produktion ausgeführt werden. Weitere Informationen finden Sie unter Übersicht über die operative Exzellenzsäule.

Die Automobil-SDV-Toolkette umfasst wichtige Software-Engineering-Strategien, z. B.:

  • Bereitstellung der IaC-Umgebung.
  • CI/CD-Pipelines zum Erstellen und Freigeben von Fahrzeugsoftwarestapeln.
  • Automatisierte Tests für den Übergang zu einem Shift-left-Ansatz.
  • Konfiguration als Code, um Konfigurationsabweichungen zwischen Umgebungen zu vermeiden.

Erwägen Sie, diese wichtigen Strategien für alle Workloads für Konsistenz, Wiederholung und frühe Erkennung von Problemen zu übernehmen.

Betrachten Sie eine Infrastruktur, die von Azure Arc aktiviert ist, um Governance und Verwaltung in Azure Cloud- und lokalen Umgebungen, HIL-Tests und Validierungsfarmen zu vereinfachen.

Die KI-gestützte Unterstützung von Copilot kann die Allgemeine Codequalität verbessern, indem die Wahrscheinlichkeit von menschlichen Fehlern und die Standardisierung von Codierungsmethoden reduziert wird. Qualitativ hochwertigen Code ist in der Automobilindustrie von entscheidender Bedeutung, wo Softwaresicherheit und Zuverlässigkeit von größter Bedeutung sind.

Leistungseffizienz

Die Leistungseffizienz ist die Fähigkeit Ihrer Arbeitsauslastung, um die Anforderungen der Benutzer effizient zu erfüllen. Weitere Informationen finden Sie unter Übersicht über die Leistungseffizienz-Säule.

Bestimmen Sie Aufgaben in Ihren Build- und Testpipelines, die Sie parallelisieren können, um die Leistungseffizienz zu verbessern.

Erwägen Sie die Implementierung Leistungseffizienzmuster für performante Anwendungen und Workloads, die auf dem Beispiel für verteilte Kommunikationsprotokolle im nächsten Abschnitt basieren.

Bereitstellen dieses Szenarios

Der Hauptmandant für die Eclipse SDV ist ein erster Codequellansatz, der Flexibilität für die Implementierung bietet. In den folgenden Beispielen werden vorhandene Eclipse-Projekte verwendet und ihre Integration in Azure-Dienste beschrieben.

Beispiel: Verteiltes Kommunikationsprotokoll in Azure

Eclipse uProtocol ist eines von vielen verteilten Kommunikationsprotokollen, die in der Automobilindustrie verwendet werden. Es ist ein transportagnostisches, mehrschichtiges Kommunikationsprotokoll, das auf bestehenden Automobil- und Internetstandards basiert. Sie bietet eine allgegenwärtige Sprache für Ermittlung, Abonnement und Messaging, mit der Apps und Dienste, die auf einem heterogenen System ausgeführt werden, miteinander kommunizieren können.

Die folgende Übersicht beschreibt die Dienste, die zum Implementieren eines verteilten Kommunikationsprotokolls erforderlich sind. In diesem Beispiel werden uProtocol- und Azure-Dienste verwendet.

Überblick

Diagramm, das das verteilte Kommunikationsprotokoll uProtocol in Azure zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

  • Nachrichten werden vom Cloud Connector des Fahrzeugs an Event Gridgesendet. Nachrichten werden über die uProtocol Definition über MQTT übertragen.

  • Das Cloudgateway ist der Clouddienst, mit dem Geräte verbunden sind, um mit der Back-Office-Domäne oder dem Back-Office-Gerät zu kommunizieren.

  • Die uStreamer- ist ein Ereignis dispatcher, der es uEs auf Geräten ermöglicht, nahtlos mit verschiedenen Transportschichtprotokollen zu kommunizieren. Es führt Funktionen aus, z. B. Dateiübertragung und Ereignispufferung. Wenn z. B. Ereignisse von einem Transport zum nächsten wechseln, fließen sie durch den uStreamer. Der uStreamer ähnelt einem IP-Router.

  • Die uBus ist ein Nachrichtenbus, der CEs zwischen uEs über einen gemeinsamen Transport verteilt. Es bietet Multicast- und Weiterleitungsfunktionen. Sie funktioniert wie ein Netzwerkswitch.

  • Die uCDS- bietet uEs eine Möglichkeit, sich gegenseitig zu ermitteln, einschließlich ihrer Position (Adresse) und Eigenschaften.

  • Die uSubscription- ist ein Abonnementverwaltungsdienst, der die Entwurfsmuster des Herausgebers und Abonnenten für die uEs-verwaltet.

  • Die uTwin ist ein lokaler Cache der veröffentlichten Ereignisse. Die uTwin speichert die veröffentlichte Nachricht über einen Primärschlüssel. Lokale Softwarekomponenten können den Schlüssel abrufen. Dieser Primärschlüssel ist der vollständige Name des Themas, einschließlich des Gerätenamens. Der Primärschlüssel stellt ein Thema dar, sodass nur das letzte Ereignis eines bestimmten Themas im uTwin gespeichert wird. Die Sammlung von Ereignissen, die in einer uTwin-Instanz eines Geräts gespeichert sind, deren Schlüssel einen bestimmten Gerätenamen enthalten, stellen den digitalen Zwilling dieses Geräts dar. Beispiele für Fahrzeugereignisse sind Updates für Reifendruck, Fensterposition, Gangposition und Fahrzeugmodus (Fahren oder Parken). Ereignisse können alle Informationen sein, die im Fahrzeug veröffentlicht werden und für den Betrieb des Fahrzeugs oder die Aktivierung ihrer Funktionen verwendet werden.

  • Die uEs sind Anwendungen und Dienste, die Endbenutzern Funktionen bieten. Diese Apps verwenden die wichtigsten uEs für Ermittlung, Abonnement und Zugriff auf den digitalen Zwilling.

In der folgenden Tabelle sind vorgeschlagene Dienste aufgeführt, die für eine uProtocol-Implementierung in Azure relevant sind.

uProtocol-Komponente Funktionalität Azure-Dienst
Cloudgateway MQTT-Broker Ereignisraster
uStreamer Dateiübertragung, Ereignispufferung, D2D-Routing, Protokollübersetzung Event Hubs, Storage, Functions, AKS
uDiscovery Dienstermittlung Microservices auf AKS
uBus Multicastweiterleitung Event Hubs, Service Bus, Event Grid
uSubscription Pub/Sub Topic Management Microservices auf AKS
uTwin Letzter bekannter Zustand Azure Digital Twins, Azure Cache für Redis

Weitere Informationen zu uProtocol-Komponenten, SDKs und Dokumentation finden Sie im uProtocol GitHub-Repository.

Bereitstellen von Geräten für uProtocol

Diagramm, das den Bereitstellungsfluss von uProtocol zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

  1. Die Fabrikanlage beauftragt das Fahrzeuggerät in den gewünschten Bauzustand. Die Inbetriebnahme umfasst Firmware- und Software-Erstinstallation und -konfiguration. Im Rahmen dieses Prozesses ruft das Factorysystem das Gerätezertifikat ab und schreibt es. Der Infrastrukturanbieter für öffentliche Schlüssel erstellt das Zertifikat.

  2. Das Werkssystem das Fahrzeug und gerät über die Fahrzeug- und Gerätebereitstellungs-API registriert.

  3. Die Geräteregistrierungsanwendung registriert die Geräteidentität in der Gerätebereitstellung und Geräteregistrierung.

  4. Die Informationen zur Authentifizierung und Autorisierung werden in Microsoft Entra IDgespeichert.

  5. Das Factorysystem löst den Gerätebereitstellungsclient aus, um eine Verbindung mit dem Gerätebereitstellungsdienstherzustellen. Das Gerät ruft die Verbindungsinformationen zur zugewiesenen MQTT-Broker-Funktion in Event Gridab.

  6. Das Werkssystem löst das Gerät aus, um erstmals eine Verbindung mit dem MQTT-Broker-Feature in Event Grid herzustellen. Ereignisraster authentifiziert das Gerät mit dem Clientauthentifizierungsstammzertifikat und extrahiert die Clientinformationen.

  7. Event Grid verwaltet die Autorisierung für zulässige Themen über die Geräteinformationen, die in Microsoft Entra IDgespeichert sind.

  8. Das OEM Händlersystem löst die Registrierung eines neuen Geräts aus, wenn ein Teileaustausch erforderlich ist.

Beispiel: Eclipse Automotive Software Stack

Die folgende Architektur beschreibt einen Fahrzeugsoftwarestapel, der auf Eclipse-Projektkomponenten basiert. In dieser Architektur kann Eclipse uProtocol als Kommunikationsprotokoll verwendet werden.

Diagramm, das die Architektur für den Eclipse SDV-basierten Automobilsoftwarestapel zeigt. Laden Sie eine PowerPoint-Datei dieser Architektur herunter.

  • Eclipse Chariott ist ein gRPC-Dienst, der eine gemeinsame Schnittstelle für die Interaktion mit Anwendungen bereitstellt. Anwendungen können sich bei Eclipse Chariotts Dienstregistrierung registrieren, um ihre Funktionen anzukündigen und die Dienstermittlung zu aktivieren.

  • Eclipse Ibeji bietet die Möglichkeit, eine digitale Darstellung des Fahrzeugzustands und seiner Fähigkeiten durch eine erweiterbare, offene und dynamische Architektur auszudrücken, die Zugriff auf die Fahrzeughardware, Sensoren und Funktionen bietet.

  • Eclipse Freyja ist eine Anwendung, die die Synchronisierung zwischen dem digitalen Zwillingszustand auf dem Fahrzeug (instanz digital twin) und dem digitalen Zwillingszustand in der Cloud (dem kanonischen digitalen Zwilling) ermöglicht.

  • Eclipse Agemo ist ein gRPC-Dienst, der Veröffentlichungs- und Abonnementfunktionen für Anwendungen im Fahrzeug bereitstellt, einschließlich Eclipse Ibeji und Eclipse Chariott.

Beitragende

Dieser Artikel wird von Microsoft verwaltet. Sie wurde ursprünglich von den folgenden Mitwirkenden verfasst.

Hauptautoren:

Andere Mitwirkende:

Um nichtublic LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.

Nächste Schritte