Supponiamo che tu lavori per un’azienda sanitaria che fornisce i suoi servizi tramite una piattaforma web. L’interfaccia utente di questa piattaforma è configurata come un’applicazione web PHP ospitata in Azure App Services. Vengono regolarmente rilasciati aggiornamenti al codice sorgente dell’applicazione per migliorare le funzionalità o risolvere bug.Tuttavia, questi aggiornamenti a volte introducono problemi:
- Bug non rilevati:Nonostante i test rigorosi, a volte i tester non individuano bug critici, causando problemi nell’ambiente di produzione.
- Tempi di inattività: Quando vengono identificati bug, annullare i cambiamenti provoca interruzioni del servizio, che frustrano gli utenti finali.
- Deploy lenti:Il processo di distribuzione e compilazione influisce sulla reattività dell’applicazione, specialmente durante i momenti di picco, causando insoddisfazione degli utenti.
C’è una soluzione migliore per garantire aggiornamenti senza interruzioni dei servizi? Sì! Microsoft Azure offre una potente funzionalità nota come slot di distribuzione.
Slot di distribuzione Azure
Microsoft Azure deployment slots forniscono un modo efficiente e affidabile per gestire gli aggiornamenti delle applicazioni. Con i deployment slots, è possibile mantenere contemporaneamente le versioni nuove e vecchie dell’applicazione. Lo scambio tra le due versioni è semplice come alcuni clic del mouse, eliminando la necessità di rollback del codice che richiede tempo.
Cos’è Deployment Slots e Come Funzionano?
Azure Deployment Slots è una funzionalità in Azure App Services che consente di creare ambienti separati per distribuire e testare la tua app web prima di renderla disponibile a tutti gli utenti finali. Ogni slot di distribuzione funziona come un’istanza indipendente della tua app, che può essere personalizzata per scopi specifici, come:
- Staging: Per testare e convalidare le modifiche prima del passaggio alla produzione.
- Produzione: Per servire gli utenti finali con una versione stabile dell’app.
- Slot aggiuntivi: A seconda del tuo piano di pricing, puoi creare slot per QA, testing o altri ambienti.
Caratteristiche Chiave dei Deployment Slots
Istanze Pre-Riscaldate
Quando distribuisci a uno slot di staging, lo slot è pre-riscaldato. Questo significa che l’app è completamente inizializzata e pronta a gestire le richieste degli utenti con una latenza minima.
Scambiare lo slot di staging in produzione garantisce che non ci siano tempi di inattività o ritardi di avvio a freddo.
Reindirizzamento del Traffico Senza Soluzioni di Continuità
Durante lo scambio, il reindirizzamento del traffico tra slot è senza soluzioni di continuità, assicurando che nessuna richiesta degli utenti venga persa.
Capacità di Ripristino
Se si verificano problemi imprevisti dopo aver scambiato una nuova versione in produzione, puoi immediatamente tornare alla configurazione “ultima nota buona”.
Come gli Slot di Distribuzione Risolvono il Problema
Rilevamento dei Bug Prima della Produzione
Distribuendo il nuovo codice a uno slot di staging, i tester possono convalidare l’app in un ambiente che rispecchia la produzione. Questo riduce al minimo il rischio di bug non rilevati.
Nessuna Interruzione del Servizio
Poiché l’app è pre-riscaldata nello slot di staging, lo scambio in produzione avviene senza tempi di inattività, fornendo servizi ininterrotti agli utenti finali.
Distribuzioni più Veloci
Scambiare gli slot è istantaneo rispetto ai metodi di distribuzione tradizionali, riducendo significativamente il tempo necessario per la distribuzione e migliorando la reattività.
Impostare e Configurare un’App Web di Azure
1. Crea un’app Web
Accedi al portale Azure con il tuo account. Cerca Servizi App e cliccaci sopra.
Clicca su App Web.
Seleziona da 1 a 7 valori come richiesto per la tua applicazione, quindi clicca su Rivedi + crea, seguito da Crea. Il nome dell’app Web in questa demo è webappdemotosrs.
webappdemotosrs(App Web) può essere accessibile tramite l’URL del dominio predefinito.
2. Creazione di slot di distribuzione
Clicca sul slot di distribuzione pannello.
Clicca su Aggiungi slot.
Assegna uno Nome allo slot.
Scegli se clonare le impostazioni da un altro slot. Se scegli di clonare, le impostazioni vengono copiate nel tuo nuovo slot dallo slot che specifichi.
Fai clic su Aggiungi.
Slot creato con il nome fornito.
Configura le impostazioni di distribuzione dell’app Web
In questo compito, configurerai le impostazioni di distribuzione dell’app Web. Le impostazioni di distribuzione consentono la distribuzione continua. Questo garantisce che il servizio app abbia l’ultima versione dell’applicazione. Nello slot di staging, seleziona Centro di distribuzione e poi seleziona Impostazioni. Nel menu a discesa Sorgente, seleziona Git esterno. Nota le altre opzioni.
- Nel campo del repository, inserisci: https://github.com/Azure-Samples/php-docs-hello-world.
- Nel campo del ramo, inserisci master. Seleziona Salva.
- Dallo slot di staging, seleziona Panoramica.
- Seleziona il link del dominio predefinito e apri l’URL in una nuova scheda.
- Verifica che lo slot di staging mostri Hello World.
3. Scambio degli slot di distribuzione
Fai clic su Scambia.
Fai clic su Inizia Scambio.
Una volta completato lo scambio, apparirà una notifica che mostrerà il suo stato.
4. Dopo Scambio degli slot di distribuzione
Produzione Output dell’URL del dominio predefinito:
Staging Output dell’URL del dominio predefinito sarà come di seguito
Questo dimostra che dopo uno scambio degli slot di distribuzione, lo slot di produzione inizia a eseguire il nuovo codice mentre lo slot di staging torna al vecchio codice.
Riepilogo
In questo articolo, abbiamo imparato come creare e utilizzare gli slot di distribuzione in Azure App Service. Abbiamo utilizzato gli slot per testare e preparare nuove versioni della nostra app e abbiamo scambiato quegli slot di distribuzione. Possiamo scambiare gli slot per distribuire un’app testata in produzione e ripristinare un’app distribuita quando si verificano problemi inaspettati.Quando si utilizzano gli slot di distribuzione, ricorda che Azure riscalda un’app prima di uno scambio e la reindirizzazione del traffico è istantanea. Il risultato è che la tua app viene distribuita senza interruzioni del servizio o cali delle prestazioni.
Source:
https://dzone.com/articles/azure-web-apps-deployment-slots