Terminologia e architettura dell'ADDF - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Terminologia e architettura dell'ADDF

Per poter comprendere gli argomenti operativi e di sicurezza di questa guida, è necessaria una conoscenza approfondita della terminologia, dei componenti e dell'architettura dell'Autonomous Driving Data Framework (ADDF). Questa sezione contiene i seguenti argomenti:

Terminologia dell'ADDF

La terminologia chiave dell'ADDF è la seguente:

  • Modulo ADDF: un modulo è un'infrastruttura come codice (IaC) che implementa un'attività comune in un sistema avanzato di assistenza alla guida (advanced driver-assistance system, ADAS). Le attività più comuni includono la configurazione dell'archiviazione di dati centralizzata, le pipeline di elaborazione dati, i meccanismi di visualizzazione, le interfacce di ricerca, i carichi di lavoro di simulazione, le interfacce di analisi e i pannelli di controllo predefiniti. È possibile creare un modulo in base alle proprie esigenze oppure riutilizzare o personalizzare un modulo esistente.

    È possibile utilizzare il AWS Cloud Development Kit (AWS CDK) per definire i moduli ADDF, oppure utilizzare qualsiasi framework IaC comune, come Hashicorp Terraform o AWS CloudFormation, per implementare i moduli ADDF. I moduli hanno una serie di parametri di input. I parametri di input possono dipendere dai valori di output di altri moduli. Il modulo ADDF è l'unità di implementazione più piccola per un Account AWS target dell'ADDF.

  • File manifesto dell'implementazione dell'ADDF: questo file definisce un'orchestrazione di moduli ADDF autonomi. L'orchestrazione si riferisce all'ordine di implementazione dei moduli. Nel file manifesto dell'implementazione dell'ADDF, è possibile utilizzare Gruppi ADDF per raggruppare i moduli correlati. In questo file, vengono anche definiti l'Account AWS toolchain ADDF, gli Account AWS target dell'ADDF e le Regioni AWS target.

  • Framework di implementazione ADDF: questo framework implementa i moduli ADDF negli Account AWS target dell'ADDF in base all'orchestrazione definita nel file manifesto dell'implementazione dell'ADDF. Il framework di implementazione ADDF viene implementato utilizzando i seguenti progetti AWS open source:

    • SeedFarmer (GitHub): SeedFarmer è lo strumento CLI utilizzato per le implementazioni ADDF. Gestisce ogni stato del modulo, crea i pacchetti di codice del modulo e lo prepara, crea policy con privilegi minimi per i ruoli di implementazione dell'ADDF e fornisce istruzioni semantiche che CodeSeeder utilizza per l'implementazione. È possibile interagire direttamente con SeedFarmer per eseguire implementazioni ADDF oppure integrarlo in una pipeline per l'integrazione continua e la distribuzione continua (CI/CD).

    • CodeSeeder (GitHub): CodeSeeder implementa un'infrastruttura arbitraria come pacchetti di codice tramite un processo AWS CodeBuild. SeedFarmer orchestra ed esegue automaticamente CodeSeeder. Solo SeedFarmer interagisce direttamente con CodeSeeder.

    Il framework di implementazione ADDF è progettato per supportare le implementazioni in architetture ad account singolo e multi-account. In base ai requisiti dell'organizzazione, si può decidere se è necessaria un'architettura ad account singolo o multi-account.

  • Account AWS di toolchain ADDF: questo account orchestra e gestisce l'implementazione dei moduli nell'Account AWS target dell'ADDF in base alle definizioni contenute nel file manifesto dell'implementazione dell'ADDF. Un'implementazione dell'ADDF può avere un solo Account AWS toolchain ADDF. In un'architettura ad account singolo, l'Account AWS toolchain ADDF è anche l'Account AWS target dell'ADDF. Questo account contiene un ruolo AWS Identity and Access Management (IAM), chiamato Ruolo IAM toolchain ADDF, che viene assunto da SeedFarmer durante il processo di implementazione dell'ADDF. Questa guida si riferisce all'Account AWS toolchain ADDF come account toolchain.

  • Account AWS target dell'ADDF: Sono gli account target in cui vengono implementati i moduli ADDF. È possibile avere uno o più account target. Questi account contengono le risorse e la logica dell'applicazione descritte nel file manifesto dell'implementazione dell'ADDF e nei relativi moduli mappati. In un'architettura ad account singolo, l'Account AWS target dell'ADDF è anche l'Account AWS toolchain ADDF. Ogni account target dell'ADDF contiene un ruolo IAM, chiamato Ruolo IAM di implementazione dell'ADDF, che viene assunto da CodeSeeder durante il processo di implementazione. Questa guida si riferisce ai Account AWS target dell'ADDF come account target.

  • Istanza ADDF: quando si implementano l'ADDF e i propri moduli nel cloud, come definito nel file manifesto dell'implementazione dell'ADDF, diventano un'istanza ADDF. Un'istanza ADDF può avere un'architettura ad account singolo o multi-account, ed è possibile implementare più istanze ADDF. Per ulteriori informazioni sulla scelta del numero di istanze e sulla progettazione dell'architettura dell'account per il tuo caso d'uso, vedi Definizione dell'architettura dell'ADDF.

Architettura dell'ADDF

Il diagramma seguente mostra un'architettura di alto livello per un'istanza ADDF nel Cloud AWS. Mostra un'architettura multi-account che include un account toolchain dedicato e due account target. Questa guida illustra il processo end-to-end di utilizzo dell'ADDF per implementare risorse negli account target.

Codice locale ADDF, file manifesto dell'implementazione e architettura AWS con account target e toolchain.
  1. Creazione e bootstrap dell'Account AWS ADDF.

    Per funzionare correttamente, ogni account deve essere sottoposto a bootstrap sull'ADDF e su AWS CDK. Se si tratta di una nuova implementazione dell'ADDF o stai aggiungendo nuovi account target, procedi come segue:

    1. Esegui il bootstrap AWS CDK nell'account toolchain e in ogni account target. Per istruzioni, consulta Bootstrapping (Processo di bootstrap) (documentazione AWS CDK). L'ADDF utilizza AWS CDK per implementare la propria infrastruttura.

    2. Bootstrap dell'ADDF nell'account toolchain e in ogni account target. Per istruzioni, consulta Bootstrap per Account AWS nella Guida all'implementazione dell'ADDF. In questo modo vengono impostati tutti i ruoli IAM specifici dell'ADDF richiesti da SeedFarmer e CodeSeeder.

    Nota

    Devi eseguire questo passaggio solo se stai eseguendo l'implementazione iniziale dell'ADDF o se stai aggiungendo nuovi account target. Questo passaggio non fa parte delle implementazioni ADDF ricorrenti su istanze ADDF già stabilite.

  2. Crea o personalizza i moduli ADDF.

    Crea o personalizza i moduli ADDF in base al problema specifico da risolvere. Il modulo dovrebbe rappresentare un'attività isolata o un gruppo di attività isolato. Definisci i parametri di input per il modulo secondo necessità e usa i valori di output del modulo come parametri di input per altri moduli.

  3. Definisci l'orchestrazione del modulo nel file manifesto dell'implementazione dell'ADDF.

    Nel file manifesto dell'ADDF, organizza i moduli in gruppi e definisci l'ordine di implementazione e le dipendenze tra di essi. In questo file va anche specificato il singolo account toolchain e gli account target (incluse le Regioni AWS) per tutti i gruppi ADDF e i relativi moduli.

  4. Valuta il file manifesto dell'implementazione dell'ADDF e stabilisci l'ambito di implementazione.

    Lo sviluppatore dell'ADDF o una pipeline CI/CD, ad esempio AWS CodePipeline, avvia una valutazione del file manifesto dell'implementazione dell'ADDF chiamando lo strumento CLI, SeedFarmer. Per iniziare la valutazione:

    • SeedFarmer utilizza il file manifesto dell'implementazione dell'ADDF come parametro di input per la valutazione.

    • Per assumere il ruolo IAM toolchain ADDF, SeedFarmer si aspetta lo stesso ruolo IAM o le stesse credenziali utente valide definite durante il processo di bootstrap dell'ADDF, nel passaggio 1.

    Se SeedFarmer non dispone delle credenziali corrette per assumere il ruolo IAM toolchain ADDF o non può accedere al file manifesto dell'implementazione dell'ADDF, la valutazione non viene avviata.

    Se SeedFarmer può avviare la valutazione, assume il ruolo IAM toolchain ADDF nell'account toolchain. Da lì, SeedFarmer può accedere a qualsiasi account target, assumendo il ruolo IAM di implementazione dell'ADDF in quell'account. SeedFarmer prova quindi a leggere tutti i metadati dell'ADDF nell'account toolchain e negli account target. Si verifica una delle seguenti situazioni:

    • Se non ci sono metadati dell'ADDF da leggere, significa che si tratta di una nuova istanza ADDF. SeedFarmer determina che l'ambito di implementazione è l'intero file manifesto dell'implementazione dell'ADDF e il suo contenuto.

    • Se esistono metadati dell'ADDF, SeedFarmer confronta il file manifesto dell'implementazione dell'ADDF e il suo contenuto con gli hash MD5 degli artefatti implementati esistenti negli account target. Se vengono rilevate modifiche che possono essere implementate, questo processo continua. Se non viene rilevata alcuna modifica da implementare, il processo è completato.

  5. Implementa i moduli ADDF pertinenti negli account target.

    CodeSeeder dispone ora di un elenco ordinato di implementazioni da eseguire in base al file manifesto dell'implementazione dell'ADDF e ai risultati della valutazione del passaggio precedente. Sulla base di tale elenco ordinato, CodeSeeder assume il ruolo IAM di implementazione dell'ADDF in ogni account target associato. Quindi esegue CodeSeeder in un processo AWS CodeBuild per creare o aggiornare le singole implementazioni IaC, come le applicazioni AWS CDK, per il modulo ADDF. Per impostazione predefinita, l'ADDF usa AWS CDK come framework IaC, ma sono supportati anche altri framework IaC comuni. Una volta completato il processo per ogni account target, ottieni un flusso di lavoro multi-account completo e basato su ADAS end-to-end, come definito nel file manifesto dell'implementazione dell'ADDF.

    Se usi un'architettura ad account singolo, l'account toolchain e gli account target sono lo stesso account, e questo account unico dispone di tutte le funzionalità descritte in precedenza.

  6. Usa l'infrastruttura implementata dall'ADDF.

    Uno sviluppatore ADAS può utilizzare il flusso di lavoro basato sull'ADAS distribuito in base al caso d'uso.

    Questo flusso di lavoro descrive l'architettura di una singola istanza di un ambiente multi-account ADDF. A seconda del modello di sviluppo, implementazione e funzionamento, si consiglia di eseguire più istanze ADDF in un ambiente a più fasi. Una configurazione tipica potrebbe includere un'istanza ADDF dedicata con Account AWS dedicati per ogni fase dell'implementazione, come i rami per lo sviluppo, i test e la produzione. È inoltre possibile eseguire più istanze ADDF nello stesso ambiente ad account singolo o multi-account nella stessa Regione AWS, a condizione che sia stato creato uno spazio dei nomi delle risorse unico per ogni istanza ADDF. Per ulteriori informazioni, consulta Definizione dell'architettura dell'ADDF.