Bearbeiten

Bausteine für Simulationsumgebungen für autonomes Fahren

Azure Container Instances
Microsoft Entra ID
Azure Virtual Network
Azure Virtual Machines
Azure Pipelines

Die unten beschriebene Beispielworkload beschreibt das Erstellen einer Simulation, die automatisch ausgeführt wird und die simulierte Fahrzeugfunktion über eine Azure DevOps-Pipeline bewertet. Diese Pipeline wird jedes Mal ausgeführt, wenn ein Techniker eine neue Version des Quellcodes der Beispielfunktion oder ihrer Simulationsumgebung prüft.

Aufbau

Diagramm: Bausteine für Simulationsumgebungen für autonomes Fahren

Laden Sie eine Visio-Datei dieser Architektur herunter.

Benutzereingabeebene

Der Entwickler interagiert nur mit dieser Ebene. Sie enthält die Entwicklerarbeitsstation (in unserem Anwendungsbereich eine Azure-VM) und die Spezifikationsdatei, die die Simulationsumgebung beschreibt.

Orchestrierungsebene

„Orchestrierung“ hat eine weit gefasste Bedeutung: Einige der mit diesem Wort beschriebenen Probleme sind trivial zu lösen, andere sind sehr viel komplexer. Das „Orchestrierungsproblem“ des Erstellens, Überwachens und Zerstörens von Containern und VMs wird z. B. von vielen Tools gelöst – die Azure-API selbst ist ein ausreichender „Orchestrator“ dafür.

Workflow

Es ist jedoch wichtig, die Blackbox für „Orchestrierung“ in kleinere Komponenten zu zerlegen.

  • Simulations-API: Diese API empfängt eine Spezifikationsdatei und ist der Einstiegspunkt für die Steuerung von Simulationsumgebungen und Simulationsausführungen mit der Orchestrierungsebene.

  • Interpreter: Diese Komponente interpretiert die Spezifikationsdatei in eine logische Struktur für den Simulations-Manager.

  • Simulations-Manager: Dies ist der Zustandsautomat, der das logische Simulationsumgebungsobjekt in die gewünschten Zustände und Aktionen umwandelt, die von anderen Komponenten verwendet werden können. Dies ist die Komponente, die das Erstellen, Ausführen und Nachbereiten der Simulation auslöst. Sie verwaltet auch interne Abhängigkeiten und Fehlermodi.

  • Scheduler: Diese Komponente weist die Bausteine den Infrastrukturressourcen zu und erstellt sie dort. Er berücksichtigt die Hardware- und Zugriffsanforderungen, die verfügbaren Ressourcen und die Ressourcengrenzwerte.

  • Umgebungs-Manager: Diese Komponente überwacht die zugrunde liegende Infrastruktur und reagiert auf Probleme, wenn z. B. ein Containerhost ausfällt.

  • Netzwerk-Manager: Diese Komponente verwaltet die Netzwerke und das Routing für Simulationsumgebungen. Jede Umgebung muss in einer isolierten Netzwerkumgebung bestehen, in der isolierte Bausteine eingehende Verbindungen zur Interaktivität empfangen. Diese Komponente wird auch verwendet, um Bausteine innerhalb einer Simulation aufzulösen (z. B. über ein internes DNS).

  • Zugriffs-Manager: Diese Komponente spiegelt die Autorisierung/Authentifizierung von Microsoft Entra ID im restlichen System wider.

  • Konfigurations-Manager: Diese Komponente fungiert als permanenter Speichermechanismus für den Zustand der Infrastruktur- und Simulationsumgebungen.

  • Infrastrukturabstraktion: Dies ist eine Abstraktionsschicht, die generische Befehle in spezifische Azure-API-Befehle für Container und VMs übersetzt.

  • Speicher-Manager: Diese Komponente verwaltet die Bereitstellung und das Anfügen von Speicher für Simulationsumgebungen (z. B. VM-Stammgeräte oder an Container angefügte Volumes).

  • Ressourcenmonitor: Diese Komponente überwacht die Ressourcennutzung auf Infrastrukturebene in einer Zeitreihendatenbank, die in die ADP-Kernüberwachung exportiert werden kann.

  • Protokoll-Manager: Diese Komponente fasst die Protokolle der erstellten Bausteine zur Überprüfung durch den Benutzer zusammen. Er exportiert auch Protokolle in die ADP-Kernprotokollierung.

Die Orchestrierungsebene steht im Mittelpunkt dieser Beispielworkload.

Infrastrukturebene der Simulation

Diese Ebene stellt alle ausgeführten Simulationsumgebungen dar.

  • Simulationsumgebung: Die Kombination der durch die Definitionsdatei und die Parameter definierten Bausteine wird hier in einem von allen anderen Simulationsumgebungen isolierten Netzwerk erstellt.

  • Bausteinvertrag: Der schriftliche Standard, der definiert, wie alle Bausteine Ausgaben, Fehler und Statusinformationen an die Orchestrierungsebene senden.

  • Bausteinpipeline: In diesem Bereich wird die Erstellung und Speicherung von Bausteinen verwaltet.

  • Bausteinrepository: Dies ist das Speicher- und Abrufsystem für Bausteinimages, z. B. eine Containerregistrierung und/oder ein Azure-Imagekatalog.

  • Bausteinfactory: Die CI/CD-Pipeline (Continuous Integration/Continuous Deployment), die Bausteinimages mithilfe unveränderlicher, verifizierbarer Komponentenpakete (z. B. DPKG oder APT) in einer deklarativen Konfigurationssprache (z. B. Chef oder Ansible) erstellt.

Speicherebene

Auf dieser Ebene werden die Ergebnisse der Simulation dauerhaft und zugänglich gespeichert. Dafür ist in erster Linie der Data Lake-Arbeitsstream der Entwicklungsplattform für mobile Anwendungen (MADP) zuständig, obwohl Ihre Ausgabe für dieses Team handhabbar sein muss.

  • Speicherschnittstelle: Die Schnittstelle, die es den Benutzern ermöglicht, mit der Speicherung von Simulationsergebnissen zu arbeiten. Sie arbeitet eng mit der oben genannten Orchestrierungskomponente „Speicher-Manager“ zusammen oder könnte durch diese ersetzt werden.

  • Speicher: Der Speichermechanismus, der für die Speicherung von Simulationsergebnissen verwendet wird (z. B. Azure Blob Storage- oder Azure Disk Storage-Ressourcen).

Komponenten

Azure Virtual Machines bietet bedarfsgesteuerte, skalierbare Computingressourcen, die Ihnen die Flexibilität der Virtualisierung bieten, ohne physische Hardware kaufen und verwalten zu müssen.

Azure Virtual Network ist der Grundbaustein für Ihr privates Netzwerk in Azure. Mit Azure Virtual Network können zahlreiche Arten von Azure-Ressourcen (beispielsweise virtuelle Azure-Computer) sicher untereinander, aber auch mit dem Internet und mit lokalen Netzwerken kommunizieren.

Mit Azure Container Instances lassen sich Container in Azure besonders schnell und einfach ausführen, ohne dass Sie dazu virtuelle Computer verwalten oder einen übergeordneten Dienst einführen müssen.

Azure Container Registry ist ein verwalteter, privater Docker-Registrierungsdienst, der auf Version 2.0 der Open-Source-Docker-Registrierung basiert. Sie können Azure-Containerregistrierungen mit Ihren vorhandenen Pipelines für die Containerentwicklung und -bereitstellung verwenden, oder Azure Container Registry Tasks nutzen, um Containerimages in Azure zu erstellen. Erstellen Sie bedarfsgesteuerte oder voll automatisierte Builds mit Triggern wie etwa Quellcode-Commits und Basisimage-Aktualisierungen.

Azure Pipelines sind Teil der Azure DevOps Services und dienen zum Durchführen von automatisierten Build-, Test- und Bereitstellungsvorgängen. Sie können auch CI/CD-Lösungen von Drittanbietern, z.B. Jenkins, verwenden.

Microsoft Entra ID ist der cloudbasierte Identitäts- und Zugriffsverwaltungsdienst, der Benutzer*innen, Dienste und Anwendungen authentifiziert.

Azure Storage bietet eine langlebige, hochverfügbare und extrem skalierbare Cloudspeicherlösung. Es umfasst Objekt-, Datei-, Datenträger-, Warteschlangen- und Tabellenspeicherfunktionen.

Azure Monitor erfasst Telemetriedaten von einer Vielzahl von lokalen und Azure-Quellen. Dieser Dienst sammelt und speichert Telemetriedaten in einem kosten- und leistungsoptimierten Protokolldatenspeicher.

Alternativen

Diese Architektur verwendet VMs und Container für die Bereitstellung der verschiedenen Tools und Dienste. Alternativ können Sie auch Azure Kubernetes Services (AKS) verwenden. AKS bietet eine serverlose Kubernetes-Instanz, ein integriertes CI/CD-Erlebnis und Sicherheit und Governance auf Unternehmensniveau.

Der Speichermechanismus, der für die Speicherung von Simulationsergebnissen in dieser Architektur verwendet wird, basiert auf Azure Blob Storage oder Azure Disk Storage. Als Alternative für größere Workloads können Sie auch die großen Daten- und Analyselösungen von Azure für die Speicherung und Analyse von Daten in Betracht ziehen.

Verwenden Sie außerdem Azure Monitor, um die Leistung Ihrer Infrastruktur zu analysieren und zu optimieren und um Netzwerkprobleme zu überwachen und zu diagnostizieren, ohne sich bei Ihren VMs anzumelden.

Szenariodetails

Zur Bewertung des autonomen Fahrens (AD) müssen Funktionstechniker das Verhalten von Fahrzeugen mit AD-Funktionen simulieren. Betrachten Sie das folgende Beispiel für ein Fahrszenario:

Ein Testfahrzeug fährt auf einer dreispurigen Autobahn autonom mit 130 km/h auf der rechten Spur. In 200 m Entfernung fährt ein Lkw auf der gleichen Spur und in der gleichen Richtung mit 90 km/h. Auf der mittleren Fahrspur ist kein Fahrzeug in der Nähe zu sehen. Die Straßenmarkierungen sind sichtbar, die Sonne scheint senkrecht auf das Fahrzeug und die Straße ist trocken.

Eine endliche Simulation des Verhaltens eines Fahrzeugs, die ein solches Szenario verwendet, wird als Simulationsausführung bezeichnet. Im obigen Szenario besteht das erwartete Verhalten Ihres simulierten Fahrzeugs darin, den Lkw bequem zu überholen, ohne einen Unfall zu verursachen und ohne gegen irgendwelche Verkehrsregeln zu verstoßen. Indem sie für jede neue Version einer Funktion eine Simulation durchführen, testen die AD-Funktionstechniker, ob die neue Version immer noch das erwartete Verhalten aufweist.

Um eine Simulation durchzuführen, verwenden AD-Funktionstechniker in der Regel eine Reihe von Softwareanwendungen. Dazu gehören Virtual Test Drive (VTD), Time Partition Testing (TPT), Avionics Development System 2G (ADS2) und Automotive Data and Time-Triggered Framework (ADTF), die alle entsprechend ihrer spezifischen Konfigurationen zum Testen einer bestimmten autonomen Fahrfunktion wie dem Highway Pilot miteinander kommunizieren. Die Bereitstellung dieser Softwaretools und ihrer Konfigurationen auf physischen und/oder virtuellen Computern (VMs) an lokalen Standorten und/oder in der Cloud wird als Simulationsumgebung bezeichnet.

Um die Gültigkeit der von jeder Simulation erzeugten Testergebnisse zu gewährleisten, sollten Sie sicherstellen, dass die Simulation in einer neuen Simulationsumgebung beginnt, die auf ihren Anfangszustand eingestellt ist.

Jedes Team für autonomes Fahren benötigt einen eigenen Satz von Anwendungen in seiner Simulationsumgebung mit einer eindeutigen Konfiguration. Viele Teams werden auch mehrere verschiedene Simulationsumgebungen benötigen. Um etwa einen LIDAR-Sensor zu bewerten, benötigen Sie eine Objektsimulation mit sehr hoher Auflösung, aber keine anderen Fahrer, Straßenmarkierungen oder anderen Features. Auch wenn jede Umgebung eindeutig ist, gibt es erhebliche Überschneidungen bei den verwendeten Anwendungen. Beispielsweise verwenden viele Teams VTD in mehreren Simulationsumgebungen.

Es ist möglich, eine Simulation in einer Simulationsumgebung auszuführen, die aus wiederverwendbaren, gekapselten und unabhängig bewerteten Einheiten besteht. Diese Einheiten dienen als „Bausteine“, die Sie für die automatische und bedarfsgesteuerte Erstellung von Simulationsumgebungen in der Azure-Cloud verwenden. Diese Simulationsumgebungen werden auch als automatisierte Fahrplattformen (Automated Driving Platform, ADP) bezeichnet.

Mögliche Anwendungsfälle

Diese Lösung eignet sich ideal für die Automobil- und Transportbranche. Typische Verwendungen für diese Workload:

  • Automatisierung von Fahrprüfungen.

  • Prototyperstellung, Entwicklung, Integration, Testen, Validierung und Verifizierung von Steuerungssystemen in der Automobilindustrie.

  • Aufzeichnen von Fahrzeugdaten für die Visualisierung.

  • Simulieren komplexer Fahrszenarien in der Automobilindustrie.

Überlegungen

Diese Überlegungen beruhen auf den Säulen des Azure Well-Architected Frameworks, d. h. einer Reihe von Grundsätzen, mit denen die Qualität von Workloads verbessert werden kann. Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework.

Verfügbarkeit und Resilienz

Ziehen Sie die Bereitstellung von VMs über Verfügbarkeitsgruppen oder Verfügbarkeitszonen hinweg in Betracht, um Anwendungen vor geplanten Wartungsereignissen und ungeplanten Ausfällen zu schützen.

Eine Verfügbarkeitsgruppe ist eine logische Gruppierung von virtuellen Computern, die es Azure ermöglicht zu verstehen, wie Ihre Anwendung erstellt ist, um Redundanz und Verfügbarkeit zu bieten.

Verfügbarkeitszonen sind physisch getrennte Standorte innerhalb von Azure-Regionen, die dazu beitragen, Anwendungen und Daten vor Ausfällen in Rechenzentren zu schützen. Jede Zone enthält mindestens ein Rechenzentrum. Virtuelle Computer und Anwendungen in Zonen bleiben auch dann verfügbar, wenn ein Rechenzentrum physisch ausfällt.

Skalierbarkeit

Sie können Azure-VMs entweder manuell oder mithilfe der Features für die automatische Skalierung skalieren.

Für Containerbereitstellungen sind Azure Container Instances und Azure Kubernetes Services auch für das manuelle oder automatische Hoch- oder Aufskalieren konzipiert.

Sicherheit

Sicherheit bietet Schutz vor vorsätzlichen Angriffen und dem Missbrauch Ihrer wertvollen Daten und Systeme. Weitere Informationen finden Sie unter Übersicht über die Säule „Sicherheit“.

Wie bei jeder anderen Anwendung kann die Simulationsumgebung so gestaltet werden, dass sie vertrauliche Daten verarbeiten kann. Daher sollten Sie einschränken, wer sich anmelden und sie verwenden kann, und Sie sollten auch einschränken, auf welche Daten je nach Identität oder Benutzerrolle zugegriffen werden kann. Verwenden Sie Microsoft Entra ID für die Identitäts- und Zugriffsteuerung und Azure Key Vault zum Verwalten von Schlüsseln und Geheimnissen.

Allgemeine Informationen zum Entwerfen sicherer Lösungen finden Sie in der Dokumentation zur Azure-Sicherheit.

DevOps

Für die Bereitstellung neuer Simulationsumgebungen ist es am besten, CI/CD-Prozesse mithilfe einer Lösung wie Azure DevOps oder GitHub Actions zu verwenden.

Kostenoptimierung

Bei der Kostenoptimierung geht es um die Suche nach Möglichkeiten, unnötige Ausgaben zu reduzieren und die Betriebseffizienz zu verbessern. Weitere Informationen finden Sie unter Übersicht über die Säule „Kostenoptimierung“.

Im Allgemeinen sollten Sie den Azure-Preisrechner verwenden, um Ihre Kosten zu ermitteln. Des Weiteren können Sie Ihre Kosten optimieren, indem Sie die notwendigen Schritte befolgen, um die Kapazität Ihrer virtuellen Computer von Anfang an richtig zu bestimmen und ihre Größe bei Bedarf einfach anzupassen. Weitere Überlegungen finden Sie im Microsoft Azure Well-Architected Framework unter Grundsätze der Kostenoptimierung.

Nächste Schritte

Produktdokumentation:

Microsoft-Lernpfade:

Artikel zur Übersicht über Azure Architecture Center:

Relevante Architekturen: