Upgrade Zero-Impact su AWS RDS. Ottimizzazione PostgreSQL per IoT nel Manufacturing
Il cliente è un player internazionale di primo piano nel settore Manufacturing, specializzato nello sviluppo e produzione di soluzioni avanzate per il condizionamento, la refrigerazione e il riscaldamento. L'azienda fa affidamento su un'imponente infrastruttura cloud su AWS per gestire, in tempo reale, i flussi di dati provenienti da migliaia di dispositivi IoT distribuiti a livello globale. Dopo un setup iniziale affiancato da Miriade, il team interno ha gestito l'ambiente in autonomia. Tuttavia, a causa di priorità di business e complessità crescenti, l'aggiornamento del core database è stato posticipato fino a raggiungere una fase critica: l'imminente End of Life (EOL) della versione in uso.
A meno di sei mesi dal termine del supporto ufficiale per PostgreSQL 10, il cliente si trovava di fronte a un bivio pericoloso: subire un upgrade forzato e automatico da parte di AWS — con il rischio quasi certo di pesanti degradi prestazionali e interruzioni di servizio — oppure orchestrare una migrazione d'urgenza altamente controllata. Le sfide tecniche per l'IT erano monumentali e riguardavano:
- volumi e risorse critiche di un database monolitico del peso di circa 10 TB, ospitato su un'istanza RDS massiccia (32 vCPU, 128 GB di RAM);
- traffico IoT ininterrotto, con centinaia di terminali connessi e pattern complessi di lettura massiva e scrittura puntuale;
- necessità di un downtime ridottissimo, tassativamente inferiore a una singola giornata lavorativa e senza contemplare errori;
- impossibilità assoluta di riscrivere l'applicativo, modificare le logiche delle query o creare nuovi indici per adattarli al nuovo motore.
Per neutralizzare i rischi, Miriade ha progettato una strategia di migrazione e tuning "Zero-Impact". Il cuore dell'intervento è stata la creazione di un ambiente di staging avanzato, ingegnerizzato per simulare fedelmente lo stress del sistema di produzione. Catturando sessioni reali dell'ambiente live, il team ha replicato il carico di lavoro sul nuovo database aggiornato a PostgreSQL 14 all'interno di un perimetro protetto. Questo approccio ha permesso di raccogliere benchmark precisissimi e di ottimizzare preventivamente i piani di esecuzione (Execution Plans) del motore relazionale.
I risultati sono stati sorprendenti: l'ottimizzazione ha fatto crollare i tempi di esecuzione di query critiche (passate ad esempio da 2 minuti e 29 secondi a 36 secondi, o da 20 a 2 secondi) pur lasciando intatto il codice sorgente. Questo ha stabilizzato il carico dell'applicazione, abbattuto l'uso delle risorse (CPU passata dall'80% al 58%, IOPS ridotti da 25.000 a 15.000) e scongiurato la necessità di aumentare la taglia dell'istanza su AWS.
Per garantire un passaggio di versione indolore e ingegnerizzare test di carico validi anche per il futuro, Miriade ha sfruttato i seguenti tool e metodologie.
- Amazon RDS per PostgreSQL - Aggiornamento critico (dalla versione 10 alla 14) del database relazionale managed alla base dell'intera infrastruttura globale del cliente.
- Apache JMeter - Strumento open source impiegato per orchestrare e automatizzare test di carico massivi, rendendoli replicabili per le future roadmap di upgrade.
- Database Performance Tuning - Tecniche avanzate di analisi comportamentale del database, essenziali per ottimizzare i consumi di IOPS e le performance di lettura/scrittura dei dati IoT senza alcun refactoring applicativo.