Progettare per le operazioni

Completato
Spostarsi a sinistra nelle operazioni per prevedere le condizioni di errore.

Gli errori di test in anticipo e spesso nel ciclo di vita di sviluppo e determinano l'impatto delle prestazioni sull'affidabilità. Per motivi di analisi e postmortems della causa radice, è necessario avere visibilità condivisa, tra team, stato delle dipendenze e errori in corso. Le informazioni dettagliate, la diagnostica e gli avvisi dei sistemi osservabili sono fondamentali per una gestione efficace degli eventi imprevisti e un miglioramento continuo.

Contoso University esegue un'app Web basata su microservizi che forniscono servizi di formazione, come le classi online, per docenti e studenti di Contoso. Il carico di lavoro è basato su app Azure Service, database SQL di Azure, Microsoft Entra ID, Azure Key Vault, bus di servizio di Azure, Monitoraggio di Azure e Azure DevOps.

Implementare un monitoraggio affidabile

Creare sistemi osservabili in grado di correlare i dati di telemetria.

Il monitoraggio e la diagnostica sono operazioni cruciali. Se si verifica un errore, è necessario sapere che non è riuscito, quando non è riuscito e perché non è riuscito. L'osservabilità a livello di componente è fondamentale, ma l'osservabilità aggregata dei componenti e dei flussi correlati offre una visualizzazione olistica dello stato di integrità. Questi dati sono necessari per consentire ai tecnici dell'affidabilità del sito di assegnare priorità ai propri sforzi per la correzione.

Sfida di Contoso

  • L'applicazione del carico di lavoro viene distribuita come parte di una suite di cinque servizi disaccoppiati in più livelli funzionali.
  • Il team vuole essere in grado di analizzare le transazioni e le richieste degli utenti durante l'attraversamento dei vari livelli della soluzione per identificare i colli di bottiglia che possono causare instabilità ed eseguire una risoluzione più efficiente quando si verificano problemi.

Applicazione dell'approccio e dei risultati

  • Il team del carico di lavoro instrumenta i componenti per acquisire log e metriche con Application Insights e configura la registrazione per tutti i servizi della piattaforma. Tutti i log vengono inoltrati all'area di lavoro di Monitoraggio di Azure del carico di lavoro.
  • I dati nell'area di lavoro AzM possono essere usati per analizzare l'integrità dei singoli componenti della soluzione e i flussi aggregati e l'integrità della soluzione.
  • La correlazione delle voci appartenenti alla stessa richiesta tra componenti e livelli aiuta il team a determinare l'integrità del carico di lavoro e facilita i processi di risoluzione dei problemi.

Prevedere potenziali malfunzionamenti e comportamenti anomali

Rendere visibili gli errori di affidabilità attivi usando avvisi con priorità e interattivi. Investire in processi e infrastrutture affidabili che portano a una valutazione più rapida.

I tecnici dell'affidabilità del sito possono ricevere immediatamente una notifica in modo che possano attenuare gli eventi imprevisti in corso del sito live e attenuare in modo proattivo i potenziali errori identificati dagli avvisi predittivi prima che diventino eventi imprevisti live.

Sfida di Contoso

  • Il team prevede un aumento significativo del traffico all'inizio di ogni periodo, dato che gli studenti si registrano per le lezioni, accedono a syllabi e acquistano libri di testo.
  • Durante questo periodo critico dell'anno accademico, il team deve garantire che sia disponibile una capacità sufficiente per l'aumento del carico previsto. Il team deve anche essere in grado di reagire rapidamente ad altri potenziali problemi di disponibilità che possono verificarsi.

Applicazione dell'approccio e dei risultati

  • Il team configura i livelli Web e database per aumentare automaticamente le prestazioni in modo da avere capacità aggiuntiva prima dell'aumento previsto della domanda e continuare ad allocare la capacità man mano che aumenta il carico.
  • Il piano di risposta alle emergenze viene modificato in modo da determinare che gli avvisi correlati ai flussi sotto stress durante questo periodo vengono classificati in ordine di priorità dal team di risposta agli eventi imprevisti.

Testare i rischi di affidabilità

Simulare gli errori ed eseguire test in ambienti di produzione e pre-produzione.

È utile riscontrare errori nell'ambiente di produzione in modo da poter impostare aspettative realistiche per il ripristino. In questo modo è possibile effettuare scelte di progettazione che rispondono correttamente agli errori. Consente inoltre di testare le soglie impostate per le metriche aziendali.

Sfida di Contoso

  • La comunicazione tra il livello Web e il servizio REST di registrazione degli studenti in questo carico di lavoro si basa sui certificati client.
  • Poiché la funzionalità di registrazione degli studenti non viene usata molto dopo l'inizio del termine, se il certificato usato dal servizio di registrazione degli studenti scade, il problema potrebbe non essere rilevato per qualche tempo.
  • Inoltre, durante l'ultimo periodo di registrazione si sono verificati diversi interruzioni del servizio a causa di errori di connettività temporanei gestiti in modo errato dal sistema. Il team ha apportato alcuni miglioramenti al codice per gestire gli errori temporanei, ma è incerto del comportamento delle funzionalità in scenari di produzione reali.

Applicazione dell'approccio e dei risultati

  • Il team sviluppa test delle transazioni sintetiche che verranno eseguiti nell'ambiente di produzione in base a una pianificazione mensile per simulare diversi flussi, incluso il flusso di registrazione.
  • L'invio di avvisi è configurato per i test delle transazioni sintetiche, in modo che il team riceverà una notifica in caso di errori, coprendo il rischio di scadenza dei certificati.
  • Inoltre, il team ha investito nella creazione di test chaos nel sdlC, eseguendo test di routine del caos e acquisendo i risultati per convalidare le tecniche di auto-conservazione e per individuare i problemi di affidabilità precedentemente sconosciuti.

Verificare le conoscenze

1.

Vero o falso: un esempio di rendere osservabile un carico di lavoro consiste nello instrumentare l'applicazione per generare dati di telemetria.

2.

Che cos'è un attributo di una strategia di avviso ben progettata?

3.

Qual è un modo in cui Contoso può dimostrare che il carico di lavoro può funzionare in uno stato degradato?