Che cos'è l'ingegneria della observability?

Un uomo con occhiali e camicia a quadri lavora a una scrivania con due grandi monitor su cui sono presenti righe di codice e con un laptop aperto davanti a sé.

Autori

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think

Che cos'è l'ingegneria della observability?

L'ingegneria della observability è il processo di progettazione e costruzione di sistemi intrinsecamente osservabili e sfruttando strumenti e metodi avanzati per raccogliere, analizzare e visualizzare i dati di observability.

Quando un sistema è osservabile, gli sviluppatori possono distinguere lo stato dei vari sistemi software, dell'infrastruttura e dei componenti di rete analizzando i loro output esterni. Gli strumenti di monitoraggio convenzionali spesso non sono in grado di fornire una visibilità completa negli intricati ambienti software odierni, che presentano architetture distribuite e una serie di microservizi e altri componenti interdipendenti.

I sistemi software e gli ambienti informatici moderni richiedono strumenti di full stack observability che offrano caratteristiche di tracciamento distribuito e metriche e registrazione complete. Con l'ingegneria della observability, le caratteristiche di observability vengono inserite nei sistemi di sviluppo e di produzione.

Gli ingegneri della observability inseriscono funzioni di observability nei livelli di applicazione, infrastruttura e middleware e integrano i dati degli eventi di sistema nelle pipeline di monitoraggio. Utilizzano strumenti avanzati che correlano gli eventi di sistema tra contenitori, pod, server e content delivery network (CDN) per consentire la tracciabilità end-to-end in ambienti informatici complessi cloud-native.

L'ingegneria della observability aiuta i team ad analizzare i dati di monitoraggio e telemetria, creare meccanismi di allarme più reattivi e ottenere visualizzazioni dei dati e dashboard più sfumate. Supporta anche una strategia di observability shift left, che consente agli sviluppatori di rilevare in modo proattivo i problemi di sistema, comprenderne la causa principale e determinare il modo più efficace per risolverli eseguendo le caratteristiche di observability nelle prime fasi del ciclo di vita dello sviluppo.

Incorporando l'ingegneria della observability nelle loro pratiche di sviluppo e di gestione della rete, le aziende possono creare sistemi più osservabili che facilitano la fornitura di app sicuri, ad alta disponibilità e ad alte prestazioni.

Design 3D di palline che rotolano su una pista

Le ultime notizie e insight sull'AI


Scopri notizie e insight selezionati da esperti in materia di AI, cloud e molto altro nella newsletter settimanale Think. 

Spiegazione della observability

L'osservabilità è la capacità di comprendere lo stato interno o la condizione di un sistema complesso basandosi unicamente sulla conoscenza dei suoi output esterni, in particolare della sua telemetria.

In un sistema osservabile, i team IT possono monitorare e analizzare più facilmente le prestazioni del sistema. Ad esempio, possono vedere con precisione in che modo i dati fluiscono nello stack tecnologico di un'organizzazione, comprese le applicazioni, i data center on-premise e gli ambienti cloud, e dove potrebbero esserci eventuali colli di bottiglia. Questo insight aiuta i team a identificare e risolvere i problemi più rapidamente e in generale a creare sistemi più forti e resilienti.

In sostanza, l'observability consiste nel trasformare i dati non elaborati in insight attuabili. Tuttavia, a differenza degli approcci di monitoraggio tradizionali (che si concentrano su metriche predefinite e sulla risoluzione reattiva dei problemi), l'observability adotta un approccio proattivo.

Gli strumenti di observability si basano sulla raccolta di dati da un'ampia gamma di fonti per condurre analisi più approfondite e accelerare la risoluzione dei problemi. Raccolgono telemetria e altri dati da vari componenti di rete (container, pod e microservizi, tra gli altri) per offrire ai team di sviluppo una visione olistica dello stato di salute dei componenti e delle prestazioni e quella dei sistemi più grandi di cui fanno parte.

La telemetria include i "tre pilastri" della observability: log, metriche e tracce.

I log sono registrazioni dettagliate di quello che sta accadendo all'interno di una rete e di sistemi software. I log forniscono informazioni granulari su quello che è accaduto, quando si è verificato e dove si è verificato nella rete.

Le metriche sono valutazioni numeriche delle prestazioni di un sistema e dell'utilizzo delle risorse. Le metriche forniscono una panoramica di alto livello della salute del sistema, acquisendo tipi di dati e indicatori chiave di prestazione (KPI) specifici, come latenza, perdita di pacchetti, disponibilità di larghezza di banda e utilizzo della CPU del dispositivo.

Tracce: record end-to-end del percorso di ogni richiesta dell'utente attraverso la rete. Le tracce forniscono insight sul percorso e sul comportamento dei pacchetti di dati mentre attraversano più dispositivi e sistemi, rendendole essenziali per comprendere i sistemi distribuiti.

A differenza degli strumenti di monitoraggio, le piattaforme di observability utilizzano la telemetria in modo proattivo. I team DevOps e gli ingegneri della observability dei siti (SRE) utilizzano strumenti di observability per correlare la telemetria in tempo reale e ottenere una visione completa e contestualizzata della salute del sistema. Queste caratteristiche consentono 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 scoprire automaticamente nuove fonti di telemetria che potrebbero emergere nel sistema (una nuova application programming interface (API) chiamata all'applicazione, ad esempio).

Le funzionalità di telemetria e la correlazione dei dati spesso determinano il modo in cui gli ingegneri del software e i team DevOps implementano la strumentazione dell'applicazione, i processi di debug e la risoluzione dei problemi. Questi strumenti consentono ai team IT di rilevare e indirizzare i problemi prima che si aggravino, contribuendo a garantire una connettività senza interruzioni, un tempo di inattività minimo ed esperienze ottimizzate.

Tuttavia, forniscono anche il feedback che gli sviluppatori possono incorporare nelle future pratiche di observability, il che li rende parte integrante anche dell'ingegneria di observability.

Principi fondamentali dell'ingegneria della observability

L'ingegneria della observability di successo si basa su alcuni principi importanti, tra cui:

    Strumentazione completa dell'app

    L'embedding della registrazione, delle metriche e della traccia nei codebase delle applicazioni aiuta i team di ingegneria ad acquisire dati critici nei punti di raccolta chiave.

    I team possono utilizzare formati di registrazione strutturati (come JSON) per semplificare il log management e la ricerca e l'analisi dei log. E la strumentazione di ogni microservizio e integrazione di terze parti per raccogliere tracce delle richieste di dati in entrata e in uscita facilita la visibilità completa in tutto l'ambiente IT in modo che gli sviluppatori possano trovare e apportare correzioni più rapidamente.

    Traccia distribuita

    Gli strumenti di tracciamento distribuito, che visualizzano l'intero percorso di ogni richiesta di dati in un ambiente informatico, aiutano i team IT a risolvere rapidamente i problemi quando si presentano.

    Gli sviluppatori possono utilizzare identificatori univoci per seguire le richieste mentre attraversano più servizi, fornendo così una completa e insight end-to-end nelle operazioni. Ad esempio, gli ingegneri possono assegnare ID di tracciamento univoci a ogni richiesta di dati in entrata all'edge dell'ecosistema (su API Gateway, ad esempio) e applicare ID di span a ogni segmento del percorso della richiesta.

    Obiettivi significativi del livello di servizio (SLO)

    Gli SLO sono gli obiettivi di prestazioni concordati per un servizio in un periodo specifico. Aiutano a garantire che le aziende possano rispettare gli accordi sul livello di servizio (SLA), i contratti tra fornitori di servizi e clienti che definiscono il servizio da fornire e il livello di prestazioni che gli utenti dovrebbero aspettarsi.

    Stabilire metriche chiare e quantificabili che rappresentino le esperienze utente effettive e fissare obiettivi raggiungibili per l'affidabilità e le prestazioni del sistema è parte integrante dell'ingegneria della observability. Questo processo non solo aiuta a garantire che gli ingegneri lavorino sempre con dati di observability pertinenti, ma facilita anche il rilevamento e la risoluzione accurati dei problemi.

    Cultura di observability al primo posto

    L'ingegneria della observability non consiste solo nello spostare l'observability rimasta nel ciclo di vita dello sviluppo. Si tratta anche di facilitare lo sviluppo basato sulla observability, in cui le pratiche di observability sono integrate nei workflow quotidiani degli sviluppatori e determinano il modo in cui gli ingegneri creano e gestiscono il codice.

    Componenti chiave dell'ingegneria della observability

    Oltre ai dati di telemetria di base e agli strumenti di correlazione, l'ingegneria della observability si basa su:

    Monitoraggio e avvisi in tempo reale

    Stabilire protocolli di monitoraggio solidi è fondamentale per mantenere i sistemi osservabili. Gli strumenti di monitoraggio possono raccogliere e tracciare costantemente una serie di metriche di sistema, tra cui l'utilizzo della memoria, i tassi di errore, i tempi di risposta e i risultati sintetici delle transazioni. Il monitoraggio in tempo reale aiuta a garantire che gli ingegneri dispongano di informazioni aggiornate sul comportamento del sistema.

    La maggior parte delle soluzioni di observability include anche meccanismi di avviso automatici che comunicano ai team la presenza di eventi anomali e deviazioni dalle linee di base stabilite.

    Eventi strutturati

    Gli eventi strutturati sono record di dati che contengono coppie chiave-valore, che descrivono un'attività o un'occorrenza specifica in un sistema. La trasmissione di eventi strutturati è spesso il modo migliore per tenere traccia delle attività e delle modifiche significative del sistema perché acquisiscono il contesto e la sequenza di operazioni che hanno portato a un particolare stato o errore.

    Ogni evento include in genere un identificatore univoco, metadati (come intestazioni e variabili) e un timestamp di esecuzione, che li rendono preziosi per il debug, l'auditing e l'analisi forense.

    Monitoraggio delle prestazioni delle applicazioni

    Gli strumenti di monitoraggio delle prestazioni dell'applicazione offrono una visibilità completa sullo stato di salute dell'applicazione e sull'esperienza dell'utente finale. Possono tenere traccia delle metriche critiche sulle prestazioni delle app, come il throughput delle transazioni, la latenza e le dipendenze tra i servizi, che aiutano i team a diagnosticare i colli di bottiglia delle prestazioni, tracciare le interazioni degli utenti e comprendere l'impatto delle modifiche sullo stack di applicazioni.

    Dashboard

    Le dashboard aggregano e visualizzano metriche, registri e tracce provenienti da diversi componenti del sistema, offrendo ai team insight visualizzati che li aiutano a valutare rapidamente le prestazioni del sistema, identificare le tendenze dei dati e individuare i problemi. Le dashboard spesso sono personalizzabili, il che consente agli sviluppatori di configurarle per evidenziare i dati più rilevanti per il ruolo di ogni stakeholder nell'organizzazione.

    Integrazione con DevOps e progettazione dell'affidabilità del sito (SRE)

    L'ingegneria della observability è profondamente intrecciata con le metodologie DevOps e progettazione dell'affidabilità del sito (SRE).

    Fornisce i dati di cui i team hanno bisogno per implementare pratiche avanzate di observability, come il flag delle caratteristiche (in cui le nuove caratteristiche vengono attivate o disattivate in tempo di esecuzione per controllare quali utenti possono accedervi) e le implementazioni blu-verdi (in cui gli sviluppatori eseguono due ambienti di produzione paralleli simili (o cluster) e ogni ambiente esegue una versione diversa di un'applicazione).

    Integrando l'ingegneria della observability nelle pipeline CI/CD e nei processi di automazione, i team IT possono migliorare l'affidabilità complessiva del sistema, accelerare l'implementazione del software e gestire con sicurezza le modifiche nell'ambiente di produzione.

    Mixture of Experts | 12 dicembre, episodio 85

    Decoding AI: Weekly News Roundup

    Unisciti al nostro gruppo di livello mondiale di ingegneri, ricercatori, leader di prodotto e molti altri mentre si fanno strada nell'enorme quantità di informazioni sull'AI per darti le ultime notizie e gli ultimi insight sull'argomento.

    Tecniche di ingegneria della observability

    L'ingegneria della observability comprende una raccolta di pratiche e strumenti che possono aumentare la visibilità negli ambienti IT. Consente inoltre agli sviluppatori di implementare tecniche di ingegneria più sofisticate, tra cui:

    Correlazione dei KPI aziendali

    L'ingegneria della observability aiuta i team a collegare gli indicatori tecnici (latenza, ad esempio) ai principali risultati aziendali (come la soddisfazione del cliente o la generazione di entrate). Questo approccio consente al personale IT di valutare l'impatto aziendale dei problemi tecnici, dare priorità alle soluzioni più importanti e allineare le priorità tecniche agli obiettivi organizzativi.

    Se, ad esempio, i dati di observability mostrano che una latenza più alta è legata a tassi di conversione più bassi, gli sviluppatori possono risolvere i problemi di latenza per contribuire ad aumentare le conversioni.

    OpenTelemetry (OTel)

    OpenTelemetry, o OtEL, è un framework di observability open source che include una raccolta di kit di sviluppo software (SDK), API indipendenti dal fornitore e altri strumenti per la strumentazione di applicazioni, sistemi e dispositivi. Otel semplifica il modo in cui vengono raccolti i dati di telemetria, indipendentemente dal linguaggio di programmazione, dall'infrastruttura o dall'ambiente di esecuzione, e consente agli sviluppatori di generare, raccogliere ed esportare dati di telemetria standardizzati per qualsiasi backend di observability.

    Con OTel, gli ingegneri di observability possono raccogliere dati di telemetria in modo coerente tra diverse app, sistemi e casi d'uso; semplificare l'integrazione dei dati e le pratiche di osservabilità; e rendere i loro ambienti IT a prova di futuro.

    Verifica costante

    La costante verifica consente agli sviluppatori di incorporare i controlli di observability direttamente nella pipeline CI/CD e di identificare i problemi prima che raggiungano la produzione. Utilizzando le caratteristiche automatiche di monitoraggio, registrazione e avviso durante le fasi di creazione e implementazione dello sviluppo di app, i team possono rilevare tempestivamente i problemi di prestazioni. Questi processi aiutano a ottimizzare l'affidabilità della distribuzione e ad accelerare il ciclo di feedback per rilasci di software più rapidi e di qualità superiore.

    Rilevamento di anomalie basato su machine learning

    Le aziende possono utilizzare algoritmi basati su AI per setacciare grandi quantità di dati di observability e trovare problemi di sistema emergenti che potrebbero sfuggire agli strumenti tradizionali. Ad esempio, in una rete di memoria a lungo termine (LSTM), la tecnologia di apprendimento automatico (ML) consente alla rete di modellare e apprendere meglio dai dati che arrivano in sequenze, come i dati di serie temporali e il linguaggio naturale.

    Gli LSTM possono essere addestrati sulla telemetria per identificare il normale comportamento del sistema e prevedere gli stati futuri del sistema. Se i dati effettivi si discostano notevolmente dalle previsioni, i team ricevono un avviso che li avvisa di una potenziale violazione di sicurezza, guasto della rete o degrado del sistema.

    Chaos engineering

    L'ingegneria del caos è un processo in cui gli sviluppatori causano intenzionalmente errori nell'ambiente di produzione o di preproduzione per scoprirne l'impatto sul sistema. La simulazione di interruzioni (come guasti alla rete, crash del server o picchi di traffico) consente agli ingegneri della observability di identificare le vulnerabilità del sistema. Inoltre, li aiuta a migliorare la loro posizione di difesa e le strategie di risposta agli incidenti e a garantire che il sistema possa resistere a un evento inaspettato.

    Vantaggi dell'ingegneria della observability

    • Migliore rilevamento delle anomalie e risoluzione dei problemi. L'ingegneria della observability aiuta i team a individuare rapidamente attività insolite, per una risoluzione dei problemi e un debug più rapidi e completi.
    • Processo decisionale basato sui dati. Gli insight attuabili forniti dagli strumenti di observability possono consentire ai team di prendere decisioni più intelligenti sull'architettura del sistema, sulla gestione delle risorse e sull'ottimizzazione delle prestazioni.
    • Esperienza utente migliorata. L'ingegneria della observability aiuta gli sviluppatori a identificare in modo proattivo le opportunità di aggiornamento e ottimizzazione delle caratteristiche in modo che gli utenti abbiano interazioni fluide con software e reti.
    • Miglioramento costante. Con l'ingegneria della observability, i team DevOps ottengono una comprensione olistica e approfondita di come il loro codice si comporta in produzione, il che accelera l'identificazione dei bug e facilita il miglioramento continuo.
    Soluzioni correlate
    Full Stack Observability automatizzata

    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.

    Maggiori informazioni su Full Stack Observability
    Consulenza AIOps

    Migliora l'automazione e le operazioni IT con l'AI generativa, allineando tutti gli aspetti della tua infrastruttura IT alle priorità aziendali.

    Maggiori informazioni sulla consulenza AIOps
    IBM SevOne Network Performance Management

    IBM SevOne Network Performance Management è un software di monitoraggio e analisi che fornisce visibilità e informazioni in tempo reale su reti complesse.

    Monitora le prestazioni della rete
    Fai il passo successivo

    Scopri come l'AI per le operazioni IT fornisce gli insight necessari per favorire eccezionali prestazioni di business.

    Esplora le soluzioni AIOps Prenota una demo live
    Note a piè di pagina:

    1 Kumar, S., & Singh, R. (2024). Don't blame the user: Toward means for usable and practical authentication. Communications of the ACM, 67(4), 78–85. https://doi.org/10.1145/3706599.3719914.

    2 Datadog. (n.d.). What Is LLM Observability & Monitoring?. Estratto il 19 maggio 2025, da https://www.datadoghq.com/knowledge center/llm-observability/.

    3 LLM-observability, GitHub. Estratto il 19 maggio 2025, da https://github.com/DataDog/llm-observability, Datadog. (n.d.).

    4 Dong, L., Lu, Q., & Zhu, L. (2024). AgentOps: Enabling Observability of LLM Agents. arXiv. https://arxiv.org/abs/2411.05285.

    5 LangChain. (n.d.). Datadog LLM Observability - LangChain, Langsmith .js. Estratto il 19 maggio 2025 da https://js.langchain.com/docs/integrations/callbacks/datadog_tracer/.

    6 Optimizing LLM Accuracy, Estratto il 19 maggio 2025, da https://platform.openai.com/docs/guides/optimizing-llm-accuracy.

    7 IBM Instana Observability. Estratto il 19 maggio 2025 da https://www.ibm.com/it-it/products/instana.

    8 Monitoraggio di agenti AI. Documentazione IBM. Estratto il 19 maggio 2025 da https://www.ibm.com/docs/en/instana-observability/1.0.290?topic=applications-monitoring-ai-agents.

    9 Zhou, Y., Yang, Y., & Zhu, Q. (2023). LLMGuard: Preventing Prompt Injection Attacks on LLMs via Runtime Detection. arXiv preprint arXiv:2307.15043. https://arxiv.org/abs/2307.15043.

    10 Vesely, K., & Lewis, M. (2024). Real-Time Monitoring and Diagnostics of Machine Learning Pipelines. Journal of Systems and Software, 185, 111136. https://doi.org/10.1016/j.jss.2023.111136