ADM
Piattaforma per i dati di collaudo e la tracciabilità delle spedizioni sulla linea di produzione di un produttore italiano di illuminazione.
- Web App
- DevOps
Sfida
I banchi Schleich della linea registrano il collaudo di fine linea di ogni apparecchio come file CSV su una condivisione Windows. Recuperare il rapporto di un'unità significava sfogliare le cartelle a mano, e i registri di spedizione erano tenuti in elenchi separati, senza alcun collegamento con i collaudi. Al produttore serviva che ogni dispositivo collaudato fosse ricercabile e legato alla sua spedizione e al suo operatore, senza cambiare il funzionamento dei banchi.
Soluzione
Abbiamo costruito ADM come tre servizi NestJS in TypeScript che condividono un unico database. Il parser scansiona le cartelle dei banchi a intervalli configurabili, tiene traccia dei file già elaborati e importa solo ciò che è nuovo, salvando ogni collaudo fino al singolo passo di prova con valori misurati, valori impostati e tolleranze. Un secondo servizio traccia i dispositivi per numero di serie, li raggruppa in spedizioni e registra l'operatore, e un API gateway instrada le richieste della web app Angular verso il servizio giusto. Il personale filtra per data, numero di serie, programma o spedizione, apre il rapporto completo passo per passo di qualsiasi unità e scarica la vista corrente in CSV. Ogni servizio è documentato con OpenAPI, pubblicato come immagine Docker dalla CI di GitLab e distribuito su un cluster Kubernetes a nodo singolo predisposto da playbook Ansible che montano anche le condivisioni di rete dei banchi e installano uno stack di log Grafana Loki.
Risultato
Dal primo commit ai rilasci di produzione in un mese: raccolta dei collaudi, tracciabilità per singola unità e tracciamento delle spedizioni su un'unica piattaforma. Il personale cerca lo storico di collaudo completo di qualsiasi dispositivo per numero di serie invece di frugare tra le cartelle della condivisione, e il sistema è ancora in uso sulla linea del produttore.
Informazioni sul progetto
Ogni apparecchio di illuminazione che esce dalla linea di montaggio del cliente passa da un banco di collaudo di fine linea: resistenza di isolamento, continuità del conduttore di protezione, prova funzionale con misura di potenza, una serie di controlli visivi. I banchi registrano i risultati di ogni unità in file CSV su una condivisione di rete. Dati precisi, ma di fatto impossibili da consultare, e scollegati dai registri di spedizione tenuti altrove. Un produttore italiano di illuminazione ha chiesto a LM DevStudio di trasformare quei dati in qualcosa che il personale potesse davvero usare.
ADM è la piattaforma che abbiamo costruito: tre servizi NestJS dietro un API gateway e una web app Angular. Un parser sorveglia le cartelle in cui i banchi scrivono i propri file e carica nel database ogni nuovo rapporto di collaudo, fino al singolo passo di prova con valori misurati e tolleranze. Un servizio di tracciamento raggruppa i dispositivi collaudati in spedizioni e registra l'operatore che li ha gestiti. Nella web app il personale di produzione trova il rapporto di collaudo completo di ogni unità per numero di serie, programma o data, ed esporta CSV filtrati. L'intero sistema gira su un cluster Kubernetes a nodo singolo sull'hardware del produttore, installato e configurato interamente con Ansible.
Strumenti utilizzati
- Angular
- NestJS
- SQLite
- Kubernetes
- Ansible