Introduzione al test in ambiente di produzione per le app Web

Il test in ambiente di produzione, ovvero il test in diretta dell'app Web con il traffico dei clienti live, è una strategia di test che gli sviluppatori di app integrano sempre più spesso nella metodologia di sviluppo Agile . Consente di testare la qualità delle app con il traffico utente live nell'ambiente di produzione, invece dei dati sintetizzati in un ambiente di test. Esponendo la nuova app agli utenti reali, è possibile venire a conoscenza dei veri problemi che potrebbero verificarsi nell'app una volta distribuita. È possibile verificare la funzionalità, le prestazioni e il valore degli aggiornamenti app rispetto al volume, alla velocità e alla varietà del traffico utente reale, che non è mai possibile prevedere in un ambiente di test.

Routing del traffico in app Web del servizio app

Con la funzionalità Routing del traffico nel Servizio app di Azure è possibile indirizzare una parte del traffico utente live a uno o più slot di distribuzione e quindi analizzare l'app con Azure Application Insights, Azure HDInsight o uno strumento di terze parti, ad esempio New Relic, per convalidare la modifica. Con il servizio app, ad esempio, è possibile implementare gli scenari seguenti:

  • Individuare i bug funzionali o trovare i colli di bottiglia delle prestazioni negli aggiornamenti prima della distribuzione a livello di sito
  • Effettuare "voli di prova controllati" delle modifiche misurando la metrica di usabilità nell'app beta
  • Passare gradualmente a un nuovo aggiornamento e, in caso di errore, tornare semplicemente alla versione corrente
  • Ottimizzare i risultati aziendali dell'app eseguendo test A/B o test multivariati in più slot di distribuzione

Requisiti per l'uso di Routing del traffico nelle app Web

  • L'app Web deve essere eseguita nel piano Standard o Premium, come richiesto per slot di distribuzione multipli.
  • Per il corretto funzionamento di Routing del traffico, i cookie devono essere abilitati nel browser degli utenti. Routing del traffico usa i cookie per aggiungere un browser client a uno slot di distribuzione per tutta la durata della sessione client.
  • Routing del traffico supporta scenari di test in ambiente di produzione avanzati grazie ai cmdlet di Azure PowerShell.

Instradare un segmento di traffico a uno slot di distribuzione

A livello di base in ogni scenario di test in ambiente di produzione, si instrada una percentuale predefinita di traffico live a uno slot di distribuzione non di produzione. A questo scopo, eseguire la procedura seguente.

Nota

Questi passaggi presuppongono che sia già disponibile uno slot di distribuzione non di produzione in cui sia già stato distribuito il contenuto dell'app Web.

  1. Accedere al portale di Azure.
  2. Nel pannello dell'app Web fare clic su Impostazioni > Routing del traffico.
  3. Selezionare lo slot a cui instradare il traffico e la percentuale del traffico totale desiderata, quindi fare clic su Salva.

  4. Passare al pannello dello slot di distribuzione. Dovrebbe essere visualizzato il traffico live che viene instradato allo slot.

Una volta configurato Routing del traffico, la percentuale specificata di client verrà instradata casualmente allo slot non di produzione. È importante, tuttavia, notare che un client, una volta automaticamente instradato a uno slot specifico, verrà aggiunto a tale slot per tutta la durata della sessione client. Per aggiungere la sessione utente, viene usato un cookie. Se si osservano le richieste HTTP, si noterà un cookie TipMix in ogni richiesta successiva.

Forzare le richieste client in uno slot specifico

Oltre al routing automatico del traffico, il servizio app può instradare le richieste a uno slot specifico. Ciò risulta utile se si vuole consentire agli utenti di acconsentire esplicitamente o rifiutare esplicitamente l'app beta. A questo scopo, si usa il parametro di query x-ms-routing-name .

Per reinstradare gli utenti a uno slot specifico usando x-ms-routing-name, è necessario verificare che lo slot sia già stato aggiunto all'elenco di Routing del traffico. Poiché si vuole eseguire il routing esplicito a uno slot, la percentuale di routing effettiva non è importante. Se necessario, è possibile creare un "collegamento beta" su cui gli utenti possono fare clic per accedere all'app beta.

Consentire agli utenti di rifiutare esplicitamente l'app beta

Per permettere agli utenti di rifiutare esplicitamente l'app beta, ad esempio, è possibile inserire questo collegamento nella pagina Web:

<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>

La stringa x-ms-routing-name=self specifica lo slot di produzione. Una volta che il browser client accede al collegamento, non solo viene reindirizzato allo slot di produzione, ma ogni richiesta successiva conterrà il cookie x-ms-routing-name=self che aggiunge la sessione allo slot di produzione.

Consentire agli utenti di acconsentire esplicitamente all'app beta

Per permettere agli utenti di acconsentire esplicitamente all'app beta, impostare lo stesso parametro di query sul nome dello slot non di produzione, ad esempio:

    <webappname>.azurewebsites.net/?x-ms-routing-name=staging

Altre risorse