This case study describes challenges and lessons learned on building Ocean Guard: a Machine Learning-Enabled System (MLES) for anomaly detection in the maritime domain. First, the paper presents the system's specification, and architecture. Ocean Guard was designed with a microservices' architecture to enable multiple teams to work on the project in parallel. Then, the paper discusses how the developers adapted contract-based design to MLOps for achieving that goal. As a MLES, Ocean Guard employs code, model, and data contracts to establish guidelines between its services. This case study hopes to inspire software engineers, machine learning engineers, and data scientists to leverage similar approaches for their systems.
- ID Articolo: 2506.06202
- Titolo: MLOps with Microservices: A Case Study on the Maritime Domain
- Autori: Renato Cordeiro Ferreira, Rowanne Trapmann, Willem-Jan van den Heuvel
- Istituzioni: Jheronimus Academy of Data Science (JADS), Eindhoven University of Technology (TUe), Tilburg University (TiU)
- Classificazione: cs.SE cs.AI cs.LG
- Data di Pubblicazione: arXiv:2506.06202v2 cs.SE 11 Agosto 2025
- Link Articolo: https://arxiv.org/abs/2506.06202
Questo studio di caso descrive le sfide e gli insegnamenti derivati dalla costruzione del sistema Ocean Guard: un sistema abilitato al machine learning (MLES) per il rilevamento di anomalie nel dominio marittimo. L'articolo introduce innanzitutto le specifiche e l'architettura del sistema. Ocean Guard adotta un'architettura a microservizi che consente a più team di lavorare in parallelo. Successivamente, discute come gli sviluppatori hanno adattato la progettazione basata su contratti a MLOps per raggiungere questo obiettivo. Come MLES, Ocean Guard impiega contratti di codice, modello e dati per stabilire principi guida tra i servizi.
- Accelerazione della trasformazione digitale marittima: Secondo l'Organizzazione Marittima Internazionale (IMO), le navi moderne sono diventate "centri dati galleggianti", equipaggiate con centinaia di sensori che generano grandi volumi di dati eterogenei
- Ambiente operativo complesso: Il dominio marittimo è caratterizzato da movimento continuo transnazionale, quadri normativi diversificati e vulnerabilità alle condizioni meteorologiche
- Sfide nell'elaborazione dei dati: Necessità di sistemi in grado di acquisire, elaborare e analizzare su larga scala diversi flussi di dati, mantenendo al contempo l'affidabilità operativa in ambienti con connettività variabile e condizioni in rapido cambiamento
- Necessità di integrazione tecnologica: Combinare le migliori pratiche MLOps con l'architettura a microservizi per affrontare le esigenze di analisi predittiva, rilevamento di anomalie e ottimizzazione dei percorsi nel dominio marittimo
- Collaborazione multidisciplinare: Supportare lo sviluppo parallelo di team multidisciplinari composti da ingegneri software, data scientist e ingegneri di machine learning
- Scalabilità del sistema: L'architettura a microservizi è particolarmente adatta ai requisiti di modularità, scalabilità e resilienza del dominio marittimo
- Propone un approccio di progettazione guidato da contratti applicabile a MLES: Estende il concetto di contratti di codice nei microservizi ai contratti di dati e modelli
- Costruisce un'architettura completa di sistema per il rilevamento di anomalie marittimo: Sistema Ocean Guard basato su microservizi che supporta lo sviluppo parallelo di più team
- Verifica l'applicazione del DDD in MLOps: Crea un linguaggio ubiquo attraverso il Domain-Driven Design, migliorando la comunicazione tra team multidisciplinari
- Fornisce esperienza pratica nello sviluppo di MLES: Identifica e risolve tre sfide principali: accoppiamento, allineamento e comunicazione
Funzionalità dell'Investigatore (Investigator):
- I1-I6: Visualizzazione geografica, filtri, identificazione tipo oggetto, recupero da più fonti dati, visualizzazione metadati, tracciamento traiettorie
- I7-I9: Evidenziazione anomalie, filtri anomalie, visualizzazione spiegazioni anomalie
Funzionalità del Rilevatore di Anomalie (Anomaly Detector):
- A1-A3: Rilevamento anomalie, enumerazione anomalie, spiegazione anomalie
- Interpretabilità: Utilizzo di modelli interpretabili o tecniche di spiegazione black-box (SHAP, LIME)
- Compatibilità: Conformità agli standard UE, supporto per integrazione rapida con altri sistemi
- Resilienza: Gestione di fonti dati ad alta capacità e velocità
- Conformità: Aderenza al GDPR e all'AI Act europeo
- Acquisizione Dati (Data Acquisition)
- Fornitori terzi (1), sensori fisici (2), web scraper (3)
- Archivio etichette (A) e archivio dati grezzi (B)
- Addestramento Continuo (Continuous Training)
- Pipeline di generazione dati sintetici (I), pipeline di aumento dati (II)
- Pipeline di addestramento basato su regole (III), pipeline di addestramento basato su ML (IV)
- Archivio metadati (F) e registro modelli (G)
- Servizio (Serving)
- Pipeline di previsione batch (VIII) e servizio API di previsione (8)
- Archivio previsioni (H)
- Monitoraggio (Monitoring)
- Applicazione di governance (7) e archivio telemetria (I)
- Consegna Continua (Continuous Delivery)
- Pipeline CI (V), pipeline CD (VI), pipeline CD4ML (VII)
- Registro artefatti (D)
Adotta Architettura Esagonale (Hexagonal Architecture):
- Nucleo (Core): Implementa la logica di business, seguendo il pattern DDD
- Entità (Entities), Oggetti Valore (Value Objects)
- Aggregati (Aggregates), Servizi (Services)
- Porte (Ports): Stabilisce contratti tra il nucleo e gli adattatori
- Repository database, iniezione dipendenze, meccanismi di sicurezza, router web
- Adattatori (Adapters): Comunica con dipendenze esterne
- Adattatori di lettura: modelli, API terze parti, archivi, database, configurazione
- Adattatori di output: web, cache
| Team | Responsabilità | Componenti |
|---|
| Team di Ricerca | Esplorazione tecnologie all'avanguardia | Pipeline sperimentali e di addestramento |
| Team di Innovazione | Esplorazione tecnologie pratiche | Pipeline sperimentali e di addestramento |
| Team di Sviluppo Core | Sviluppo backend e infrastruttura | API, database, repository modelli |
| Team di Sviluppo UI | Sviluppo frontend e design interfaccia | Applicazione web |
- Definizione: Documentazione del comportamento di interazione sincrona/asincrona tra due servizi tramite protocollo HTTP
- Scenari di applicazione:
- Contratti tra web scraper e fonti dati esterne
- Contratti tra servizio API di previsione e applicazione web
- Definizione: Documentazione del formato atteso nei depositi dati, inclusi tipo, formato, distribuzione e protocolli di lettura/scrittura
- Scenari di applicazione:
- Contratti tra produttore e consumatore dell'archivio etichette
- Contratti multipartiti dell'archivio dati grezzi
- Contratti tra pipeline di dati elaborati
- Definizione: Documentazione degli input/output attesi del modello e formato di archiviazione
- Scenari di applicazione: Contratti tra pipeline di addestramento e servizio di previsione nel registro modelli
Crea vocabolario condiviso tra team attraverso DDD, migliorando:
- Comprensione tra stakeholder e sviluppatori
- Allineamento tra team
- Spiegazione di concetti di dati e modelli
- Repository di codice: Gestione centralizzata del codice sorgente
- Strumenti di sviluppo: IDE (4) per ingegneria software strutturata, Notebook (5) per prototipazione interattiva e analisi
- CI/CD: Pipeline di integrazione continua, pipeline di consegna continua, pipeline di consegna continua ML
- Containerizzazione: Utilizzo di registro artefatti per gestire componenti software versionati
- Servizio di pianificazione: Coordina l'esecuzione di vari componenti
- Sistema di monitoraggio: Applicazione di governance monitora modelli e utilizzo del sistema
- Accoppiamento (Coupling)
- Problema: La complessità del sistema causa effetti a cascata dalle modifiche ai componenti
- Soluzione: Ridurre i problemi di integrazione attraverso progettazione guidata da contratti
- Allineamento (Alignment)
- Problema: Sfide di coordinamento con quattro team professionali che lavorano in parallelo
- Soluzione: Definizione chiara dei confini, integrazione pipeline CI/CD
- Comunicazione (Communication)
- Problema: Difficoltà nel spiegare l'evoluzione del sistema a stakeholder con background tecnico diverso
- Soluzione: Stabilire linguaggio ubiquo attraverso DDD
| Metodo Tecnico | Sfide Risolte | Effetti Specifici |
|---|
| Progettazione guidata da contratti | Accoppiamento + Allineamento | Riduce problemi di integrazione, migliora coesione del sistema |
| Linguaggio ubiquo | Comunicazione + Allineamento | Approfondisce comprensione, migliora qualità feedback |
- Dal 2022: Molteplici architetture di riferimento MLES proposte
- SE4AI: Campo emergente di adattamento delle tecniche di ingegneria software per la creazione di sistemi AI
- Componentizzazione del sistema: MLES descritto come contenente molteplici componenti distribuibili tra servizi
- Dal 2015: Emergere dello stile architetturale a microservizi, affrontando sfide di modularità, scalabilità e resilienza
- Applicabilità marittima: Componenti specializzati gestiscono diverse fonti dati marittimi e esigenze analitiche
- Validità dell'architettura: L'architettura a microservizi supporta con successo lo sviluppo parallelo di MLES da parte di team multidisciplinari
- Estensione dei contratti: Il concetto di contratti di codice nei microservizi è stato esteso con successo alle dimensioni di dati e modelli
- Applicabilità del DDD: Il Domain-Driven Design migliora efficacemente la comunicazione e il coordinamento tra team multidisciplinari
- Affrontamento delle sfide: La progettazione guidata da contratti e il linguaggio ubiquo risolvono efficacemente le sfide di accoppiamento, allineamento e comunicazione
- Restrizioni di sensibilità: A causa della sensibilità del progetto, l'articolo non affronta modelli dati specifici e tecniche di rilevamento anomalie
- Vincoli accademici: Team di ricerca e innovazione composti da studenti, soggetti a scadenze accademiche
- Fase di implementazione: Il sistema è ancora in sviluppo, mancano validazioni a lungo termine in ambiente di produzione
- Completamento funzionale: Continuare lo sviluppo per soddisfare tutti i requisiti funzionali e non funzionali
- Esplorazione tecnologica: Continuare l'esplorazione di tecnologie all'avanguardia e pratiche con team di ricerca e innovazione
- Evoluzione architetturale: Guidare il processo di sviluppo basato sui metodi di contratto stabiliti e sul linguaggio ubiquo
- Alto valore pratico: Fornisce uno studio di caso completo sulla combinazione di MLOps e microservizi
- Innovazione metodologica: L'estensione della progettazione guidata da contratti alle dimensioni di dati e modelli è originale
- Architettura completa: La progettazione dell'architettura del sistema è comprensiva, coprendo tutti gli aspetti di MLES
- Collaborazione tra team: Risolve con successo le sfide dello sviluppo parallelo di team multidisciplinari
- Guida pratica: Fornisce esperienza e insegnamenti applicabili a progetti simili
- Profondità tecnica limitata: A causa delle restrizioni di sensibilità, mancano dettagli specifici su algoritmi ML e elaborazione dati
- Valutazione insufficiente: Mancano valutazioni quantitative di prestazioni del sistema e scalabilità
- Assenza di validazione a lungo termine: Il sistema non ha ancora funzionato a lungo termine in ambiente di produzione
- Analisi comparativa insufficiente: Manca il confronto con altre soluzioni di architettura MLES
- Contributo al dominio: Fornisce importante riferimento pratico per la combinazione di MLOps e microservizi
- Valore metodologico: L'estensione della progettazione guidata da contratti ha ampia applicabilità
- Pratica ingegneristica: Fornisce modelli efficaci per la collaborazione tra team in MLES complessi
- Riproducibilità: La progettazione dell'architettura e la metodologia hanno buona riproducibilità
- Sviluppo MLES multiteam: Sistemi di machine learning che richiedono lo sviluppo parallelo di team multidisciplinari
- Elaborazione dati complessa: Architettura di sistema che coinvolge dati eterogenei da molteplici fonti
- Requisiti di conformità elevati: Applicazioni industriali che devono soddisfare requisiti normativi rigorosi
- Sistemi scalabili: Architetture ML altamente modularizzate e scalabili
L'articolo cita 17 riferimenti importanti, coprendo:
- Ricerca sulla trasformazione digitale marittima
- Migliori pratiche di architettura a microservizi e MLOps
- Metodologie di ingegneria software (DDD, architettura esagonale)
- Ingegneria dei sistemi di machine learning (SE4AI)
Riepilogo: Attraverso lo studio di caso Ocean Guard, questo articolo dimostra con successo l'applicazione dell'architettura a microservizi in MLOps, in particolare il valore della progettazione guidata da contratti nella collaborazione tra team. Sebbene limitato da restrizioni di sensibilità nel non approfondire i dettagli tecnici, il suo contributo metodologico e il valore della guida pratica sono significativi, fornendo preziosa esperienza di progettazione architettonica e collaborazione tra team per progetti MLES complessi simili.