Blocchi predefiniti per ambienti di simulazione con guida autonoma

Istanze di Azure Container
Microsoft Entra ID
Rete virtuale di Azure
Macchine virtuali di Azure
Azure Pipelines

Il carico di lavoro di esempio illustrato di seguito descrive la creazione di una simulazione che viene eseguita automaticamente e valuta la funzione simulata del veicolo tramite una pipeline di Azure DevOps. Questa pipeline viene eseguita ogni volta che un tecnico controlla una nuova versione del codice sorgente della funzione di esempio o del relativo ambiente di simulazione.

Architettura

Diagramma che mostra i blocchi predefiniti per gli ambienti di simulazione guida autonoma.

Scaricare un file di Visio di questa architettura.

Livello di input utente

Lo sviluppatore interagirà solo con questo livello. Contiene la workstation per sviluppatori (una macchina virtuale di Azure nell'ambito) e il file di specifica che descrive l'ambiente di simulazione.

Livello di orchestrazione

"Orchestrazione" ha un significato ampio: alcuni dei problemi descritti dalla parola sono facilmente risolti; altri sono molto più complessi. Ad esempio, il problema di "orchestrazione" della creazione, del monitoraggio e dell'eliminazione di contenitori e macchine virtuali è risolto da molti strumenti: l'API di Azure stessa è un "agente di orchestrazione" sufficiente per questo.

Workflow

Tuttavia, è importante suddividere la scatola nera di "orchestrazione" in componenti più piccoli.

  • API di simulazione: questa API riceve un file di specifica ed è il punto di ingresso per controllare gli ambienti di simulazione e le esecuzioni di simulazione con il livello di orchestrazione.

  • Interprete: questo componente interpreta il file di specifica in una struttura logica per Simulation Manager.

  • Simulation Manager: si tratta della macchina a stati che converte l'oggetto ambiente di simulazione logica in stati e azioni desiderati da usare da altri componenti. Si tratta del componente che attiva la compilazione, l'esecuzione e l'disinstallazione della simulazione. Gestisce anche le dipendenze interne e le modalità di errore.

  • Utilità di pianificazione: questo componente assegna blocchi predefiniti alle risorse dell'infrastruttura e li avvia lì. Account per i requisiti hardware e di accesso, le risorse disponibili e i limiti delle risorse.

  • Environment Manager: questo componente controlla l'infrastruttura sottostante e risponde a problemi, ad esempio quando un host contenitore diventa inattivo.

  • Network Manager: questo componente gestisce le reti e il routing per gli ambienti di simulazione. Ogni ambiente deve vissuto in un ambiente di rete isolato, con blocchi predefiniti isolati che ricevono connessioni in ingresso per l'interattività. Questo componente verrà usato anche per risolvere i blocchi predefiniti all'interno di una simulazione, ad esempio tramite un DNS interno.

  • Access Manager: questo componente riflette l'autorizzazione/autenticazione dall'ID Microsoft Entra nel resto del sistema.

  • Configuration Manager: questo componente funge da meccanismo di archiviazione permanente per lo stato dell'infrastruttura e degli ambienti di simulazione.

  • Astrazione dell'infrastruttura: si tratta di un livello di astrazione che converte i comandi generici in comandi API di Azure specifici per contenitori e macchine virtuali.

  • Archiviazione Manager: questo componente gestisce il provisioning e il collegamento dell'archiviazione per gli ambienti di simulazione (ad esempio, i dispositivi radice della macchina virtuale o i volumi collegati ai contenitori).

  • Monitoraggio risorse: questo componente monitora l'utilizzo delle risorse a livello di infrastruttura in un database time series, per l'esportazione nel monitoraggio principale di ADP.

  • Log Manager: questo componente aggrega i log dai blocchi predefiniti per l'ispezione degli utenti. Esporta anche i log nella registrazione principale di ADP.

Il livello di orchestrazione è l'obiettivo principale di questo carico di lavoro di esempio.

Livello dell'infrastruttura di simulazione

Questo livello rappresenta tutti gli ambienti di simulazione in esecuzione.

  • Ambiente di simulazione: qui viene creata la combinazione di blocchi predefiniti definiti dal file di definizione e dai parametri, in isolamento di rete da qualsiasi altro ambiente di simulazione.

  • Contratto blocco predefinito: lo standard scritto che definisce il modo in cui tutti i blocchi predefiniti inviano output, errori e stato al livello di orchestrazione.

  • Pipeline di blocchi predefiniti: questa area gestisce la creazione e l'archiviazione dei blocchi predefiniti.

  • Repository di blocchi predefiniti: si tratta del sistema di archiviazione e recupero per le immagini in blocchi predefiniti, ad esempio un registro contenitori e/o una raccolta di immagini di Azure.

  • Building Block Factory: pipeline di integrazione continua e distribuzione continua (CI/CD) che crea immagini di blocchi predefiniti usando pacchetti di componenti non modificabili e verificabili (ad esempio dpkg o apt) in un linguaggio di configurazione dichiarativo (ad esempio Chef o Ansible).

livello Archiviazione

Questo livello archivia in modo permanente e accessibile i risultati della simulazione. È principalmente responsabilità della piattaforma di sviluppo di applicazioni mobili (MADP) Data Lake WorkStream, anche se l'output deve essere gestibile da tale team.

  • interfaccia Archiviazione: interfaccia che consente agli utenti di usare l'archiviazione dei risultati della simulazione. Questo funziona in stretta concerto con o potrebbe essere soppiantato dal componente di orchestrazione di Archiviazione Manager precedente.

  • Archiviazione: meccanismo di archiviazione usato per salvare i risultati della simulazione( ad esempio, Archiviazione BLOB di Azure o risorse di Azure Disk Archiviazione).

Componenti

Macchine virtuali di Azure offre risorse di calcolo scalabili su richiesta che consentono la flessibilità della virtualizzazione senza la necessità di acquistare e gestire hardware fisico.

Rete virtuale di Azure è il blocco predefinito fondamentale per la rete privata in Azure. Azure Rete virtuale consente a molti tipi di risorse di Azure, ad esempio Azure Macchine virtuali, di comunicare in modo sicuro tra loro, Internet e reti locali.

Istanze di Azure Container rappresenta il modo più semplice e rapido per eseguire un contenitore in Azure, senza dover gestire macchine virtuali né dover adottare un servizio di livello superiore.

Registro Azure Container è un servizio gestito di registri Docker privato basato sull'applicazione open source Docker Registry 2.0. È possibile usare i registri contenitori di Azure con le pipeline di sviluppo e distribuzione di contenitori esistenti oppure usare Attività del Registro Azure Container per compilare immagini di contenitore in Azure. È possibile eseguire compilazioni su richiesta o automatizzare completamente le compilazioni con trigger quali i commit del codice sorgente e gli aggiornamenti delle immagini di base.

Azure Pipelines fa parte di Azure DevOps Services ed esegue compilazioni, test e distribuzioni automatizzate. È inoltre possibile usare soluzioni CI/CD di terze parti come Jenkins.

Microsoft Entra ID è il servizio di gestione delle identità e degli accessi basato sul cloud che autentica utenti, servizi e applicazioni.

Archiviazione di Azure offre una soluzione di archiviazione cloud durevole, a disponibilità elevata e altamente scalabile. Include funzionalità di archiviazione di oggetti, file, dischi, code e tabelle.

Monitoraggio di Azure raccoglie i dati di telemetria di monitoraggio da un'ampia gamma di origini locali e di Azure. Questo servizio aggrega e archivia i dati di telemetria in un archivio dati di log ottimizzato per i costi e le prestazioni.

Alternative

Questa architettura usa macchine virtuali e contenitori per distribuire i diversi strumenti e servizi. In alternativa, è anche possibile usare servizio Azure Kubernetes (servizio Azure Kubernetes). Questo servizio offre Kubernetes serverless, un'esperienza CI/CD integrata, nonché sicurezza e governance di livello enterprise.

Il meccanismo di archiviazione usato per salvare i risultati della simulazione in questa architettura si basa su Archiviazione BLOB di Azure o su Archiviazione dischi di Azure. In alternativa ai carichi di lavoro più grandi, è anche possibile esaminare le soluzioni di analisi e dati su larga scala di Azure per l'archiviazione e l'analisi dei dati.

Valutare anche l'uso di Monitoraggio di Azure per analizzare e ottimizzare le prestazioni dell'infrastruttura e monitorare e diagnosticare i problemi di rete senza accedere alle macchine virtuali.

Dettagli dello scenario

Per valutare la guida autonoma (AD), i tecnici delle funzioni devono simulare il comportamento dei veicoli con funzionalità di ACTIVE Directory. Si consideri lo scenario di guida di esempio seguente:

Un veicolo di prova guida autonomamente a 80 mph nella corsia destra su un'autostrada a 3 corsie. C'è un camion 600 piedi avanti guidando nella stessa corsia e nella stessa direzione a 55 mph. Non c'è un veicolo nelle vicinanze nella corsia centrale. Gli indicatori stradali sono visibili, il sole splende perpendicolare al veicolo e la strada è asciutta.

Una simulazione limitata del comportamento di un veicolo usando uno scenario come questo è detto esecuzione di simulazione. Nello scenario precedente, il comportamento previsto del veicolo simulato consiste nel passare comodamente il camion senza causare un incidente e senza violare alcuna regola del traffico. Eseguendo una simulazione per ogni nuova versione di una funzione, i tecnici delle funzioni di Active Directory verificano se la nuova versione presenta ancora il comportamento previsto.

Per eseguire una simulazione, i tecnici delle funzioni di Active Directory usano in genere un set di applicazioni software. Questi possono includere virtual test drive (VTD), Time Partition Testing (TPT), Avionics Development System 2G (ADS2) e Automotive Data and Time-Triggered Framework (ADTF), che comunicano tra loro in base alle configurazioni specifiche per testare una determinata funzione di guida autonoma, ad esempio highway pilot. Una distribuzione di questo set di strumenti software e le relative configurazioni in macchine virtuali (VM) fisiche e/o virtuali locali e/o nel cloud è detta ambiente di simulazione.

Per garantire la validità dei risultati dei test generati da ogni simulazione eseguita, è necessario assicurarsi che la simulazione venga avviata in un ambiente di simulazione aggiornato impostato sullo stato iniziale.

Ogni team autonomo necessita di un set separato di applicazioni nell'ambiente di simulazione, con una configurazione univoca. Molti team avranno anche bisogno di più ambienti di simulazione diversi. Ad esempio, per valutare un sensore LIDAR è necessaria una simulazione di oggetti ad alta risoluzione, ma non altri driver, indicazioni stradali o altre funzionalità. Anche se ogni ambiente è univoco, c'è una sovrapposizione significativa nelle applicazioni usate. Ad esempio, molti team usano VTD in più ambienti di simulazione.

È possibile eseguire una simulazione in un ambiente di simulazione composto da unità riutilizzabili, incapsulate e valutate in modo indipendente. Queste unità fungono da "blocchi predefiniti" da usare per la creazione automatica e su richiesta di ambienti di simulazione nel cloud di Azure. Questi ambienti di simulazione sono chiamati anche piattaforme di guida automatizzate (ADP).

Potenziali casi d'uso

Questa soluzione è ideale per le industrie automobilistiche e di trasporto. Gli usi tipici per questo carico di lavoro includono:

  • Automazione dei test di guida.

  • Prototipazione, sviluppo, integrazione, test, convalida e verifica dei sistemi di controllo nel settore automobilistico.

  • Registrazione dei dati del veicolo per la visualizzazione.

  • Simulazione di scenari di guida complessi nel settore automobilistico.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

Disponibilità e resilienza

Prendere in considerazione la distribuzione di macchine virtuali tra set di disponibilità o zone di disponibilità, che consentono di proteggere le applicazioni da eventi di manutenzione pianificata e interruzioni non pianificate.

Un set di disponibilità è un raggruppamento logico di macchine virtuali che permette ad Azure di comprendere come è compilata l'applicazione per garantirne la ridondanza e la disponibilità.

Le zone di disponibilità sono posizioni fisiche univoche all'interno delle aree di Azure che consentono di proteggere macchine virtuali, applicazioni e dati da errori del data center. Ogni zona è costituita da uno o più data center. Le macchine virtuali e le applicazioni nelle zone possono rimanere disponibili anche se si verifica un errore fisico in un singolo data center.

Scalabilità

È possibile ridimensionare le macchine virtuali di Azure manualmente o usando le funzionalità di scalabilità automatica.

Per le distribuzioni di contenitori, istanze di Contenitori di Azure e servizio Azure Kubernetes sono progettate anche per aumentare o ridurre le prestazioni manualmente o automaticamente.

Sicurezza

La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.

Come per qualsiasi altro tipo di applicazione, l'ambiente di simulazione può essere progettato per gestire i dati sensibili. È pertanto consigliabile limitare chi può accedere e usarlo e limitare anche i dati a cui è possibile accedere in base all'identità o al ruolo dell'utente. Usare Microsoft Entra ID per il controllo di identità e accesso e usare Azure Key Vault per gestire chiavi e segreti.

Per indicazioni generali sulla progettazione di soluzioni sicure, vedere la documentazione sulla sicurezza di Azure.

DevOps

Per distribuire ambienti di simulazione aggiornati, è consigliabile usare processi CI/CD usando una soluzione come Azure DevOps o GitHub Actions.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

In linea generale, usare il calcolatore dei prezzi di Azure per stimare i costi. È anche possibile ottimizzare i costi seguendo il processo di ridimensionamento corretto della capacità delle macchine virtuali fin dall'inizio, oltre al ridimensionamento semplificato in base alle esigenze. Altre considerazioni sono descritte nella sezione Costo in Microsoft Azure Well-Architected Framework.

Passaggi successivi

Documentazione sui prodotti:

Percorsi di apprendimento Microsoft:

Articoli di panoramica del Centro architetture di Azure:

Architetture pertinenti: