Questo articolo descrive una collaborazione tra Microsoft e una grande società ferroviaria per creare una soluzione di manutenzione e sicurezza dei treni internet delle cose (IoT).
Architettura
Scaricare un file di Visio di questa architettura.
Flusso di dati
- Un file server di immagini NAS (Network Attached Storage) in un bungalow trackside serve immagini elaborate e categorizzate delle ruote del treno. Tre immagini di ogni ruota creano un'immagine unita.
- Il modulo di polling di IoT Edge avvisa il dispositivo IoT Edge che sono disponibili nuove immagini per l'elaborazione.
- Il modulo ml di IoT Edge esegue un modello di Machine Learning di terze parti che elabora le immagini e identifica le aree delle ruote che richiedono un'ispezione maggiore.
- Il gestore avvisi di IoT Edge carica tutte le immagini in Archiviazione BLOB di Azure, a partire da immagini con potenziali difetti e restituisce gli URI del BLOB di immagini.
- Il modulo Hub IoT Edge associa gli URI dell'immagine ai metadati dell'immagine, ad esempio Equipment o Car Number, Assale, Timestamp e Detector Location. Il modulo carica i metadati e gli avvisi in hub IoT di Azure.
- hub IoT invia i metadati tramite Hub eventi e Funzioni di Azure a un database di Azure Cosmos DB.
- Il database di Azure Cosmos DB associa i metadati dell'immagine agli URI delle immagini archiviate in Archiviazione BLOB di Azure. Il sistema può usare i dati di Azure Cosmos DB per il riconoscimento dei difetti, l'analisi delle tendenze, la manutenzione predittiva e la ripetizione del training del modello di Machine Learning.
Componenti
Questo esempio distribuisce i dispositivi Azure IoT Edge in trackside vb, usando hardware di classe server con schede di automazione industriali personalizzate e unità di elaborazione grafica (GPU) per le prestazioni.
IoT Edge è costituito da tra componenti:
I moduli IoT Edge sono contenitori che possono eseguire componenti di Azure, di terze parti o personalizzati.
I moduli di Machine Learning IoT Edge possono supportare Azure Machine Learning, modelli di Machine Learning di terze parti o codice personalizzato. La soluzione corrente usa un modello ML open source di terze parti denominato Cogniac per assegnare un punteggio ai dati delle ruote dei treni e riconoscere potenziali difetti. Il software ML usa esempi cronologici di immagini di guasti ad alta e bassa e attendibilità per eseguire di nuovo il training del relativo modello ML.
Il runtime IoT Edge, costituito dall'agente IoT e dall'hub IoT Edge, viene eseguito sui dispositivi IoT Edge per gestire e coordinare i moduli distribuiti.
Un'interfaccia basata sul cloud consente il monitoraggio e la gestione remoti.
Il sistema usa anche i componenti cloud di Azure seguenti:
hub IoT di Azure consente comunicazioni cloud bidirezionali sicure, gestione e monitoraggio dei moduli IoT Edge.
Archiviazione BLOB di Azure è l'archiviazione di oggetti per il cloud. L'archiviazione BLOB è ottimizzata per archiviare enormi quantità di dati non strutturati, come i dati delle immagini in questo esempio.
Azure Cosmos DB è un servizio di database NoSQL completamente gestito con tempi di risposta ridotti e disponibilità elevata e scalabilità.
Alternative
L'architettura di IoT Edge usa più moduli, ma può essere ridotta in un singolo modulo, a seconda dei requisiti di prestazioni della soluzione o della struttura del team di sviluppo.
L'azienda ferroviaria è proprietaria solo del sistema di inferenza e si serve di un fornitore di terze parti per la generazione dei modelli ML. La natura tipo scatola nera del modulo ML presenta un certo rischio di dipendenza. La manutenzione a lungo termine della soluzione richiede la comprensione del modo in cui la terza parte gestisce e condivide le risorse. Il sistema potrebbe essere in grado di usare moduli ml segnaposto per gli impegni futuri quando gli asset di Machine Learning non sono disponibili.
Dettagli dello scenario
Azure IoT Edge consente l'elaborazione e l'archiviazione dei dati più vicina all'origine dati. L'elaborazione dei carichi di lavoro nella rete perimetrale consente risposte veloci e coerenti con una minore dipendenza dalla connettività e dalle risorse cloud.
Avvicinare machine learning (ML) e la logica di business alle origini dati significa che i dispositivi possono reagire più velocemente alle modifiche locali e agli eventi critici. I dispositivi possono operare in modo affidabile offline o quando la connettività è limitata.
Il calcolo perimetrale può incorporare modelli di intelligenza artificiale e Machine Learning per creare dispositivi e reti perimetrali intelligenti. La rete perimetrale può determinare quali dati inviare al cloud per un'ulteriore elaborazione e assegnare priorità a dati urgenti e importanti.
L'azienda ferroviaria voleva usare Azure IoT Edge per migliorare la sicurezza e l'efficienza fornendo:
- Identificazione proattiva dei componenti difettosi.
- Pianificazione predittiva della manutenzione e del ripristino.
- Miglioramento continuo dell'analisi e delle stime.
Il progetto pilota per la soluzione IoT Edge è un sistema di analisi dell'integrità delle ruote di training. In questo sistema, oltre 4.000 rilevatori di pista monitorano e trasmetteno continuamente i dati delle ruote dai treni dell'azienda. I rilevatori:
- Misurare il calore e la forza delle apparecchiature sui binari.
- Ascolta i difetti della ruota invisibile o le crepe della ruota.
- Identificare le parti mancanti o non posizionate.
I moduli di Azure IoT Edge elaborano e agiscono sui dati in streaming continuo quasi in tempo reale. I moduli IoT Edge vengono eseguiti sull'hardware di classe server all'interno dei capanni di servizio a fianco dei binari, consentendo la distribuzione parallela futura di altri carichi di lavoro. Soluzione basata su IoT Edge:
- Identifica le apparecchiature a rischio.
- Determina l'urgenza di riparazione.
- Genera avvisi.
- Invia i dati al cloud di Azure per l'archiviazione.
Il sistema di analisi dell'integrità delle ruote fornisce l'identificazione anticipata dei potenziali guasti delle apparecchiature che potrebbero causare il railment del treno. L'azienda può usare i dati archiviati per individuare le tendenze e informare le pianificazioni di manutenzione prescrittiva.
Potenziali casi d'uso
Questa soluzione è ideale per i trasporti, le telecomunicazioni e i settori manifatturieri. È incentrato sugli scenari seguenti:
- Una rete di telecomunicazioni che deve mantenere il 99% o un tempo di attività migliore.
- Controllo della qualità della produzione, riparazione di apparecchiature e manutenzione predittiva in una fabbrica.
- Un sistema di sicurezza dei trasporti che deve elaborare i dati di streaming in tempo reale con una latenza minima o nessuna latenza.
- Sistemi di transito che devono fornire notifiche e avvisi di pianificazione tempestivi.
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.
Alcune considerazioni si applicano a questo esempio.
Operazioni
La soluzione distribuita richiede una sottoscrizione di Azure con l'autorizzazione per aggiungere entità servizio e la possibilità di creare risorse di Azure. Per altre informazioni, vedere Registri contenitori ed entità servizio.
Un flusso di lavoro Azure Pipelines compila, testa, distribuisce e archivia la soluzione IoT Edge tramite attività Azure IoT Edge predefinite. L'azienda ferroviaria ospita il sistema di integrazione continua/distribuzione continua (CI/CD) in locale. Il diagramma seguente illustra l'architettura DevOps per la distribuzione:
Nella prima pipeline di integrazione continua un push di codice nel repository Git attiva la compilazione del modulo IoT Edge e registra l'immagine del modulo in Registro Azure Container.
Il completamento della pipeline CI attiva la pipeline cd, che genera il manifesto della distribuzione e distribuisce il modulo nei dispositivi IoT Edge.
La distribuzione prevede tre ambienti: sviluppo, controllo di qualità e produzione. La promozione del modulo dallo sviluppo al controllo di qualità e dal controllo di qualità alla produzione supporta controlli gestiti sia automatici che manuali.
Per la compilazione e la distribuzione della soluzione vengono usati anche:
- Interfaccia della riga di comando di Azure
- Docker CE o Moby per compilare e distribuire i moduli contenitore
- Per lo sviluppo, Visual Studio o Visual Studio Code con Docker, Azure IoT e le estensioni del linguaggio pertinenti.
Prestazioni
Il sistema richiede un tempo di attività del 99% e il recapito dei messaggi in locale entro 24 ore. La qualità del servizio (QoS) per l'ultimo chilometro di connettività tra capanno e Azure determina la qualità del servizio per i dati provenienti dal perimetro. I provider di servizi Internet locali (ISP) regolano l'ultimo miglio di connettività e potrebbero non supportare il QoS necessario per le notifiche o il caricamento bulk dei dati.
Questo sistema non si interfaccia con le fotocamere delle ruote e gli archivi dati di supporto, quindi non ha alcun controllo o possibilità di generare avvisi in caso di malfunzionamenti del sistema di fotocamere o del server di immagini.
Questa soluzione non sostituisce i requisiti di ispezione manuale esistenti stabiliti dalle autorità normative aziendali e federali.
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.
La sicurezza e il monitoraggio sono aspetti da considerare per i sistemi IoT Edge. Per questo esempio:
- La soluzione aziendale esistente di terze parti ha coperto il monitoraggio del sistema.
- La sicurezza fisica dei trackside e della sicurezza di rete erano già in atto.
- Le connessioni da IoT Edge al cloud sono sicure per impostazione predefinita.
Passaggi successivi
- Il futuro dell'elaborazione: cloud intelligente e perimetro intelligente
- Documentazione di Azure IoT Edge
- Compilare i moduli IoT Edge
- Soluzione end-to-end con Azure Machine Learning e IoT Edge
- Integrazione e distribuzione continue in Azure IoT Edge
- Distribuire i moduli di Azure IoT Edge dal portale di Azure
Progetti GitHub:
- CloudEvents
- Azure IoT Edge e RabbitMQ
- Modello Cookiecutter per il modulo Python di Azure IoT Edge
- Flussi scalabili
- ServiceBusExplorer
- DASH per Archiviazione di Azure
Risorse di apprendimento delle soluzioni:
- Matrice di compatibilità Docker
- Plug-in di Azure IoT Edge per Jenkins
- Origine eventi
- Rispondere a eventi di archiviazione BLOB
- Binding dell'archiviazione BLOB di Azure per Funzioni di Azure
- Streaming serverless su larga scala con Azure Cosmos DB
- Quando evitare CQRS