Esplorare i test shift-right
Come spiegato in precedenza nel corso, il test nella gestione del ciclo di vita delle applicazioni è essenziale per ottimizzare la qualità del codice e ridurre al minimo il rischio operativo associato alla distribuzione e all'aggiornamento del software. Questo è il motivo per applicare l'approccio shift-left, che introduce le attività di test il prima possibile nel corso della fase di sviluppo. Tuttavia, esistono alcuni aspetti del test, che non sono efficaci quando vengono eseguiti in questo modo. Al contrario, per soddisfare appieno lo scopo, devono essere eseguiti nell'ambiente di produzione. Tale approccio viene definito approccio shift-right. L'organizzazione nello scenario di esempio dovrà usarla per valutare correttamente l'affidabilità dei sistemi in combinazione con l'inserimento di errori. Esaminare questo e altri criteri in cui sono giustificati i test shift-right all’interno della presente unità.
Quali sono i motivi alla base dei test shift-right?
Anche se i test shift-left sono ideali per unit e smoke test, essi vengono eseguiti in condizioni che in genere differiscono in modo significativo da quelle applicabili agli obiettivi di destinazione previsti. Anche gli ambienti di controllo qualità e di staging raramente riflettono completamente la complessità dei loro equivalenti in produzione. In effetti, il modo migliore per esaminare completamente il comportamento di un carico di lavoro dopo la distribuzione consiste nel testarlo a quel punto.
Il test nell'ambiente di produzione offre i vantaggi seguenti:
- Riflette le condizioni di lavoro effettive, incluso il carico aggiuntivo associato alla gestione delle richieste degli utenti finali.
- Tiene conto dei fattori che sarebbero difficili da simulare, ad esempio la connettività ai sistemi esterni.
- Riflette le variazioni della domanda del carico di lavoro nel tempo.
Quali sono i tipici scenari di test shift-right?
Anche se l'approccio di test shift-right può essere giustificato in molti scenari, ne esistono alcuni in cui esso è particolarmente adatto. Questi scenari includono:
Distribuzioni di microservizi: l'architettura dei microservizi è in genere costituita da un numero elevato di componenti sviluppati in modo indipendente. Un numero maggiore di combinazioni di questi servizi potrebbe giustificare il test di spostamento a destra per concentrarsi sugli scenari più rilevanti nell'ambiente di produzione effettivo (in base all'utilizzo reale).
Valutazione dell'impatto della larghezza di banda di rete e delle condizioni di latenza: le condizioni di rete tendono a essere difficili da simulare, quindi se le prestazioni di un carico di lavoro sono altamente latenza o dipendente dalla larghezza di banda, il test di scorrimento a destra potrebbe essere l'opzione più adatta.
Test di accettazione utente: il feedback effettivo degli utenti potrebbe essere essenziale per convalidare le prestazioni e l'usabilità del carico di lavoro.
Procedure failover di convalida nelle configurazioni ridondanti: i test relativi a inserimento di errori e ripristino di emergenza sono destinati a valutare la resilienza dei carichi di lavoro in ambito produttivo. L'inserimento di errori comporta l'introduzione intenzionale di errori in singoli componenti di un carico di lavoro durante l'esecuzione per identificare eventuali punti deboli e attenuarli, aumentando l'affidabilità complessiva.
Nota
La progettazione di Chaos è un altro concetto nell'ambito dei test di affidabilità devOps. Come con l'inserimento di errori, comporta la simulazione di errori ( in questo caso, per creare un caos controllato nel sistema sottoposto a test). Tuttavia, l'ambito è in genere più ampio, destinato all'intero sistema, anziché solo ai singoli componenti e i relativi scenari di test tendono a essere più completi. In effetti, chaos engineering è in genere limitato agli ambienti canary che hanno un impatto di produzione molto limitato o nullo.
Nota
È possibile usare Azure Chaos Studio per implementare esperimenti di progettazione chaos destinati a soluzioni ospitate in Microsoft Azure. Verrà illustrato un esempio di tali esperimenti nel lab di questo modulo.