ADDF-Architektur und -Terminologie - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

ADDF-Architektur und -Terminologie

Bevor Sie sich mit den Sicherheits- und Betriebsthemen in diesem Leitfaden vertraut machen können, ist es wichtig, dass Sie sich mit der Terminologie, den Komponenten und der Architektur des Autonomous Driving Data Framework (ADDF) vertraut machen. In diesem Abschnitt werden folgende Themen beschrieben:

ADDF-Terminologie

Die Schlüsselterminologie für ADDF lautet wie folgt:

  • ADDF-Modul – Ein Modul ist Infrastructure as Code (IaC), das eine allgemeine Aufgabe in einem fortschrittlichen Fahrerassistenzsystem (ADAS) implementiert. Zu den häufigsten Aufgaben gehören die Konfiguration zentraler Datenspeicher, Datenverarbeitungspipelines, Visualisierungsmechanismen, Suchschnittstellen, Simulations-Workloads, Analyseschnittstellen und vorgefertigte Dashboards. Sie können ein Modul auf der Grundlage Ihrer Anforderungen erstellen oder ein vorhandenes Modul wiederverwenden oder anpassen.

    Sie können das AWS Cloud Development Kit (AWS CDK) verwenden, um ADDF-Module zu definieren, oder Sie können jedes gängige IaC-Framework verwenden, wie Hashicorp Terraform oder AWS CloudFormation, um die ADDF-Module zu implementieren. Ein Modul hat eine Reihe von Eingabeparametern. Eingabeparameter können von Ausgabewerten anderer Module abhängen. Ein ADDF-Modul ist die kleinste Bereitstellungseinheit für ein ADDF-Ziel-AWS-Konto.

  • ADDF-Bereitstellungsmanifestdatei – Diese Datei definiert eine Orchestrierung von eigenständigen ADDF-Modulen. Orchestrierung bezieht sich auf die Bereitstellungsreihenfolge der Module. In der ADDF-Bereitstellungsmanifestdatei können Sie ADDF-Gruppen verwenden, um verwandte Module zu gruppieren. In dieser Datei definieren Sie auch den ADDF-Toolchain-AWS-Konto, die ADDF-Ziel-AWS-Konten und die Ziel-AWS-Regionen.

  • ADDF-Bereitstellungsframework – Dieses Framework stellt ADDF-Module im ADDF-Ziel-AWS-Konten bereit, basierend auf der Orchestrierung, die in der ADDF-Bereitstellungsmanifestdatei definiert ist. Das ADDF-Bereitstellungsframework wird unter Verwendung der folgenden AWS-Open-Source-Projekte implementiert:

    • SeedFarmer (GitHub) – SeedFarmer ist das CLI-Tool, das für ADDF-Bereitstellungen verwendet wird. Es verwaltet jeden Modulstatus, bereitet den Modulcode vor und verpackt ihn, erstellt Richtlinien mit den geringsten Berechtigungen für die ADDF-Bereitstellungs-Rollen und stellt semantische Anweisungen bereit, die CodeSeeder für die Bereitstellung verwendet. Sie können direkt mit SeedFarmer interagieren, um ADDF-Bereitstellungen auszuführen, oder Sie können es in eine Pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) integrieren.

    • CodeSeeder (GitHub) – CodeSeeder stellt beliebige Infrastrukturen als Codepakete über eine AWS CodeBuild-Aufgabe bereit. SeedFarmer orchestriert und führt CodeSeeder automatisch aus. Nur SeedFarmer interagiert direkt mit CodeSeeder.

    Das ADDF-Bereitstellungsframework wurde entwickelt, um Bereitstellungen in Architekturen mit einem oder mehreren Konten zu unterstützen. Auf der Grundlage der Anforderungen Ihrer Organisation entscheiden Sie, ob eine Architektur für ein oder mehrere Konten erforderlich ist.

  • ADDF-Toolchain-AWS-Konto – Dieses Konto orchestriert und verwaltet die Bereitstellung von Modulen im ADDF-Ziel-AWS-Konten, basierend auf den Definitionen in der ADDF-Bereitstellungsmanifestdatei. Eine ADDF-Bereitstellung kann nur ein ADDF-Toolchain-AWS-Konto haben. In einer Architektur mit einem einzigen Konto ist das ADDF-Toolchain-AWS-Konto auch das ADDF-Ziel-AWS-Konto. Dieses Konto enthält eine AWS Identity and Access Management (IAM)-Rolle, genannt ADDF-Toolchain-IAM-Rolle, die von SeedFarmer während des ADDF-Bereitstellungsprozesses übernommen wird. In diesem Handbuch beziehen wir uns auf ein ADDF-Toolchain-AWS-Konto als ein Toolchain-Konto.

  • ADDF-Ziel-AWS-Konten – Dies sind die Zielkonten, auf denen Sie ADDF-Module bereitstellen. Sie können ein oder mehrere Zielkonten haben. Diese Konten enthalten die Ressourcen und die Anwendungslogik, die in der ADDF-Bereitstellungsmanifestdatei und den zugehörigen Modulen beschrieben sind. In einer Architektur mit einem einzigen Konto ist das ADDF-Ziel-AWS-Konto auch das ADDF-Toolchain-AWS-Konto. Jedes ADDF-Zielkonto enthält eine IAM-Rolle, die sogenannte ADDF-Bereitstellungs-IAM-Rolle, die von CodeSeeder während des Bereitstellungsprozesses übernommen wird. In diesem Handbuch beziehen wir uns auf ein ADDF-Ziel-AWS-Konto als Zielkonto.

  • ADDF-Instance – Wenn Sie ADDF und Ihre Module in der Cloud bereitstellen, wie in Ihrer ADDF-Bereitstellungsmanifestdatei definiert, wird daraus eine ADDF-Instance. Eine ADDF-Instance kann eine Architektur mit einem oder mehreren Konten haben, und Sie können mehrere ADDF-Instances bereitstellen. Weitere Informationen zur Auswahl der Anzahl von Instances und zum Entwerfen einer Kontoarchitektur für Ihren Anwendungsfall finden Sie unter Definieren Sie Ihre ADDF-Architektur.

ADDF-Architektur

Das folgende Diagramm zeigt eine High-Level-Architektur für eine ADDF-Instance in der AWS Cloud. Es zeigt eine Architektur mit mehreren Konten, einschließlich einem dedizierten Toolchain-Konto und zwei Zielkonten. In diesem Leitfaden wird der gesamte Prozess der Verwendung von ADDF zur Bereitstellung von Ressourcen für die Zielkonten beschrieben.

Lokaler ADDF-Code, Bereitstellungsmanifestdatei und AWS-Architektur mit Toolchain- und Zielkonten.
  1. Erstellen und bootstrappen Sie das ADDF-AWS-Konten.

    Um ordnungsgemäß zu funktionieren, muss für jedes Konto ein Bootstrapping zu ADDF AWS CDK durchgeführt werden. Wenn es sich um eine neue ADDF-Bereitstellung handelt oder Sie neue Zielkonten hinzufügen, machen Sie Folgendes:

    1. Bootstrappen Sie AWS CDK im Toolchain-Konto und in jedem Zielkonto. Anweisungen finden Sie unter Bootstrappen (AWS CDK-Dokumentation). ADDF verwendet AWS CDK, um seine Infrastruktur bereitzustellen.

    2. Bootstrappen Sie ADDF im Toolchain-Konto und in jedem Zielkonto. Anweisungen finden Sie unter Bootstrappen von AWS-Konto(en) im ADDF-Bereitstellungshandbuch. Dadurch werden alle ADDF-spezifischen IAM-Rollen eingerichtet, die von SeedFarmer und CodeSeeder benötigt werden.

    Anmerkung

    Sie müssen diesen Schritt nur ausführen, wenn Sie ADDF neu bereitstellen oder neue Zielkonten hinzufügen. Dieser Schritt ist nicht Teil von wiederkehrenden ADDF-Bereitstellungen für bereits eingerichtete ADDF-Instances.

  2. Erstellen Sie die ADDF-Module oder passen Sie sie an.

    Erstellen Sie ADDF-Module oder passen Sie sie auf der Grundlage des spezifischen Problems an, das Sie lösen möchten. Ihr Modul sollte eine isolierte Aufgabe oder eine Gruppe von Aufgaben darstellen. Definieren Sie die Eingabeparameter für das Modul nach Bedarf und verwenden Sie die Modulausgabewerte als Eingabeparameter für andere Module.

  3. Definition der Modulorchestrierung in der ADDF-Bereitstellungsmanifestdatei.

    Organisieren Sie Module in der ADDF-Manifestdatei in Gruppen und definieren Sie die Bereitstellungsreihenfolge und die Abhängigkeiten zwischen ihnen. In dieser Datei geben Sie auch das einzelne Toolchain-Konto und die Zielkonten an (einschließlich AWS-Regionen) für jede ADDF-Gruppe und ihre Module.

  4. Bewerten Sie die ADDF-Bereitstellungsmanifestdatei und legen Sie den Bereitstellungsbereich fest.

    Der ADDF-Entwickler oder eine CI/CD-Pipeline, wie z. B. AWS CodePipeline, startet eine Bewertung der ADDF-Bereitstellungsmanifestdatei, indem das CLI-Tool SeedFarmer aufgerufen wird. Um die Bewertung zu starten:

    • SeedFarmer verwendet die ADDF-Bereitstellungsmanifestdatei als Eingabeparameter für die Bewertung.

    • Um die IAM-Rolle der ADDF-Toolchain anzunehmen, erwartet SeedFarmer dieselben gültigen IAM-Rollen- oder Benutzer-Anmeldeinformationen, die während des ADDF-Bootstrap-Prozesses in Schritt 1 definiert wurden.

    Wenn SeedFarmer nicht über die richtigen Anmeldeinformationen verfügt, um die IAM-Rolle der ADDF-Toolchain anzunehmen, oder nicht auf die ADDF-Bereitstellungsmanifestdatei zugreifen kann, startet die Bewertung nicht.

    Wenn SeedFarmer die Bewertung starten kann, nimmt es die IAM-Rolle der ADDF-Toolchain im Toolchain-Konto an. Von dort aus kann SeedFarmer auf jedes Zielkonto zugreifen, indem es die IAM-Rolle für die ADDF-Bereitstellung in diesem Konto übernimmt. SeedFarmer versucht dann, alle ADDF-Metadaten im Toolchain-Konto und in den Zielkonten zu lesen. Es tritt einer der beiden folgenden Fälle ein:

    • Wenn es keine ADDF-Metadaten zum Lesen gibt, deutet dies darauf hin, dass es sich um eine neue ADDF-Instance handelt. SeedFarmer stellt fest, dass der Bereitstellungsbereich die gesamte ADDF-Bereitstellungsmanifestdatei und ihren Inhalt umfasst.

    • Wenn ADDF-Metadaten vorhanden sind, vergleicht SeedFarmer die ADDF-Bereitstellungsmanifestdatei und ihren Inhalt mit den MD5-Hashes der vorhandenen bereitgestellten Artefakte in den Zielkonten. Wenn bereitstellbare Änderungen erkannt werden, wird dieser Prozess fortgesetzt. Wenn keine bereitstellbaren Änderungen erkannt werden, ist der Vorgang abgeschlossen.

  5. Stellen Sie die im Umfang enthaltenen ADDF-Module für die Zielkonten bereit.

    CodeSeeder verfügt nun über eine geordnete Liste der auszuführenden Bereitstellungen, die gemäß der ADDF-Bereitstellungsmanifestdatei und den Bewertungsergebnissen aus dem vorherigen Schritt ausgeführt werden sollen. Basierend auf dieser sortierten Liste übernimmt CodeSeeder die IAM-Rolle für die ADDF-Bereitstellung in jedem zugehörigen Zielkonto. Anschließend wird CodeSeeder in einer AWS CodeBuild-Aufgabe ausgeführt zum Erstellen oder Aktualisieren der einzelnen IaC-Bereitstellungen, wie z. B. AWS CDK-Anwendungen für das ADDF-Modul. Standardmäßig verwendet ADDF AWS CDK als sein IaC-Framework, aber es werden auch andere gängige IaC-Frameworks unterstützt. Nachdem der Prozess für jedes Zielkonto abgeschlossen wurde, steht Ihnen ein vollständig bereitgestellter, kontenübergreifender, durchgängiger ADAS-basierter Workflow zur Verfügung, wie Sie ihn in der ADDF-Bereitstellungsmanifestdatei definiert haben.

    Wenn Sie eine Architektur mit einem einzigen Konto verwenden, handelt es sich bei dem Toolchain-Konto und den Zielkonten um dasselbe Konto, und dieses eine Konto verfügt über alle beschriebenen Funktionen.

  6. Verwenden Sie die von ADDF bereitgestellte Infrastruktur.

    Ein ADAS-Entwickler kann den bereitgestellten ADAS-basierten Workflow verwenden, wie er in Ihrem Anwendungsfall definiert ist.

    Dieser Workflow beschreibt die Architektur einer einzelnen Instance einer ADDF-Umgebung mit mehreren Konten. Abhängig von Ihrem Entwicklungs-, Bereitstellungs- und Betriebsmodell empfehlen wir, dass Sie mehrere ADDF-Instances in einer mehrstufigen Umgebung ausführen. Ein typisches Setup könnte eine dedizierte ADDF-Instance mit dedizierten AWS-Konten für jede Bereitstellungsphase sein, z. B. Zweige für Entwicklung, Test und Produktion. Sie können auch mehrere ADDF-Instances in der gleichen Einzel-Konto- oder Multi-Konto-Umgebung in derselben AWS-Region ausführen, vorausgesetzt, Sie haben einen eindeutigen Ressourcennamensraum für jede ADDF-Instance erstellt. Weitere Informationen finden Sie unter Definieren Sie Ihre ADDF-Architektur.