Distribuire nel servizio app

Completato

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.

Azure supporta la distribuzione automatizzata direttamente da diverse origini. 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: analogamente a GitHub, è possibile configurare una distribuzione automatizzata con Bitbucket.

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:: webapp up è una funzionalità dell'interfaccia della riga di comando az che crea un pacchetto per l'app e la distribuisce. Diversamente da altri metodi di distribuzione, az webapp up può creare automaticamente una nuova app Web di Servizio app se non ne è già stata creata una.
  • ZipDeploy: usare curl o 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.

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 ha designato rami per test, controllo di qualità e gestione temporanea, ognuno di questi rami deve essere distribuito continuamente in uno slot di staging. Ciò consente agli stakeholder di valutare 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 verrà riavviato automaticamente ed eseguirà il pull della nuova immagine del contenitore.