Immaginiamo che un servizio di streaming video decida di trasmettere dal vivo un concerto di mezzanotte con un famoso artista ma, quando gli utenti accedono a mezzanotte per guardarlo, abbiano problemi di buffering. Alcuni dei fan più fedeli potrebbero rimanere nei paraggi per vedere se il problema migliora; tuttavia, i fan occasionali potrebbero abbandonare lo streaming o, peggio ancora, i super fan frustrati potrebbero abbandonare lo streaming e il servizio di streaming.
Gli attuali consumatori di tecnologia si aspettano velocità elevatissime, tempi di attività lunghissimi e interazioni fluide. Le esperienze negative, come i problemi di buffering durante un grande concerto, possono aumentare l'abbandono dei clienti, quindi i team IT devono essere in grado di identificare rapidamente le cause e risolvere i problemi a livello di sistema.
È qui che gli strumenti di monitoraggio e observability diventano indispensabili per le moderne operazioni IT (ITOps). Vediamo come questi strumenti potrebbero non solo risolvere, ma anche prevenire questo tipo di scenari.
Per risolvere i problemi di buffering in un live streaming, un team operativo può utilizzare uno strumento di monitoraggio che invii una notifica quando un gruppo di server ha superato le soglie di carico. Il team può quindi ribilanciare il carico del server ridistribuendo il traffico tra i server disponibili.
Attivata dall'avviso di monitoraggio, una piattaforma di observability può analizzare le metriche chiave (come l'adattamento del bit rate) e utilizzare tracce distribuite per seguire le richieste video e identificare da dove inizia il buffering. Se, ad esempio, lo strumento rileva che i problemi di buffering derivano da nodi content delivery network (CDN) poco performanti, può fornire al personale IT opzioni per ottimizzare le configurazioni CDN e migliorare la compatibilità dei dispositivi.
Di fatto, i principali strumenti di observability possono analizzare i dati di monitoraggio storico per eventi di rete simili e prevedere che il concerto sovraccaricherà i nodi CDN in una determinata regione. Lo strumento può spingere il personale IT a riconfigurare proattivamente il CDN, risolvendo i nodi più lenti prima che creino problemi di buffering agli utenti.
In breve, il monitoraggio e l'observability offrono alle aziende approcci complementari per diagnosticare i problemi del sistema. Mentre il monitoraggio indica ai team quando qualcosa non va, l'observability dice loro cosa sta succedendo, perché sta succedendo e come risolverlo. Utilizzati insieme, supportano le funzionalità complete di rilevamento e risoluzione dei problemi di cui i team IT necessitano per garantire esperienze del cliente ottimali.
Per comprendere meglio la differenza tra observability e monitoraggio, esaminiamo il funzionamento di ognuno, le loro somiglianze e differenze e i ruoli che svolgono nello sviluppo del software e nella gestione della rete.
L'observability è la capacità di comprendere lo stato interno di un sistema complesso basandosi sui suoi output esterni. Quando un sistema è osservabile, i team IT possono identificare la causa principale di un problema di prestazioni esaminando i dati che produce. Non sono necessari ulteriori test o né alcuna codifica.
Il termine "observability" deriva dalla teoria del controllo, una teoria ingegneristica che si occupa dell'automazione del controllo dei sistemi dinamici (ad esempio, la regolazione del flusso d'acqua attraverso un tubo in base al feedback di un sistema di controllo del flusso). Un altro esempio sono i veicoli moderni. I sistemi diagnostici delle automobili spesso forniscono l'observability ai meccanici, che utilizzano queste informazioni per capire perché un'auto non si avvia senza doverla smontare.
Nell'ITOps e nel cloud computing, l'observability richiede strumenti software in grado di aggregare e correlare flussi costanti di dati sulle prestazioni dalle applicazioni, l'hardware e le reti su cui vengono eseguiti.
Le soluzioni di observability (come OpenTelemetry) possono analizzare i dati di output di un sistema, fornire una valutazione dello stato di salute del sistema e offrire insight fruibili per risolvere i problemi. I team possono quindi utilizzare i dati per monitorare, risolvere i problemi ed eseguire il debug di app e reti.
Un sistema osservabile è quello in cui i team DevOps possono vedere l'intero ambiente IT, inclusi i dati contestuali e le interdipendenze. Il risultato? Un'architettura IT che consente ai team di rilevare i problemi in modo proattivo, risolverli più rapidamente, ottimizzare l'esperienza del cliente e soddisfare gli accordi sul livello di servizio (SLA).
Il monitoraggio valuta lo stato di salute del sistema raccogliendo e analizzando i dati aggregati dai sistemi IT, sulla base di una serie predefinita di metriche e registri. In DevOps, il monitoraggio misura lo stato di salute delle applicazioni per rilevare guasti noti e prevenire il tempo di inattività. Un team IT potrebbe, ad esempio, creare una regola all'interno di uno strumento di monitoraggio che avvisa i componenti del team quando un'app si avvicina al 100% di utilizzo del disco.
Il monitoraggio mostra davvero il suo valore nell'analisi delle tendenze nel lungo periodo. Uno strumento di monitoraggio può mostrare ai team sia il funzionamento di un'app che il suo utilizzo nel tempo. Tuttavia, il monitoraggio ha i suoi limiti.
Affinché il monitoraggio sia efficace, i team devono sapere quali metriche e registri monitorare. Se il team non ha previsto un problema, gli strumenti di monitoraggio possono perdersi errori di produzione e altri problemi importanti. Il monitoraggio richiede inoltre al personale IT di correlare manualmente i dati tra strumenti di monitoraggio isolati, rendendo l'analisi della causa principale un processo più complesso e dispendioso in termini di tempo e limitando le funzionalità predittive degli sviluppatori.
I termini "observability" e "monitoraggio delle prestazioni delle applicazioni" sono spesso usati in modo intercambiabile. Tuttavia, è più accurato considerare l'observability come un'evoluzione del monitoraggio delle prestazioni delle applicazioni.
Il monitoraggio delle prestazioni delle applicazioni si riferisce agli strumenti e ai processi che aiutano i team IT a determinare se le applicazioni soddisfano gli standard delle prestazioni e le aspettative degli utenti. Gli strumenti di monitoraggio seguono solitamente lo stato di salute e le prestazioni dell'infrastruttura di rete, le dipendenze delle applicazioni, le transazioni aziendali e le esperienze degli utenti. Questi sistemi mirano a identificare, isolare e risolvere rapidamente i problemi a livello di prestazioni.
L'APM è stata la pratica standard per più di due decenni, tuttavia con il maggiore uso dello sviluppo agile, così come di DevOps, microservizi, linguaggi di programmazione multipli, tecnologie serverless e altre tecnologie cloud-native, i team necessitavano di un modo più rapido e completo per monitorare e valutare ambienti altamente complessi. Gli strumenti APM progettati per una generazione precedente di infrastrutture applicative non potevano più fornire una visibilità rapida, automatizzata e contestualizzata sulla salute e sulla disponibilità di un intero ambiente applicativo. Il nuovo software viene implementato ora così rapidamente, in così tanti piccoli componenti, che gli strumenti APM tradizionali hanno difficoltà a tenere il passo.
È qui che entra in scena l'observability. L'observability si basa sui metodi di raccolta dei dati degli strumenti di monitoraggio delle prestazioni delle applicazioni per affrontare meglio la natura distribuita e dinamica delle implementazioni di applicazioni e servizi cloud-native. Le soluzioni di observability adottano un approccio olistico alla registrazione e al monitoraggio, aiutando i team a capire meglio come i servizi interagiscono (ad esempio con le mappe delle dipendenze) e si adattano all'architettura generale.
La differenza tra monitoraggio e observability è spesso la differenza tra l'identificazione dei problemi che sicuramente si verificheranno e la ricerca di modi per anticipare i problemi che potrebbero verificarsi. Nella loro forma più elementare, il monitoraggio è reattivo e l'observability è proattiva. Tuttavia, entrambi utilizzano lo stesso tipo di dati di telemetria, noti come i tre pilastri dell'observability.
I tre pilastri sono:
Nel monitoraggio, i team usano questi dati di telemetria per definire soglie e benchmark e creare dashboard e notifiche preconfigurate. Possono anche usare i dati di telemetria per identificare e documentare le dipendenze, che rivelano il funzionamento di ogni componente dell'app con altri componenti, applicazioni e risorse IT.
Una piattaforma di observability porta il monitoraggio a un livello superiore. Anche le piattaforme di observability utilizzano la telemetria, ma la usano in modo proattivo.
DevOps, site reliability engineer(SRE), team delle operazioni e personale IT utilizzano strumenti di observability per correlare la telemetria in tempo reale e ottenere una visione completa e contestualizzata della salute del sistema. Ciò consente ai team di comprendere meglio ogni elemento del sistema e il modo in cui i diversi elementi si relazionano tra loro.
Fornendo una visione completa dell'ambiente IT e delle sue dipendenze, le soluzioni di observability possono mostrare ai team il "cosa", il "dove" e il "perché" di qualsiasi evento di sistema e come l'evento potrebbe influire sulle prestazioni dell'intero ambiente. Possono inoltre rilevare automaticamente nuove fonti di telemetria che potrebbero emergere nel sistema (ad esempio una nuova chiamata API a un'applicazione software).
Queste caratteristiche spesso determinano il modo in cui i team DevOps implementano la strumentazione delle applicazioni, i processi di debug e la risoluzione dei problemi. Molte soluzioni di observability includono anche funzionalità di machine learning (ML) e AIOps che aiutano a raccogliere insight dalle montagne di dati non elaborati creati dai moderni ambienti IT e a valutare i problemi in base alla gravità.
Sia il monitoraggio che l'observability sono essenziali per la gestione della rete e delle applicazioni, tuttavia si differenziano per diversi aspetti fondamentali:
Il monitoraggio tiene traccia delle prestazioni di un sistema nel tempo, utilizzando i KPI per anticipare i problemi di prestazioni e avvisare i team IT delle deviazioni dei dati in tempo reale. Si concentra principalmente sulla ricerca di problemi di sistema e sulla notifica agli stakeholder di eventi anomali del sistema. Ciò rende il monitoraggio più adatto per le reti statiche e ben comprese, con workload prevedibili.
L'observability utilizza i dati di telemetria, comprese le caratteristiche di tracciamento distribuito, da ogni dispositivo e componente della rete per creare un quadro più chiaro e completo delle prestazioni complessive della rete. Gli strumenti di observability possono condurre analisi della causa principale in tempo reale in ambienti IT complessi e dinamici. Identificano i componenti di rete lenti o danneggiati e forniscono avvisi per le correzioni preventive, aiutando i team a capire cosa monitorare e come risolvere i problemi in modo proattivo.
Gli strumenti di monitoraggio utilizzano metriche e registri specifici per rilevare errori di sistema, modelli di utilizzo delle risorse e modalità di errore specifiche. Aiutano i team a identificare le "incognite note", il che significa che i team IT possono trovare solo problemi che hanno già previsto. Il software di monitoraggio delle prestazioni delle applicazioni, ad esempio, può indicare se un'applicazione è online, offline o sta sperimentando problemi di latenza.
Il monitoraggio è un processo fondamentale che aiuta a garantire il corretto funzionamento dei sistemi, tuttavia gli strumenti di monitoraggio non possono fornire il contesto necessario per un rilevamento approfondito dei guasti e la risposta agli incidenti.
L'observability aiuta i team a visualizzare l'intera architettura, memorizzare le configurazioni dei dispositivi, integrare diverse fonti di dati in tutta la rete e supportare un'analisi ottimale dei dati. Gli strumenti di observability arricchiscono i dati di telemetria con informazioni aggiuntive sull'ambiente di rete (ad es. topologia, ruoli dei dispositivi e dipendenze delle applicazioni) e correlano i dati di rete per rivelare le "incognite note."
Una maggiore visibilità e insight più approfonditi consentono ai team IT di essere proattivi e di adottare un approccio più esplorativo alla gestione della rete e delle applicazioni.
I sistemi di monitoraggio raccolgono dati sulle tendenze e sulle prestazioni di utilizzo e li utilizzano per rivelare cosa sta succedendo. Tuttavia, non possono sempre spiegare perché stanno si stiano verificando eventi problematici.
Gli strumenti di observability utilizzano dati a livello di superficie, dati provenienti da pipeline CI/CD e dati storici per fornire un contesto e correlare eventi di sistema apparentemente non correlati. Le funzionalità di correlazione aiutano gli sviluppatori a identificare con precisione la causa principale dei problemi, sia in tempo reale che in retrospettiva.
Il monitoraggio è limitato dai set di dati predefiniti stabiliti dai team IT. Non è in grado di identificare problemi al di fuori di quanto programmato, quindi gli strumenti di monitoraggio sono spesso insufficienti per la gestione di ambienti dinamici.
Affidarsi esclusivamente agli strumenti di monitoraggio significa affidarsi a dati di monitoraggio isolati, che richiedono ai team di impiegare risorse aggiuntive per la correlazione dei dati e l'analisi manuale della causa principale. I processi manuali rallentano la risoluzione dei problemi e aumentano la probabilità di interruzioni del servizio e di interruzioni.
Gli strumenti di observability possono mappare le interazioni dei dati provenienti da fonti di dati dinamiche e diverse tra gli ambienti cloud (come gli ambienti ibridi e multicloud ), l'infrastruttura on-premise e le applicazioni di terze parti. Sono intrinsecamente adattabili, il che li rende adatti alle esigenze di risoluzione dei problemi delle moderne infrastrutture IT.
Inoltre, grazie alle loro funzionalità di automazione e AIOps, le piattaforme di observability possono scalare insieme agli ecosistemi, affinché i team possano gestire efficacemente le infrastrutture via via che si espandono.
Gli strumenti di monitoraggio spesso visualizzano i dati di sistema in dashboard che consentono al personale IT di vedere le metriche chiave in una posizione centralizzata. Tuttavia, non possono illustrare le origini degli errori di sistema. Gli strumenti di monitoraggio lasciano le attività predittive e l'analisi delle cause principali agli operatori umani.
Tuttavia, gli strumenti di observability possono creare mappe percorribili che includono gli errori di sistema e le loro cause principali, automatizzando i workflow di analisi delle cause principali e semplificando i processi di risoluzione dei problemi per i team IT.
Il monitoraggio e l'observability lavorano fianco a fianco per creare un framework completo per la gestione dei sistemi IT, ottimizzando la connettività di rete e aumentando al massimo la scalabilità dell'architettura.
Gli strumenti di monitoraggio stabiliscono le basi dell'observability tracciando i dati di telemetria e altre metriche chiave e avvisando i team in caso di deviazioni delle prestazioni. Se, ad esempio, un'applicazione supera la soglia di tempo di risposta stabilita, una soluzione di monitoraggio genera un avviso.
Uno strumento di observability analizza quindi i dati di telemetria e tutte le correlazioni dei dati (come le implementazioni recenti), aggiungendo informazioni contestuali e integrando i livelli di dati per determinare il motivo dell'avviso. Traccia le interazioni di un'app con altri servizi per capire se funziona lentamente a causa di un bug del database o di una congestione della rete.
Gli insight derivanti dall'observability possono anche aiutare a perfezionare le funzionalità di monitoraggio, creando un ciclo di feedback per il miglioramento continuo. Quando lo strumento di observability rileva un cambiamento nei modelli di dati, può aggiornare gli avvisi di monitoraggio per riflettere il nuovo modello in modo che gli strumenti di monitoraggio e observability funzionino di pari passo.
Inoltre, gli strumenti di observability utilizzano l'intelligenza artificiale (AI) e il machine learning (ML) per aumentare al massimo il potenziale dei dati di monitoraggio. Le funzionalità di observability basate su AI possono utilizzare l'analytics predittiva per prevedere rallentamenti o guasti (ad esempio, utilizzando le tendenze di utilizzo della memoria per prevedere l'esaurimento dei server). Inoltre, utilizzando algoritmi di ML, gli strumenti di observability possono perfezionare le pratiche di allerta, distinguendo tra avvisi critici e rumore.
Ad esempio, se c'è un picco temporaneo, ma previsto, nell'utilizzo della CPU, una soluzione di observability può sopprimere gli avvisi generati dagli strumenti di monitoraggio. Tuttavia, se si verifica un picco imprevisto e persistente nell'utilizzo della CPU, la soluzione può aiutare a garantire che l'avviso raggiunga immediatamente il personale IT competente.
Il monitoraggio e l'observability servono come strumenti essenziali e complementari per ottimizzare l'application performance management (APM) e le pratiche ITOps. Insieme, supportano pratiche proattive e reattive di risoluzione dei problemi in tutti i casi d'uso e aiutano a garantire che le aziende possano fornire agli utenti i servizi IT rapidi e ad alta disponibilità che si aspettano.
Identifica e correggi rapidamente l'origine del problema. I dati in tempo reale ad alta fedeltà offrono una visibilità completa degli ambienti dinamici delle applicazioni e dell'infrastruttura.
Migliora l'automazione e le operazioni IT con l'AI generativa, allineando tutti gli aspetti della tua infrastruttura IT alle priorità aziendali.
IBM SevOne Network Performance Management è un software di monitoraggio e analisi che fornisce visibilità e informazioni in tempo reale su reti complesse.