Evolvere le operazioni con osservabilità

Completato
Ottenere visibilità sul sistema, derivare informazioni dettagliate e prendere decisioni basate sui dati.

Creare una cultura che migliora continuamente la qualità monitorando il carico di lavoro e prendendo in considerazione tutti i pilastri di Azure Well-Architected Framework. Consentire al team e agli stakeholder di prendere decisioni a breve termine e a lungo termine in molti facet fornendo i dati, le statistiche e le tendenze necessari. Apprendere i dati e migliorare le prestazioni.

Le operazioni create ai fini dell'osservabilità sono fondamentali per la manutenzione proattiva dell'applicazione, della qualità e della sicurezza, della pianificazione della capacità e della gestione dei prodotti.

Un aspetto cruciale del monitoraggio delle applicazioni consiste nell'usare la modellazione dell'integrità per prevedere i problemi prima che diventino eventi imprevisti e influiscano sull'esperienza dei clienti. Il monitoraggio efficiente riduce i cicli reattivi spesi per la gestione degli eventi imprevisti.

Scenario di esempio

Contoso ha sviluppato un'app per l'uso interno denominata Contoso Real Estate. Questa app Web consente a nuovi assunti o dipendenti esistenti che si trasferiscono per cercare e riservare alloggi a breve termine per aiutare con la loro ricollocazione. Il reparto risorse umane di Contoso usa anche l'app per facilitare la rilocazione.

L'app è in produzione e viene distribuita interamente in Azure. Si basa su microservizi con App Azure Container e usa anche Funzioni di Azure, Database di Azure per PostrgreSQL, Archiviazione BLOB di Azure e Monitoraggio di Azure.

Osservare il carico di lavoro tramite i dati di telemetria

Generare dati di telemetria dal codice dell'applicazione che correla i punti chiave del flusso di esecuzione e offre una visualizzazione end-to-end a diversi livelli di granularità.

Classificare in ordine di priorità le azioni in base al livello di gravità e comprendere il contesto in base al livello di dettaglio. Queste informazioni sono fondamentali per la risoluzione dei problemi.

Sfida di Contoso

  • Gli utenti segnalano che, dopo un aggiornamento recente all'applicazione Contoso Real Estate, vengono occasionalmente visualizzati una pagina vuota o un messaggio di errore generico nella pagina di ricerca dell'app Web. Gli errori sembrano casuali e la funzionalità di ricerca funziona in genere se gli utenti aggiornano semplicemente la pagina o inviano di nuovo la ricerca.
  • Esaminando i log nel microservizio di ricerca, il team rileva un aumento degli errori a causa di timeout che si connettono al Database di Azure per PostgreSQL, ma attualmente non è possibile stabilire se nei log del microservizio di ricerca viene visualizzato un errore corrispondente alle pagine di errore visualizzate o meno dagli utenti.

Applicazione dell'approccio e dei risultati

  • Il team di sviluppo ha deciso di espandere le informazioni che registrano sia dall'app Web che dai microservizi principali per approfondire il problema. Per lo scenario di ricerca, è necessario assicurarsi di acquisire i termini di ricerca insieme ad altri attributi delle transazioni disponibili, ad esempio l'ora, l'ip client e il nome utente associato alla ricerca. Questi dati aggiuntivi devono fornire informazioni sufficienti per poter correlare le transazioni tra livelli.
  • Questa modifica ha consentito al team di confermare che i timeout delle query del database, che non sono stati gestiti correttamente nell'aggiornamento più recente dell'app, erano la causa radice degli errori riscontrati dagli utenti. Dopo aver trovato la causa radice, è stato semplice per il team implementare una correzione.
  • Il team sta ora progettando un nuovo approccio, usando OpenTelemetry, per implementare una soluzione di traccia distribuita più completa che copre tutti i livelli di soluzione.

Visualizzare i dati di monitoraggio nei dashboard

Aggregare e visualizzare i dati nei dashboard per presentare i dati di monitoraggio adatti ai destinatari e tenere presente il contesto aziendale. Usare i dashboard situazione per esplorare i dati per favorire la consapevolezza tra gli stakeholder. Usare dashboard operativi e cartelle di lavoro con funzionalità di drill-down per le attività degli operatori come la risposta agli eventi imprevisti. Aggiornare frequentemente i dashboard e fornire dati granulari.

Con le visualizzazioni è possibile analizzare le tendenze, tenere traccia degli obiettivi aziendali e gestire gli eventi imprevisti.

I dashboard personalizzati per l'interesse del cliente rendono pertinente l'interpretazione e accelerano il tempo per il rilevamento e l'azione.

Sfida di Contoso

  • Il team del carico di lavoro aggrega i dati di telemetria da tutti i livelli di soluzione in un'unica area di lavoro Log Analytics, accessibile dai team operativi e di sviluppo e da altri stakeholder del progetto. Tuttavia, l'interazione con i dati è difficile e complessa, che è frustrante per i membri del team che devono distinguere il rumore di fondo dai dati interattivi.

Applicazione dell'approccio e dei risultati

  • Il team si impegna a aggregare e visualizzare i dati usando i dashboard. Ogni dashboard verrà personalizzato per un gruppo di destinatari specifico:
    • I dashboard degli stakeholder della soluzione saranno più orientati all'azienda, presentando una panoramica di livello superiore dell'integrità complessiva della soluzione, insieme a indicatori aziendali come il numero di utenti serviti, ricerche e prenotazioni eseguiti.
    • I dashboard operativi e le cartelle di lavoro avranno dati più dettagliati e granulari per il team operativo. Questi dashboard avranno funzionalità di drill-down che consentono agli utenti di esplorare i dati a diversi livelli di granularità. Gli utenti potranno usare questi dashboard e cartelle di lavoro per eseguire la risoluzione dei problemi e altre attività di risposta agli eventi imprevisti.
  • I dashboard consentiranno agli utenti di analizzare le tendenze, tenere traccia degli obiettivi aziendali e gestire gli eventi imprevisti in modo più efficace. I dati presentati in ogni dashboard saranno più rilevanti per il pubblico previsto e saranno guidati dai loro interessi e esigenze.

Progettare una strategia di avviso affidabile

Rendere gli avvisi interattivi notificando i ruoli responsabili con descrizioni standardizzate e livelli di gravità. Fornire informazioni che vengono confrontate da varie origini e tenere traccia delle deviazioni dagli obiettivi aziendali.

Attivare avvisi solo per gli eventi imprevisti che richiedono un'azione e cercare avvisi proattivi e provocatori che avviano azioni prima che uno stato danneggiato diventi un errore. Un buon sistema di avviso identifica azioni e gravità e fornisce solo dati sufficienti per ottenere chiarezza e scopo. Gli operatori possono iniziare in caso di correzione senza ritardi.

Sfida di Contoso

  • Monitoraggio di Azure viene usato per inviare avvisi al team operativo quando si verifica un errore. Tuttavia, il team attualmente riceve troppi avvisi irrilevanti, poco chiari o ridondanti. Ciò causa l'affaticamento degli avvisi e influisce sulla produttività del team e causa la mancata attenzione di alcuni avvisi importanti.
  • Esistono anche alcune situazioni di interruzioni che potrebbero essere state impedite o ridotte al minimo se è stato inviato un avviso che prevede un errore. Se il team aveva un migliore avviso per la riduzione delle prestazioni prima che si verifichino interruzioni, queste situazioni potrebbero essere state evitate. Ad esempio, ci sono state occasioni in cui i rallentamenti nel tempo di elaborazione delle query di database hanno causato interruzioni. Durante la risoluzione dei problemi relativi alle interruzioni, il team nota che le prestazioni di elaborazione delle query diminuiscono lentamente nel tempo, peggiorando e peggiorando fino a quando non si verifica un'interruzione completa.

Applicazione dell'approccio e dei risultati

  • Il team operativo avvia un'iniziativa per pulire tutti gli avvisi con priorità bassa che causano l'affaticamento degli avvisi. Solo gli avvisi critici e interattivi possono rimanere attivi. Inoltre, il team esamina (e migliora in base alle esigenze) gli avvisi che rimarranno attivi per assicurarsi che contengano un contesto sufficiente per consentire loro di intraprendere l'azione correttiva necessaria.
  • Possono anche definire nuovi avvisi proattivi e interattivi che consentiranno loro di intervenire prima che si verifichi un errore. Ad esempio, generano un nuovo avviso per notificare agli amministratori del database non appena viene visualizzato un rallentamento coerente delle prestazioni delle query del database.
  • Come passaggio successivo, il team sta esaminando l'automazione delle risposte agli avvisi comuni, ad esempio la situazione con le prestazioni delle query del database.

Verificare le conoscenze

1.

In che modo Contoso è riuscito a identificare la causa radice del problema con pagine vuote ed errori generici riscontrati da alcuni utenti?

2.

Quale dei seguenti è un buon modo per progettare i dashboard di monitoraggio?

3.

Vero o falso: gli avvisi devono essere principalmente informativi.