Di recente avevo in agenda una videochiamata di un'ora per una architecture review con un cliente alle prese con due problemi: la latenza degli alert e la spesa per il cloud storage. Un cliente davvero interessante (così come il caso d'uso!) e uno degli impieghi più affascinanti dell'AI che mi sia capitato di vedere.

Ero stato coinvolto inizialmente perché ritenevano che Anthos di Google potesse aiutarli a risolvere uno dei loro problemi, e ultimamente è un ambito su cui sto lavorando molto. Anthos potrà esser loro utile in futuro, ma siamo arrivati alla conclusione che non era la soluzione giusta per le esigenze del momento.
Vale la pena raccontare questa storia perché, a mio avviso, è proprio ciò che distingue DoiT International da molti altri cloud solution partner, oltre alla nostra Cloud Management Platform e ai servizi offerti a costo zero per i clienti. Non consigliamo mai qualcosa che non riteniamo nel reale interesse del cliente, e i nostri team hanno piena libertà di compiere queste scelte: è anche per questo che i clienti ci apprezzano.
Il cliente
La soluzione SaaS di questa azienda viene utilizzata da fabbriche di tutto il mondo per automatizzare il controllo qualità. Ciò che trovo ammirevole è che siano riusciti a potenziare i lavoratori, rendendoli più efficaci nel loro lavoro, anziché sostituirli con un robot. È questa la vera promessa dell'AI.
Le fabbriche collegano le telecamere che monitorano le linee di assemblaggio e il software dell'azienda analizza il video in tempo reale, verificando che ogni passaggio venga eseguito. Se rileva un passaggio mancante, invia un alert in modo da poter correggere l'errore.

(non è il feed reale, solo un esempio casuale di feed di una fabbrica)
Sarà il geek che è in me, ma sono rimasto affascinato quando il cliente ha condiviso lo schermo collegandosi a un feed live e abbiamo visto il sistema spuntare la lista delle attività in una fabbrica di radiatori per auto (ruotare la ruota in senso antiorario, stringere questa valvola, eseguire il test di pressione, ecc.). Vederlo in azione è stato davvero spettacolare!
La latenza degli alert
Uno dei problemi che dovevano affrontare era un ritardo di 4 secondi tra il momento in cui veniva rilevato un problema e quello in cui l'operatore riceveva la notifica. I loro clienti pretendevano un ritardo non superiore a 2 secondi, così da avere il tempo di fermare la lavorazione e correggere l'errore prima che fosse troppo tardi. Avevano 6 mesi di tempo per risolvere la questione.
Gli ingegneri dell'azienda avevano sentito parlare di Anthos di Google, una piattaforma che abilita la modernizzazione delle applicazioni in ambienti hybrid e multi-cloud. Anthos consente alle organizzazioni di centralizzare e standardizzare policy, sicurezza, configurazione e gestione delle applicazioni containerizzate su tutti i principali cloud, sugli ambienti on-prem virtualizzati e ora anche bare metal (all'edge). Erano convinti che spostare l'elaborazione più vicino al cliente avrebbe risolto il problema della latenza, oltre a essere una "shiny new thing".
I costi del cloud storage
Potete immaginare quanto rapidamente possa lievitare lo storage quando si conservano feed video (a volte per anni) provenienti dalle telecamere di tutte queste fabbriche sparse nel mondo. Ogni feed produceva circa 700MB all'ora a 720p in formato H.264, anche dopo multiplexing e compressione. Elaboravano 130 ore alla settimana per fabbrica.
L'azienda utilizzava bucket di cloud storage in tier standard e i costi erano in costante aumento. Cercavano inoltre indicazioni su come migliorare l'efficienza.
Walkthrough dell'architettura
Il cliente ha condiviso lo schermo e un diagramma dell'architettura mentre io e un altro membro del nostro team di cloud architecture osservavamo.
"Gli stream live arrivano e li archiviamo in bucket Google Cloud Storage, poi li elaboriamo. Abbiamo costruito una rete neurale di deep learning custom con 1 GPU per stream che identifica l'inizio e la fine di determinate azioni. Memorizziamo i dati prodotti in Google Cloud Bigtable e poi la business logic li interpreta", ci hanno spiegato. "C'è un ritardo di 4,5 secondi, di cui oltre 3 secondi avvengono nella rete neurale. Suddividiamo il video in arrivo in frame da inviare alla rete neurale e poi ricodifichiamo il video."
Aspetta, come? "Spiegatemi perché ricodificate il video."
"Ah, è il retaggio di scelte poco felici fatte all'inizio: quando il video arriva, eliminiamo i timestamp. Dobbiamo ricodificarlo dopo l'inferenza per produrre il feed annotato."
"Quanto tempo richiede la ricodifica?", chiede il mio collega.
"Poco più di 2 secondi", rispondono.
"E quanto tempo impiegate per rilevare un errore?"
"Circa 1-1,5 secondi"
Bingo!
In quel momento è apparso chiaro che spostare i loro workloads all'edge con Anthos non avrebbe risolto il problema. Non era una questione di rete, ma applicativa.
La soluzione proposta per la latenza
Dopo aver discusso la loro architettura, abbiamo concluso che c'erano due strade da esplorare. La prima era rivedere il motivo per cui rimuovevano i timestamp nella fase iniziale di acquisizione, eliminando potenzialmente quel passaggio. La seconda era separare l'alerting dalla ricodifica e inviare l'alert immediatamente, senza attendere il completamento della codifica.
Hanno accettato e avrebbero affidato ai loro ingegneri il compito di esplorare queste strade, mettendo per il momento in pausa l'adozione di Anthos. Abbiamo anche scoperto che avevano clienti che, per ragioni di compliance, non volevano che i feed lasciassero la fabbrica. Ci sono ancora applicazioni valide per Anthos On-Prem nel prossimo futuro, ma per ora volevamo aiutarli a risolvere le esigenze immediate.
Abbiamo inoltre individuato aree di possibile risparmio elaborando più stream con un'unica GPU; e separando inferenza e alerting dalla ricodifica, potrebbero anche fare a meno di macchine così potenti.
La soluzione proposta per lo storage
Durante il walkthrough iniziale ci avevano spiegato che utilizzavano lo storage in tier standard senza ancora sfruttare i tier scontati per accessi meno frequenti. Un risultato facile da ottenere, su cui ci siamo trovati d'accordo, era sfruttare l'object lifecycle management di Google Cloud Storage per spostare automaticamente gli oggetti, in base all'età o alla frequenza di accesso, su tier di prezzo inferiori.
Anche se il cliente era soddisfatto e aveva già in programma di approfondire questa strada, volevo spingermi oltre per vedere se fosse possibile ottenere altri benefici. Mentre descrivevano il formato H.264, mi è tornato in mente un recente talk con i pionieri dell'AI Ian Longellow e Andrew Ng, tra gli altri, sui casi d'uso delle generative adversarial networks (GAN) al di là dei "deep fake": uno di questi era proprio il miglioramento della compressione video.
Ho proposto loro di valutare l'utilizzo delle GAN per ridurre ulteriormente la quantità di dati da archiviare nel salvataggio di questi video. Hanno riconosciuto il potenziale e si sono detti molto soddisfatti dei nostri suggerimenti. I loro ingegneri avevano in mano indicazioni concrete e non vedo l'ora di verificare a breve i progressi.
Un'altra architecture review di successo!

Questo esempio recente illustra cosa aspettarsi da un Senior Cloud Architect di DoiT International. Mettiamo a disposizione del team di engineering del cliente un livello di supporto personalizzato in stile "Stack Overflow" e aiutiamo a risolvere le criticità rispondendo nella metà del tempo rispetto alla maggior parte delle richieste di supporto dei vendor cloud. Supportiamo anche l'onboarding dei dipendenti del cliente con percorsi di formazione cloud. E, come in questo caso, affianchiamo i clienti nell'ottimizzazione dei costi e nelle architecture review (infrastruttura, dati, ML o AI e architettura software).
Se tutto questo ti incuriosisce, ti invito a visitare la nostra Careers Page oppure a scrivermi un messaggio su Twitter o LinkedIn. Cerchiamo i migliori e i più brillanti, quindi la selezione è rigorosa, ma una volta "dentro" scoprirai presto che DoiT International è un'azienda unica nel suo genere (a metà strada tra una product company e una di pro-serv). Non vedo l'ora di lavorare con te, sia come cliente sia come collega.