Home

topics

Tracciamento distribuito

Cos'è il tracciamento distribuito?
Esplora la soluzione di tracciamento distribuito di IBM Iscriviti per ricevere gli aggiornamenti sull'AI
Tracciamento distribuito che traccia e osserva le richieste attraverso un sistema distribuito
Cos'è il tracciamento distribuito?

Il tracciamento distribuito è una tecnica utilizzata per tracciare e osservare le richieste delle applicazioni mentre si spostano attraverso sistemi distribuiti o ambienti di microservizi.

Il tracciamento distribuito tiene traccia di queste richieste applicative raccogliendo e aggregando i dati sulle interazioni di un utente durante tutto il processo di transazione. Questa tecnica offre insight sullo stato di salute dell'applicazione e sull'esperienza utente complessiva. Gli sviluppatori possono quindi utilizzare questa raccolta di tracce per risolvere le aree in cui sono presenti bug, errori o latenza elevata.

Intelligenza artificiale più smart per le operazioni IT (AIOps)

Scopri come sia APM, che ARM possono consentire applicazioni per decisioni e risorse più rapide.

Contenuti correlati Registrati per ricevere l'ebook sui miti dell'osservabilità
Come funziona il tracciamento distribuito?

Ora che ha un'idea di cosa sia il tracciamento distribuito, approfondiamo come funziona. A differenza di un'applicazione monolitica, gli ambienti di microservizi vengono eseguiti su back-end distribuiti, cosa che più difficile tenere traccia di un percorso di richiesta completo. Fortunatamente, il tracciamento distribuito può seguire le azioni dell'utente in ogni fase del percorso e monitorare l'impatto dell'applicazione dal front-end al back-end. 

Il tracciamento distribuito inizia con la strumentazione della sua architettura di microservizi. Può utilizzare strumenti open source come OpenTelemetry per iniziare il processo di raccolta della strumentazione e della telemetria. 

Successivamente, gli sviluppatori devono implementare il codice nei servizi per tracciare i dati e assegnare identificatori univoci a ciascuna transazione. Il contesto di traccia codificato passa da un server all'altro nell'intero ambiente dell'applicazione. Gli identificatori associati al percorso della transazione offrono visibilità sull'esperienza del cliente. 

Gli strumenti di tracciamento distribuito tracciano ogni attività o segmento dopo essere stato attivati da un evento mentre attraversa un server. Man mano che viene raccolto un intervallo, viene spostato a quello successivo e così via. Questi intervalli solitamente iniziano con un intervallo principale e passano agli intervalli secondari. 

Il tuo strumento metterà in ordine queste azioni e raccoglierà metriche pertinenti come attributi personalizzati, timestamp e metadati. Di solito, uno strumento di tracciamento distribuito aiuterà a visualizzare questi dati in un grafico a fiamme o in un formato di visualizzazione a cascata. Questi grafici aiutano gli ingegneri a interpretare quali parti di un sistema distribuito presentano colli di bottiglia, rallentamenti o problemi di prestazioni. 

Infine, occorrerà combinare lo strumento di tracciamento distribuito con una piattaforma di osservabilità per ottenere un monitoraggio end-to-end dell'applicazione. L'inclusione di una piattaforma come Instana aiuterà a estrarre ed elaborare i dati in modo da poter fare i passi successivi giusti per risolvere qualsiasi errore dell'applicazione. 

Vantaggi e sfide del tracciamento distribuito

La complessità dell'architettura moderna ha reso difficile per le applicazioni legacy monolitiche essere al servizio degli strumenti che le ospitano. Tenendo presente questa sfida, il tracciamento distribuito è diventato essenziale per ottenere l'osservabilità negli ambienti cloud-native.

Ecco alcuni dei principali vantaggi del tracciamento distribuito:

  • Risolvere i problemi più velocemente: riduci drasticamente il tempo medio di risoluzione (MTTR) e il tempo medio di scoperta (MTTD). Gli ingegneri possono esaminare le tracce distribuite per individuare la causa principale e la posizione degli errori dell'applicazione.

  • Promuovere la collaborazione in team: in un tipico ambiente di microservizi, team specializzati gestiscono e sviluppano tecnologie diverse. Questa situazione può creare confusione tra i team se questi non sanno dove si è verificato l'errore e a chi spetta risolverlo. Un collegamento di traccia può aiutare i team di progettazione a visualizzare i dati in modo che possano avvisare lo sviluppatore giusto per risolvere il problema. 

  • Integrazione e implementazione flessibili: gli sviluppatori possono implementare il tracciamento distribuito in quasi tutti gli ambienti cloud-native. Gli strumenti sono compatibili con un'ampia gamma di linguaggi di programmazione e applicazioni. 

Ognuno di questi vantaggi porta a miglioramenti nelle prestazioni dell'applicazione fornendo informazioni dettagliate sul modo in cui una singola richiesta viene gestita dal server. Sebbene ci siano molti vantaggi nel tracciamento distribuito, ci sono anche alcune sfide di cui occorre essere consapevoli. 

  • Strumentazione manuale: alcune piattaforme di tracciamento distribuite richiedono agli sviluppatori di modificare il codice per iniziare a tracciare le richieste degli utenti. Il processo di strumentazione manuale richiede molte ore di lavoro, rende l'applicazione più vulnerabile ai bug e può portare alla mancanza di tracce.

  • Mancanza di analisi front-end: quando si acquista uno strumento di tracciamento distribuito è importante assicurarsi di avere una copertura end-to-end. Senza questa capacità, si avrà solo un insight del back-end senza l'esperienza front-end dell'utente finale. Questa limitazione può rendere molto più difficile il debug dell'applicazione. 

  • Campionamento: alcuni strumenti di tracciamento distribuito utilizzano il campionamento arbitrario, che sceglie in modo casuale le tracce da campionare e analizzare. Poiché le tracce vengono scelte a caso e non c'è modo di sapere quali tracce avranno problemi, ciò può far sì che i team si lascino sfuggire gravi errori presenti. 

Sebbene possano presentarsi alcune difficoltà quando si utilizza un sistema distribuito, i vantaggi superano quasi sempre gli svantaggi. Combina il tuo strumento di tracciamento distribuito con Instana per risolvere questi problemi in tempo reale. 

Tracciamento distribuito e logging a confronto

Per capire la differenza tra tracciamento distribuito e logging, dobbiamo prima capire cos'è un log. Un log è un timestamp di un evento che si verifica all'interno di un sistema applicativo. Il logging consiste nel monitorare questi eventi importanti identificati dai log per evidenziare comportamenti imprevedibili all'interno dell'applicazione. Se si verifica un errore, viene attivata una risposta automatica e viene avvisato il team DevOps. 

Uno dei principali svantaggi del logging da solo è che non può fornire una panoramica completa delle prestazioni delle applicazioni senza tracce. 

Il tracciamento distribuito utilizza gli ID delle tracce per seguire le transazioni attraverso il sistema con il contesto. Questo contesto consente di trovare la posizione esatta in cui si è verificato un errore nel sistema. Questa visibilità nel sistema basato su microservizi riduce il tempo di risposta al rilevamento in tutto il panorama delle transazioni. Per questo motivo, molti team utilizzano il tracciamento distribuito e il logging in tandem per ottenere un quadro completo dello stato di salute delle loro applicazioni moderne.

Strumenti di tracciamento distribuito

Gli strumenti di tracciamento distribuito di solito supportano la strumentazione, la raccolta dati e la visualizzazione dati in grafici a fiamme. Il modo più comune per configurare soluzioni di tracciamento distribuite è con strumenti open source. 

Queste sono alcune delle opzioni open source più popolari disponibili sul mercato:

  • OpenTelemetry: OpenTelemetry offre una raccolta di kit di sviluppo software (SDK), software per la raccolta dati, API indipendenti dal fornitore e strumenti per la strumentazione. È una combinazione di OpenCensus e OpenTracing. Questo popolare framework di monitoraggio delle prestazioni per ambienti cloud è uno degli strumenti di tracciamento distribuito più comuni. OTel non include strumenti per l'analisi o la visualizzazione dei dati, ma è possibile inviare dati di telemetria ad applicazioni di terze parti per eseguire questa ricerca.

  • OpenCensus: OpenCensus è stato creato da Google sulla base del suo sistema di tracciamento interno. Alla fine è stato reso open source ed è diventato disponibile in librerie multilingue. Può raccogliere e trasferire dati su piattaforme backend per facilitare il debug ma, sfortunatamente, non dispone di un'API per incorporare il software nel codice. Questa limitazione è uno dei motivi principali per cui OpenCensus e OpenTracing sono stati combinati dalla Cloud Native Computing Foundation (CNCF) per creare OpenTelemetry. 

  • OpenTracing: OpenTracing è un'API indipendente dai fornitori che assiste gli sviluppatori nella strumentazione del codice per il tracciamento distribuito. Questo progetto open-source è disponibile in nove linguaggi diversi, tra cui Java, Python e Ruby. 

  • Zipkin: Zipkin è un altro progetto open source creato da Twitter. Questo sistema di tracciamento distribuito aiuta i professionisti DevOps a raccogliere dati importanti sulle applicazioni e a risolvere i problemi di latenza in diverse architetture di servizio. È possibile segnalare i dati a Zipkin tramite Apache, Kafka o HTTP.

  • Jaeger: Jaeger, il progetto open source più recente di questo elenco, è stato creato da Uber e si integra facilmente con OpenTracing. Questo strumento è altamente elastico, il che lo rende un'ottima opzione per il tracciamento delle richieste in un ambiente di microservizi. Sia Zipkin che Jaeger aiutano nella visualizzazione delle statistiche, ma hanno dei limiti quando si tratta di campionare i dati.

Sebbene OpenCensus e OpenTracing fossero popolari in passato, noi consigliamo di utilizzare OpenTelemetry, Zipkin o Jaeger. Utilizza questi strumenti in combinazione con un APM o uno strumento di osservabilità come Instana per comprendere con la massima chiarezza ciò che sta accadendo all'interno della tua applicazione. 

Traccia ogni richiesta su ogni server con Instana

Per comprendere l'interazione tra i messaggi trasmessi tra la tua applicazione e i tuoi componenti, deve tracciarli. Con Instana AutoTrace, non ti lascerai mai sfuggire nessun contesto o chiamata grazie alle nostre capacità di acquisire ogni richiesta e di correlare le tracce dalle API open source. Instana semplifica le cose grazie al suo grafico dinamico.

Ottimizziamo ogni traccia tra la sua applicazione, il servizio e l'architettura del sistema per offrirle una copertura completa del sistema. Per provare Instana con il tracciamento distributivo, registrati alla nostra prova gratuita di due settimane per accedere alle nostre funzioni.

Prodotti di tracciamento distribuito
IBM Instana

Migliora la funzionalità e l'osservabilità nel tuo APM aziendale; migliora l'application performance management e accelera le pipeline CI/CD indipendentemente da dove risiedono le applicazioni.

Esplora IBM Instana

Risorse del tracciamento distribuito Cos'è l'osservabilità?

Esplora come l'osservabilità fornisce visibilità approfondita sulle moderne applicazioni distribuite per consentire un'identificazione e una risoluzione dei problemi più rapida e automatizzata.

Cos'è OpenTelemetry?

Scopri come gli sviluppatori e gli SRE possono utilizzare OpenTelemetry per raggiungere gli obiettivi aziendali attraverso il suo processo standardizzato di raccolta dei dati di telemetria e consentendo una migliore comprensione dei comportamenti del sistema.

Che cos'è l'Application Performance Management (APM)?

Prevedi e previeni i problemi di prestazioni prima che influiscano sulla tua attività con l'application performance management.

Cos'è il cloud distribuito?

Scopri come il cloud distribuito consente un'implementazione geograficamente distribuita e gestita centralmente dei servizi cloud pubblici.

Cos'è il software open source?

Scopri in che modo il software open source viene sviluppato attraverso la collaborazione aperta e in che modo il suo codice sorgente è disponibile per chiunque voglia utilizzarlo, esaminarlo, modificarlo e ridistribuirlo.

Cos'è l'ingegneria dell'affidabilità del sito (SRE)?

Automatizza le attività delle operazioni IT, accelera la distribuzione del software e riduci al minimo i rischi IT con l'ingegneria dell'affidabilità del sito.

Fai il passo successivo

IBM Instana consente osservabilità in tempo reale che tutti, e chiunque, possono utilizzare. Offre un rapido time to value, verificando al contempo che la strategia di osservabilità possa tenere il passo con la complessità dinamica degli ambienti di oggi e di domani. Dal mobile al mainframe, Instana supporta oltre 250 tecnologie ed è in continua crescita. 

Esplora IBM Instana Prenota una demo live