Creare slot di distribuzione

Completato

Le organizzazioni spesso devono eseguire le app Web in ambienti isolati per testarle prima della distribuzione. Hanno anche la necessità di eseguire la distribuzione rapidamente e senza alcun impatto sugli utenti.

Supponiamo di dover decidere se usare gli slot per semplificare la distribuzione di un'app Web nel sistema di social media aziendale. L'obiettivo è capire se gli slot di distribuzione consentiranno di ridurre il tempo di inattività durante le distribuzioni, se semplificheranno i rollback e se è possibile configurarli in Azure.

In questa unità si apprenderà come gli slot di distribuzione semplificano il test e l'implementazione di nuovo codice.

Usare uno slot di distribuzione

All'interno di una singola app Web del servizio app di Azure, è possibile creare più slot di distribuzione. Ogni slot è un'istanza separata dell'app Web, con un nome host distinto. È possibile distribuire una versione diversa dell'app Web in ogni slot.

Uno slot è lo slot di produzione. Si tratta dell'app Web che gli utenti vedono quando si connettono. Assicurarsi che l'app distribuita in questo slot sia stabile e testata correttamente.

Usare slot aggiuntivi per ospitare nuove versioni dell'app Web. Su queste istanze è possibile eseguire test di integrazione, di accettazione, di capacità e di altro tipo. Correggere eventuali problemi prima di spostare il codice nello slot di produzione. Gli slot aggiuntivi si comportano come istanze del servizio app, garantendo che i test eseguiti mostrino il modo in cui l'app verrà eseguita nell'ambiente di produzione.

Quando si è soddisfatti dei risultati del test per una nuova versione dell'app, distribuirla scambiandone lo slot con lo slot di produzione. A differenza di una distribuzione di codice, uno scambio di slot è immediato. Durante lo scambio di slot, vengono scambiati i nomi host degli slot, inviando immediatamente il traffico di produzione alla nuova versione dell'app. Quando si usano gli scambi di slot per la distribuzione, l'app non viene mai esposta al Web pubblico in uno stato parzialmente distribuito.

Se malgrado i test accurati si rilevano problemi con la nuova versione, è possibile eseguirne il rollback scambiando di nuovo gli slot.

Comprendere gli slot come risorse di Azure distinte

Quando si usa più di uno slot di distribuzione per un'app Web, questi slot vengono considerati istanze separate dell'app Web in questione. Ad esempio, sono elencati separatamente nella pagina Tutte le risorse del portale di Azure e ognuno ha il proprio URL. Tuttavia, ogni slot condivide le risorse del piano di servizio app, tra cui CPU e memoria della macchina virtuale, oltre allo spazio su disco.

Creare slot di distribuzione e livelli di servizio

Gli slot di distribuzione sono disponibili solo quando l'app Web usa un piano di servizio app nel livello di servizio Standard, Premium o Isolato. Nella tabella seguente è indicato il numero massimo di slot che è possibile creare:

Livello Numero massimo di slot di staging
Libero 0
Condiviso 0
Di base 0
Standard 5
Premium 20
Isolato 20

Evitare un avvio a freddo durante gli scambi

Molte delle tecnologie usate dagli sviluppatori per creare app Web richiedono la compilazione finale e altre azioni nel server prima che una pagina possa essere recapitata a un utente. Molte di queste attività vengono completate quando l'app viene avviata e riceve una richiesta. Ad esempio, se si usa ASP.NET per compilare l'app, il codice viene compilato e le visualizzazioni vengono completate quando il primo utente richiede una pagina. Le richieste successive di quella pagina riceveranno una risposta più veloce perché il codice è già stato compilato.

Il ritardo iniziale è detto avvio a freddo e può essere evitato tramite scambi di slot per procedere alla distribuzione nell'ambiente di produzione. Quando si scambia uno slot in ambiente di produzione, si "riscalda" l'app in quando l'azione invia una richiesta alla radice del sito. La richiesta di "riscaldamento" assicura che tutte le attività di compilazione e memorizzazione nella cache siano completate. Al termine dello scambio, il sito risponde con la stessa velocità che avrebbe se fosse distribuito già da giorni.

Creare uno slot di distribuzione

Prima di creare uno slot, assicurarsi che l'app Web sia in esecuzione nel livello di servizio Standard, Premium o Isolato:

  1. Aprire l'app Web nel portale di Azure.

  2. Selezionare il riquadro Slot di distribuzione.

  3. Selezionare Aggiungi slot.

  4. Assegnare un nome allo slot.

  5. Scegliere se clonare le impostazioni di un altro slot. Se si sceglie di procedere alla clonazione, le impostazioni vengono copiate nel nuovo slot da quello specificato.

    Screenshot of naming a new deployment slot and choosing whether to clone settings in the Azure portal.

Nota

Mentre le impostazioni possono essere clonate in un nuovo slot, la stessa cosa non può essere fatta con il contenuto. I nuovi slot sono sempre privi di contenuto. È necessario distribuire il contenuto tramite Git o un'altra strategia di distribuzione. L'operazione di clonazione copia la configurazione nel nuovo slot. Una volta clonate le impostazioni, la configurazione dei due slot può essere modificata in modo indipendente.

Selezionare Aggiungi per creare il nuovo slot. Il nuovo slot è ora presente nell'elenco della pagina Slot di distribuzione. Selezionare lo slot per visualizzare il relativo riquadro di gestione.

Screenshot of the list of deployment slots for a web app.

Accedere a uno slot

Il nome host del nuovo slot è derivato dal nome dell'app Web e dal nome dello slot. Si ottiene questo nome host quando si seleziona lo slot nella pagina Slot di distribuzione:

Screenshot of finding the URL for a new slot in the Azure portal.

È possibile distribuire il codice nel nuovo slot esattamente come avviene per lo slot di produzione. È sufficiente sostituire il nome o l'URL del nuovo slot nella configurazione dello strumento di distribuzione in uso. Se si procede alla distribuzione tramite FTP, il nome host FTP e il nome utente verranno visualizzati proprio sotto l'URL dello slot.

Il nuovo slot è a tutti gli effetti un'app Web distinta con un nome host diverso. Per questo motivo è accessibile su Internet da chiunque ne conosca il nome host. A meno che non si registri lo slot con un motore di ricerca o un collegamento ad esso da una pagina di ricerca per indicizzazione, lo slot non verrà visualizzato negli indici dei motori di ricerca. Rimarrà invisibile agli utenti Internet generici.

È possibile controllare l'accesso a uno slot usando le restrizioni degli indirizzi IP. Creare un elenco di intervalli di indirizzi IP a cui consentire l'accesso allo slot o un elenco di intervalli a cui negare l'accesso. Questi elenchi sono come gli intervalli di accesso consentito e negato configurabili per un firewall. Usare questo elenco per consentire l'accesso solo ai computer della propria azienda o team di sviluppo.

Creare slot di distribuzione

1.

In che modo il servizio app di Azure garantisce che non ci siano cali nelle prestazioni dello slot di produzione subito dopo uno scambio?

2.

Quale degli elementi seguenti NON è condiviso tra tutti gli slot di distribuzione di un'app Web?