Distribuire l'app nel servizio app di Azure

Questo articolo consente di determinare l'opzione migliore per distribuire i file per l'app Web, il back-end dell'app per dispositivi mobili o l'app per le API nel Servizio app di Azure. L'articolo quindi descrive le risorse appropriate, con istruzioni sulle procedure specifiche per l'opzione scelta.

Panoramica della distribuzione nel servizio app di Azure

Il framework applicazioni (ASP.NET, PHP, Node.js, e così via) viene gestito direttamente dal servizio app di Azure. Alcuni framework sono abilitati per impostazione predefinita, mentre altri, come Java e Python, possono richiedere una semplice configurazione con segni di spunta per abilitarli. È anche possibile personalizzare il framework applicazioni, ad esempio la versione PHP o il numero di bit del proprio runtime. Per altre informazioni, vedere Configurare le app Web nel servizio app di Azure.

Non essendo necessario occuparsi del server Web o del framework applicazioni, per distribuire l'app al servizio app è sufficiente distribuire il codice, i file binari, i file di contenuto e le rispettive strutture di directory nella directory /site/wwwroot in Azure o, per i processi Web, nella directory /site/wwwroot/App_Data/Jobs/. Il servizio app supporta tre processi di distribuzione diversi. Tutti i metodi di distribuzione in questo articolo usano uno dei processi seguenti:

  • FTP o FTPS: usare lo strumento abilitato per FTP o FTPS preferito per spostare i file in Azure da FileZilla a IDE completi, come NetBeans. Si tratta esclusivamente di un processo di caricamento di file. Non vengono forniti altri servizi dal servizio app, ad esempio controllo della versione, gestione della struttura di file e così via.
  • Kudu (Git/Mercurial o OneDrive/Dropbox): Kudu è il motore di distribuzione nel servizio app. Effettuare il push del codice direttamente in Kudu da qualsiasi repository. Kudu fornisce anche altri servizi ogni volta che viene effettuato il push di codice, inclusi controllo della versione, ripristino del pacchetto, MSBuild e webhook per la distribuzione continua e altre attività di automazione. Il motore di distribuzione Kudu supporta 3 tipi diversi di origine distribuzione:

    • Sincronizzazione del contenuto da OneDrive e Dropbox
    • Distribuzione continua basata su repository con sincronizzazione automatica da GitHub, Bitbucket e Visual Studio Team Services
    • Distribuzione basata su repository con sincronizzazione manuale da archivio Git locale
  • Distribuzione Web: distribuire il codice al servizio app direttamente dagli strumenti Microsoft preferiti, ad esempio Visual Studio, tramite gli stessi strumenti di automazione della distribuzione ai server IIS. Questo strumento supporta la distribuzione solo delle differenze, la creazione di database, le trasformazioni delle stringhe di connessione e così via. Distribuzione Web si differenzia da Kudu perché i file binari dell'applicazione vengono compilati prima della distribuzione in Azure. Come FTP, non vengono forniti servizi aggiuntivi dal servizio app.

Gli strumenti di sviluppo Web più diffusi supportano uno o più di questi processi di distribuzione. Mentre lo strumento scelto determina i processi di distribuzione che è possibile sfruttare, l'effettiva funzionalità DevOps disponibile dipende dalla combinazione del processo di distribuzione e degli strumenti specifici scelti. Ad esempio, se si esegue Distribuzione Web da Visual Studio con Azure SDK, anche se non si usufruisce dell'automazione tramite Kudu, si ottiene l'automazione del ripristino del pacchetto e di MSBuild in Visual Studio.

Nota

Questi processi di distribuzione in realtà non effettuano il provisioning delle risorse di Azure che potrebbero essere necessarie per l'applicazione. La maggior parte degli articoli sulle procedure collegati mostra come effettuare il provisioning dell'app E distribuire il codice end-to-end. È anche possibile trovare altre opzioni per il provisioning delle risorse di Azure nella sezione Automatizzare la distribuzione con gli strumenti da riga di comando .

Eseguire manualmente la distribuzione caricando file con il protocollo FTP

Se di solito si copia il contenuto Web in un server Web manualmente, è possibile usare un'utilità FTP per copiare i file, ad esempio Esplora risorse o FileZilla.

Ecco i vantaggi della copia manuale dei file:

  • Possibilità di usare strumenti familiari quali gli strumenti FTP e minima complessità di questi.
  • Conoscenza esatta della destinazione dei file.
  • Maggiore sicurezza con FTPS.

Ecco gli svantaggi della copia manuale dei file:

  • Necessità di conoscere come distribuire i file nelle directory corrette del servizio app.
  • Nessun controllo della versione per il ripristino dello stato precedente quando si verificano errori.
  • Nessuna cronologia di distribuzione per la risoluzione d eventuali problemi nel corso di questa operazione.
  • Possibilità di tempi lunghi di distribuzione, poiché molti strumenti FTP non sono dotati della funzione di copia delle sole differenze e copiano semplicemente tutti i file.

Come caricare i file con il protocollo FTP

Nel portale di Azure sono disponibili tutte le informazioni necessarie per connettersi alle directory dell'app tramite il protocollo FTP o FTPS.

Distribuire tramite sincronizzazione con una cartella nel cloud

Una valida alternativa alla copia manuale dei file è la sincronizzazione di file e cartelle con il servizio app da un servizio di archiviazione cloud, ad esempio OneDrive e Dropbox. La sincronizzazione con una cartella nel cloud usa il processo Kudu per la distribuzione. Vedere Panoramica dei processi di distribuzione.

Ecco i vantaggi della sincronizzazione con una cartella nel cloud:

  • Semplicità di distribuzione. Servizi come OneDrive e Dropbox forniscono client di sincronizzazione desktop, quindi la directory di lavoro locale è anche la directory di distribuzione.
  • Distribuzione con un clic.
  • Tutte le funzionalità del motore di distribuzione Kudu, ad esempio il ripristino dei pacchetti e l'automazione, sono disponibili.

Ecco gli svantaggi della sincronizzazione con una cartella nel cloud:

  • Nessun controllo della versione per il ripristino dello stato precedente quando si verificano errori.
  • Nessuna distribuzione automatizzata. È necessaria la sincronizzazione manuale.

Come distribuire tramite sincronizzazione con una cartella nel cloud

Nel portale di Azureè possibile designare una cartella per la sincronizzazione del contenuto nel servizio di archiviazione cloud OneDrive o Dropbox, usare il codice e il contenuto dell'app disponibili in tale cartella e procedere alla sincronizzazione con il servizio app con un semplice clic.

Eseguire una distribuzione continua da un servizio di controllo del codice sorgente basato sul cloud

Se il team di sviluppo usa un sistema di gestione del codice sorgente basato sul cloud, ad esempio Visual Studio Team Services, GitHub o BitBucket, è possibile configurare il servizio app in modo da integrarlo con il repository e consentire la distribuzione continua.

Di seguito vengono indicati i vantaggi della distribuzione da un servizio di controllo del codice sorgente basato sul cloud:

  • Controllo delle versioni e possibilità di eseguire il ripristino dello stato precedente.
  • Possibilità di configurare la distribuzione continua per i repository Git, nonché per i repository Mercurial, quando applicabile.
  • Distribuzione specifica per ramo. Consente di distribuire rami diversi a slot diversi.
  • Sono disponibili tutte le funzionalità del motore di distribuzione Kudu, ad esempio il controllo delle versioni di distribuzione, il ripristino dello stato precedente, il ripristino dei pacchetti, l'automazione.

Svantaggio della distribuzione da un servizio di controllo del codice sorgente basato sul cloud:

  • È necessaria una certa conoscenza del relativo servizio di gestione del codice sorgente.

Come eseguire una distribuzione continua da un servizio di controllo del codice sorgente basato sul cloud

Nel portale di Azureè possibile configurare la distribuzione continua da GitHub, Bitbucket e Visual Studio Team Services.

Per informazioni su come configurare manualmente la distribuzione continua da un repository cloud non elencato nel portale di Azure (ad esempio, GitLab), vedere Setting up continuous deployment using manual steps (Configurazione manuale della distribuzione continua).

Distribuire dall'archivio Git locale

Se il team di sviluppo usa un servizio locale di gestione del codice sorgente locale basato su archivio Git, è possibile configurare questo servizio come origine di distribuzione al servizio app.

Vantaggi della distribuzione da un archivio Git locale:

  • Controllo delle versioni e possibilità di eseguire il ripristino dello stato precedente.
  • Distribuzione specifica per ramo. Consente di distribuire rami diversi a slot diversi.
  • Sono disponibili tutte le funzionalità del motore di distribuzione Kudu, ad esempio il controllo delle versioni di distribuzione, il ripristino dello stato precedente, il ripristino dei pacchetti, l'automazione.

Svantaggi della distribuzione da un archivio Git locale:

  • È necessaria una certa conoscenza del relativo sistema di gestione del codice sorgente.
  • Nessuna soluzione chiavi in mano per la distribuzione continua.

Come distribuire dall'archivio Git locale

Nel portale di Azureè possibile configurare la distribuzione dell'archivio Git locale.

Distribuire tramite un IDE

Se si usa già Visual Studio con un Azure SDK o altri gruppi di IDE come Xcode, Eclipse e IntelliJ IDEA, è possibile eseguire la distribuzione in Azure direttamente dall'interno dell'IDE. Questa opzione è ideale per un singolo sviluppatore.

Visual Studio supporta tutti e tre i processi di distribuzione (FTP, Git e Distribuzione Web) secondo le preferenze dell'utente, mentre altri IDE possono eseguire la distribuzione al servizio app se includono l'integrazione con FTP o Git. Vedere Panoramica dei processi di distribuzione.

Ecco i vantaggi della distribuzione con un IDE:

  • Ridurre potenzialmente gli strumenti per il ciclo di vita dell'applicazione end-to-end. Sviluppare, eseguire il debug, tenere traccia e distribuire l'app in Azure senza uscire dall'IDE.

Ecco gli svantaggi della distribuzione con un IDE:

  • Complessità aggiuntiva degli strumenti.
  • Richiede comunque un sistema di controllo del codice sorgente per un progetto team.

Altri vantaggi della distribuzione tramite Visual Studio con Azure SDK:

  • Azure SDK rende le risorse di Azure elementi di primaria importanza in Visual Studio. Creare, eliminare, modificare, avviare e arrestare app, eseguire query sul database SQL di back-end, live-debug applicazione Azure e molto altro ancora.
  • Modifica in tempo reale dei file di codice in Azure.
  • Debug in tempo reale di app in Azure.
  • Azure Explorer integrato.
  • Distribuzione solo delle differenze.

Come distribuire direttamente da Visual Studio

Come distribuire usando i toolkit di Azure per Eclipse e IntelliJ IDEA

Microsoft consente la distribuzione di App Web in Azure direttamente da Eclipse e IntelliJ tramite il toolkit di Azure per Eclipse e il toolkit di Azure per IntelliJ. Le esercitazioni seguenti illustrano i passaggi coinvolti nella distribuzione di una semplice App Web "Hello World" in Azure mediante l'IDE:

Automatizzare la distribuzione con strumenti da riga di comando

Se come ambiente di sviluppo si preferisce un terminale da riga di comando, è possibile creare script delle attività di distribuzione per l'app del servizio app usando gli strumenti da riga di comando.

Di seguito vengono indicati i vantaggi della distribuzione tramite gli strumenti da riga di comando:

  • Possibilità di creare script per gli scenari di distribuzione.
  • Integrazione del provisioning di risorse di Azure e della distribuzione di codice.
  • Integrazione della distribuzione di Azure con script di integrazione continua esistenti.

Gli svantaggi della distribuzione tramite gli strumenti da riga di comando sono i seguenti:

  • Approccio non adatto agli sviluppatori che preferiscono l'interfaccia utente grafica.

Come automatizzare la distribuzione con gli strumenti da riga di comando

Per un elenco di strumenti da riga di comando e di collegamenti a esercitazioni, vedere Automatizzare la distribuzione con strumenti da riga di comando.

Passaggi successivi

In alcuni scenari potrebbe essere necessario passare facilmente da una versione temporanea a una versione di produzione dell'app e viceversa. Per ulteriori informazioni, vedere Distribuzione temporanea su App Web.

La definizione di un piano di backup e ripristino è una parte importante di un flusso di distribuzione. Per informazioni sulla funzionalità di backup e ripristino del servizio app, vedere Eseguire il backup di un'App Web nel servizio app di Azure.

Per informazioni su come usare il controllo degli accessi in base al ruolo di Azure per gestire l'accesso alla distribuzione del servizio app, vedere Controllo degli accessi in base al ruolo e pubblicazione di App Web.