Il sistema informativo odierno è molto articolato e variabile nel tempo. Sistemi legacy e applicazioni più o meno moderne coesistono con database relazionali, non relazionali e specifici; con infrastrutture on prem -, in private cloud o basate su uno o più public cloud (multicloud).
Il monitoraggio complessivo (cloud monitoring) si fa difficile da ottenere già come singola istantanea, per poi diventare ancora più complesso quando si vogliono pianificare e controllare risorse e costi futuri.
Solo un monitoraggio efficace garantisce al patrimonio software alte e durature prestazioni.
I perché del cloud monitoring
Il monitoraggio costante del sistema consente di gestire le prestazioni e la disponibilità delle applicazioni software. Ciò porta a tempi di risposta rapidi, processi di elaborazione migliorati e clienti soddisfatti. Soprattutto l’esperienza dell’utente finale digitale è uno degli obiettivi principali, quando si tratta di interazioni con utenti reali e transazioni commerciali.
Un panorama di componenti così ricco genera un numero molto elevato di eventi da registrare, inquadrare e gestire. Gli strumenti di monitoraggio semplificano queste fasi, indirizzando verso il componente che potrebbe causare problemi di prestazioni. Inoltre, aiuta a migliorare le prestazioni e il relativo provisioning a breve e medio termine.
Ovviamente c’è differenza nella granularità dell’analisi a seconda del grado di modularità del software. I sistemi legacy possono essere analizzati nella loro strutturazione in blocchi di grandi dimensioni, mentre maggiore è l’aderenza all’approccio microservices, più granulare sarà l’analisi diretta.
Soluzioni articolate per sistemi articolati
Ovviamente, la gran parte dei sistemi in cloud fornisce uno strumento di monitoring. L’adeguatezza agli obiettivi aziendali di questi strumenti va valutata sia in senso assoluto, sia in rapporto alla possibilità d’integrazione con strumenti innovativi. Negli ultimi tempi si fa molta attenzione all’AI nel monitoring e nelle successive fasi decisionali, ma nuove possibilità vengono costantemente aggiunte al ricco panorama del cloud monitoring.
Ecco perché per sistemi sufficientemente articolati si usa una soluzione di controllo altrettanto articolata che deve supportare un numero sufficiente di database, servizi cloud e tecnologie. Gran parte del software di oggi e dei prossimi anni è basato su container; quindi, anche queste unità devono essere correttamente monitorate. La soluzione deve integrarsi nella pipeline di delivery, automatizzando dove possibile e fornendo un sistema di valutazione basato su KPI. In particolare, tra gli indici globali più diffusi si deve guardare l’efficienza di automazione.
Non bisogna infine dimenticare l’importanza delle metriche del sistema visto dagli utenti.
Una prima valutazione riguarda sia il back-end, sia il front-end.
Per andare un po’ più nel dettaglio, vediamo le principali funzioni erogate dalle piattaforme di monitoring oggi sul mercato.
Monitoraggio database
Partiamo da una osservazione: la maggior parte dei colli di bottiglia nelle prestazioni delle applicazioni nascono nella struttura di archiviazione. La percentuale sale continuamente, in quanto numero e tipo di database ai quali ciascuna applicazione può accedere sta continuamente salendo. La gestione delle prestazioni del database permette di seguire il dato nel suo flusso, identificando il momento nel quale si crea un problema e quindi creando la migliore situazione per poterlo risolvere. Serve quindi un tool di analisi di tutte le attività dei database che possa arrivare fino alle singole istruzioni SQL e NoSQL.
Analisi della CI/CD
L’area di gestione degli sviluppatori ha assoluto bisogno di metriche sull’innovazione. Una loro corretta scelta, con analisi su ogni build, permette il continuo miglioramento delle prestazioni a livello di pipeline CI/CD.
Gestione delle prestazioni delle applicazioni
Le applicazioni distribuite sul cloud possono essere monitorate end-to-end da un unico punto di controllo. Può essere importante arrivare al codice, scendendo fino al livello della transazione aziendale. Gli ambienti più frequentemente osservati sono Java, .NET, Node.js e PHP.
Monitoraggio del server cloud
Una volta identificati i flussi prestazionali delle applicazioni, l’analisi delle prestazioni dell’infrastruttura permette un confronto di grande interesse. In questi casi si parla di “visibilità contestuale” di mismatch dei due flussi (software e hardware) e anche dei relativi costi di gestione.
Monitoraggio del mainframe
Architetture che comprendono mainframe hanno necessità di integrarne l’analisi specifica nel flusso generale. Non si tratta di un’operazione difficile, per la stessa natura del business su mainframe. Applicazioni mainframe anche complesse sono abbastanza facili da tracciare correttamente.
Monitoraggio dello stack
Il monitoraggio delle prestazioni dello stack completo fornisce un contesto molto ampio. Vengono raccolte informazioni su dati, applicazioni, cloud, infrastruttura (eventualmente container) ed UX. Per questo è necessario che il monitoring comprenda l’analisi a livello dello stack e che sia oggetto di una scelta sartoriale degli indici rilevanti.
In particolare, focalizzandosi sul volume degli utenti è possibile anche impostare lo scaling automatico delle risorse.