Distribuire nel servizio app
Ogni team di sviluppo ha requisiti univoci che possono rendere difficile l'implementazione di una pipeline di distribuzione efficiente in diversi servizi cloud. Il servizio app supporta sia la distribuzione automatica che la distribuzione manuale.
Distribuzione automatica
La distribuzione automatizzata, o distribuzione continua, è un processo usato per eseguire il push di nuove funzionalità e correggere bug in modo veloce e ripetitivo, con effetto minimo sugli utenti finali.
Il servizio app di Azure supporta la distribuzione automatica da diversi sistemi di controllo del codice sorgente come parte di una pipeline di integrazione e distribuzione continua (CI/CD). Di seguito vengono illustrate le opzioni disponibili.
- Azure DevOps Services: è possibile eseguire il push del codice in Azure DevOps Services, compilare il codice nel cloud, eseguire i test, generare una versione dal codice e infine eseguire il push del codice in un'app Web di Azure.
- GitHub: Azure supporta la distribuzione automatizzata direttamente da GitHub. Quando si connette il repository GitHub ad Azure per eseguire la distribuzione automatizzata, tutte le modifiche di cui si esegue il push nel ramo di produzione in GitHub vengono distribuite automaticamente.
- Bitbucket: Bitbucket è supportato, anche se GitHub e Azure DevOps sono più comunemente usati e integrati meglio.
Distribuzione manuale
Per eseguire il push manuale del codice in Azure, sono disponibili alcune opzioni:
- Git: le app Web del servizio app includono un URL di Git che è possibile aggiungere come repository remoto. Eseguendo il push nel repository remoto, l'app viene distribuita.
-
Interfaccia della riga di comando:
az webapp upè una funzionalità dell'interfaccia dellaazriga di comando che crea un pacchetto dell'app e la distribuisce. A differenza di altri metodi di distribuzione,az webapp uppuò creare automaticamente una nuova app Web del servizio app. -
ZipDeploy: usare
curlo un'utilità HTTP simile per inviare uno ZIP dei file dell'applicazione a Servizio app. - FTP/S: FTP o FTPS è un modo tradizionale per eseguire il push del codice in molti ambienti di hosting, incluso Servizio app di Azure.
Annotazioni
Il servizio app usa Kudu per le distribuzioni basate su Git e zip. Kudu gestisce i trigger di sincronizzazione e distribuzione dei file.
Uso di slot di distribuzione
Quando possibile, usare gli slot di distribuzione quando si distribuisce una nuova build di produzione. Quando si usa un livello del piano di servizio app Standard o superiore, è possibile distribuire l'app in un ambiente di gestione temporanea e quindi scambiare gli slot di gestione temporanea e di produzione. L'operazione di scambio prepara le istanze di lavoro necessarie in base alla scala di produzione, eliminando così i tempi di inattività.
Distribuire continuamente il codice
Se il progetto designa rami per test, controllo di qualità e gestione temporanea, ognuno di questi rami deve essere distribuito continuamente in uno slot di staging. In questo modo gli stakeholder possono accedere e testare facilmente il ramo distribuito.
Distribuire continuamente contenitori
Per i contenitori personalizzati di Registro Azure Container o di altri registri contenitori, distribuire l'immagine in uno slot di staging e scambiarla in produzione per evitare tempi di inattività. L'automazione è più complessa della distribuzione del codice perché è necessario eseguire il push dell'immagine in un registro contenitori e aggiornare il tag immagine nell'app Web.
- Compilare e contrassegnare l'immagine: Come parte della pipeline di compilazione, contrassegnare l'immagine con l'ID commit git, il timestamp o altre informazioni identificabili. È consigliabile non usare il tag "latest" predefinito. In caso contrario, è difficile tracciare il codice attualmente distribuito, che rende il debug molto più difficile.
- Eseguire il push dell'immagine contrassegnata: dopo aver compilato e contrassegnato l'immagine, la pipeline esegue il push dell'immagine nel registro contenitori. Nel passaggio successivo, lo slot di distribuzione eseguirà il pull dell'immagine contrassegnata dal registro contenitori.
- Aggiornare lo slot di distribuzione con il nuovo tag immagine: quando questa proprietà viene aggiornata, il sito viene riavviato automaticamente ed esegue il pull della nuova immagine del contenitore.
Contenitori sidecar
Nel servizio app di Azure è possibile aggiungere fino a nove contenitori sidecar per ogni app contenitore personalizzata abilitata per sidecar. I contenitori sidecar sono supportati per le app contenitore personalizzate basate su Linux e consentono la distribuzione di servizi e funzionalità aggiuntivi senza renderli strettamente associati al contenitore principale dell'applicazione. Ad esempio, è possibile aggiungere servizi di monitoraggio, registrazione, configurazione e rete come contenitori sidecar.
È possibile aggiungere un contenitore sidecar tramite il Deployment Center nella pagina di gestione dell'app.