Containerizzazione e migrazione delle app ASP.NET a Servizio app di Azure

Questo articolo illustra come inserire in contenitori ASP.NET applicazioni ed eseguirne la migrazione a Servizio app di Azure usando lo strumento Azure Migrate App Containerization. Il processo di containerizzazione non richiede l'accesso alla codebase e offre un modo semplice per inserire in contenitori le applicazioni esistenti. Lo strumento funziona usando lo stato di esecuzione delle applicazioni in un server per determinare i componenti dell'applicazione. Consente quindi di creare un pacchetto in un'immagine contenitore. È quindi possibile distribuire l'applicazione in contenitori in Servizio app di Azure.

Lo strumento di containerizzazione delle applicazioni di Azure Migrate attualmente supporta:

Lo strumento Containerizzazione app consente di:

  • Individuare i componenti dell'applicazione. Lo strumento si connette in remoto ai server applicazioni che eseguono l'applicazione ASP.NET e individua i componenti dell'applicazione. Crea un Dockerfile che è possibile usare per creare un'immagine del contenitore per l'applicazione.
  • Compilare l'immagine del contenitore. È possibile esaminare e personalizzare ulteriormente il Dockerfile in base ai requisiti dell'applicazione e usarlo per compilare l'immagine del contenitore dell'applicazione. L'immagine del contenitore dell'applicazione viene inserita in un registro Azure Container specificato.
  • Eseguire la distribuzione in Servizio app di Azure. Lo strumento genera quindi i file di distribuzione necessari per distribuire l'applicazione in contenitori in Servizio app di Azure.

Nota

Lo strumento Azure Migrate App Containerization consente di individuare tipi di applicazione specifici (ASP.NET e app Web Java in Apache Tomcat) e i relativi componenti in un server applicazioni. Per individuare i server e l'inventario di app, ruoli e funzionalità in esecuzione nei computer locali, usare lo strumento di individuazione e valutazione di Azure Migrate.

Non tutte le applicazioni trarranno vantaggio da un passaggio diretto ai contenitori senza riprogettare significativamente. Alcuni dei vantaggi dello spostamento delle app esistenti in contenitori senza riscrittura includono:

  • Miglioramento dell'utilizzo dell'infrastruttura. Quando si usano contenitori, più applicazioni possono condividere risorse e essere ospitate nella stessa infrastruttura. Ciò consente di consolidare l'infrastruttura e migliorare l'utilizzo.
  • Gestione semplificata. Ospitando le applicazioni in piattaforme gestite moderne, ad esempio servizio Azure Kubernetes e servizio app, è possibile semplificare le procedure di gestione. È possibile ottenere questa semplificazione ritirando o riducendo i processi di manutenzione e gestione dell'infrastruttura tradizionalmente eseguiti con l'infrastruttura di proprietà.
  • Portabilità dell'applicazione. Con una maggiore adozione e standardizzazione dei formati e delle piattaforme di specifiche dei contenitori, la portabilità delle applicazioni non è più un problema.
  • Adottare la gestione moderna usando DevOps. L'uso dei contenitori consente di adottare e standardizzare le procedure moderne per la gestione e la sicurezza e la transizione a DevOps.

In questa esercitazione si apprenderà come:

  • Configurare un account Azure.
  • Installare lo strumento Azure Migrate App Containerization.
  • Individuare l'applicazione ASP.NET.
  • Compilare l'immagine del contenitore.
  • Distribuire l'applicazione in contenitori in servizio app.

Nota

Le esercitazioni forniscono il percorso di distribuzione più semplice per uno scenario in modo da poter configurare rapidamente un modello di verifica. Le esercitazioni usano le opzioni predefinite quando possibile e non mostrano tutte le impostazioni e i percorsi.

Prerequisiti

Prima di iniziare questa esercitazione, è necessario:

Requisito Dettagli
Identificare un computer in cui installare lo strumento È necessario un computer Windows in cui installare ed eseguire lo strumento Azure Migrate App Containerization. Il computer Windows potrebbe eseguire un server (Windows Server 2016 o versione successiva) o un sistema operativo client (Windows 10). Lo strumento può essere eseguito sul desktop.

Il computer Windows che esegue lo strumento deve avere la connettività di rete ai server o alle macchine virtuali che ospitano le applicazioni ASP.NET che verranno incluse in contenitori.

Assicurarsi che nel computer Windows sia disponibile 6 GB che esegue lo strumento Azure Migrate App Containerization. Questo spazio è per l'archiviazione degli artefatti dell'applicazione.

Il computer Windows deve disporre di accesso a Internet, diretto o tramite un proxy.

Se lo strumento Microsoft Web Deployment non è già installato nel computer che esegue lo strumento Contenitore app e il server applicazioni, installarlo. È possibile scaricare lo strumento.
Server applicazioni Abilitare la comunicazione remota di PowerShell nei server applicazioni: accedere al server applicazioni e seguire queste istruzioni per attivare la comunicazione remota di PowerShell.

Assicurarsi che PowerShell 5.1 sia installato nel server applicazioni. Seguire le istruzioni riportate qui per scaricare e installare PowerShell 5.1 nel server applicazioni.

Se lo strumento Microsoft Web Deployment non è già installato nel computer che esegue lo strumento Contenitore app e il server applicazioni, installarlo. È possibile scaricare lo strumento.
applicazione ASP.NET Lo strumento attualmente supporta:
  • ASP.NET applicazioni che usano .NET Framework 3.5 o versione successiva.
  • Server applicazioni che eseguono Windows Server 2012 R2 o versione successiva. I server applicazioni devono eseguire PowerShell 5.1.
  • Applicazioni eseguite in Internet Information Services 7.5 o versioni successive.


Lo strumento attualmente non supporta:
  • Applicazioni che richiedono autenticazione di Windows. Il servizio Azure Kubernetes non supporta attualmente gMSA.
  • Applicazioni che dipendono da altri servizi Windows ospitati all'esterno di Internet Information Services.

Preparare un account utente Azure

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Dopo aver configurato la sottoscrizione, è necessario un account utente di Azure con:

  • Autorizzazioni di proprietario per la sottoscrizione di Azure.
  • Autorizzazioni per la registrazione di app Azure Active Directory.

Se è appena stato creato un account Azure gratuito, si è proprietari della propria sottoscrizione. Se non si ha il ruolo di proprietario della sottoscrizione, collaborare con il proprietario per assegnare le autorizzazioni nel modo seguente:

  1. Nella portale di Azure cercare "sottoscrizioni". In Servizi selezionare Sottoscrizioni:

    Screenshot che mostra la casella di ricerca per la ricerca di una sottoscrizione di Azure.

  2. Nella pagina Sottoscrizioni selezionare la sottoscrizione in cui si vuole creare un progetto di Azure Migrate.

  3. Nel riquadro sinistro della sottoscrizione selezionare Controllo di accesso (IAM).

  4. Nella scheda Controlla accesso cercare l'account utente pertinente.

  5. In Aggiungi un'assegnazione di ruolo selezionare Aggiungi:

    Screenshot che mostra la ricerca di un account utente per controllare l'accesso e assegnare un ruolo.

  6. Nella pagina Aggiungi assegnazione di ruolo selezionare il ruolo Proprietario e quindi selezionare l'account (azmigrateuser nell'esempio). Selezionare quindi Salva.

    Screenshot che mostra la pagina Aggiungi assegnazione di ruolo.

    L'account Azure necessita anche di autorizzazioni per registrare le app Azure Active Directory.

  7. Nella portale di Azure passare aImpostazioni utente utenti> di Azure Active Directory>.

  8. In Impostazioni utente verificare che gli utenti di Azure AD possano registrare le applicazioni. Questa opzione è impostata su per impostazione predefinita.

    Screenshot che mostra la pagina Impostazioni utente.

  9. Se l'opzione Registrazioni app è impostata su No, chiedere all'amministratore tenant/globale di assegnare l'autorizzazione necessaria. In alternativa, l'amministratore tenant/globale può assegnare il ruolo sviluppatore dell'applicazione a un account per consentire la registrazione delle app di Azure Active Directory. Per altre informazioni, vedere Assegnare ruoli agli utenti.

Scaricare e installare lo strumento Azure Migrate App Containerization

  1. Scaricare il programma di installazione di Azure Migrate App Containerization in un computer Windows.

  2. Aprire PowerShell in modalità amministratore e modificare la directory di PowerShell nella cartella contenente il programma di installazione.

  3. Eseguire lo script di installazione usando questo comando:

    .\AppContainerizationInstaller.ps1
    

Aprire lo strumento di containerizzazione app

  1. Aprire un browser in qualsiasi computer in grado di connettersi al computer Windows che esegue lo strumento Contenitore app. Passare all'URL dello strumento: nome https:// machine o indirizzo IP: 44369.

    In alternativa, è possibile aprire l'app dal desktop usando il collegamento all'app.

  2. Se viene visualizzato un avviso che indica che la connessione non è privata, selezionare Avanzate e continuare con il sito Web. Questo avviso viene visualizzato perché l'interfaccia Web usa un certificato TLS/SSL autofirmato.

  3. Nella schermata di accesso usare l'account amministratore locale del computer per accedere.

  4. Selezionare ASP.NET web apps (App Web ASP.NET) come tipo di applicazione da containerizzare.

  5. Nell'elenco Servizio Azure di destinazione selezionare Contenitori in Servizio app di Azure:

    Screenshot che mostra il tipo di applicazione e gli elenchi di destinazione.

Completare i prerequisiti dello strumento

  1. Accettare le condizioni di licenza e leggere le informazioni di terze parti.
  2. Nell'app Web strumento Configurare i prerequisiti, completare questa procedura:
    • Connettività. Lo strumento verifica se il computer Windows ha accesso a Internet. Se il computer usa un proxy:

      1. Selezionare Configura proxy per specificare l'indirizzo proxy (nel modulo indirizzo IP o FQDN) e la porta di ascolto.

      2. Se il proxy richiede l'autenticazione, specificare le credenziali.

      3. Se sono stati aggiunti i dettagli del proxy o disabilitato il proxy o l'autenticazione, selezionare Salva per attivare di nuovo il controllo della connettività.

      È supportato solo il proxy HTTP.

    • Installare gli aggiornamenti. Lo strumento controlla automaticamente gli aggiornamenti più recenti e li installa. È anche possibile installare manualmente la versione più recente dello strumento.

    • Installare lo strumento Di distribuzione Web Microsoft. Lo strumento verifica se lo strumento Di distribuzione Web Microsoft è installato nel computer Windows che esegue lo strumento Azure Migrate App Containerization.

    • Abilitare la comunicazione remota di PowerShell. Lo strumento richiede di assicurarsi che la comunicazione remota di PowerShell sia abilitata nei server applicazioni che eseguono le applicazioni ASP.NET che si desidera inserire in contenitori.

Accedere ad Azure

  1. Selezionare Accedi e accedere al proprio account Azure.

    È necessario un codice del dispositivo per l'autenticazione con Azure. Selezionare Accedi deve aprire una finestra contenente il codice del dispositivo. Se la finestra non viene visualizzata, assicurarsi di aver disabilitato il blocco popup nel browser.

  2. Selezionare Copia codice e accesso per copiare il codice del dispositivo e aprire una richiesta di accesso di Azure in una nuova scheda del browser:

    Screenshot che mostra la finestra Codice dispositivo per l'accesso di Azure.

  3. Nella nuova scheda incollare il codice del dispositivo e completare l'accesso usando le credenziali dell'account Azure. Dopo aver eseguito l'accesso, è possibile chiudere la scheda del browser e tornare all'interfaccia Web dello strumento Contenitore app.

  4. Selezionare il tenant di Azure che si desidera usare.

  5. Selezionare la sottoscrizione di Azure da usare.

Individuare le applicazioni ASP.NET

Lo strumento Contenitore app si connette in remoto ai server applicazioni usando le credenziali fornite e tenta di individuare le applicazioni ASP.NET ospitate nei server applicazioni.

  1. Specificare l'indirizzo IP server/FQDN e le credenziali del server che esegue l'applicazione ASP.NET che deve essere usata per connettersi in remoto al server per l'individuazione dell'applicazione.

    • Le credenziali specificate devono essere per un amministratore locale (Windows) nel server applicazioni.
    • Per gli account di dominio (l'utente deve essere un amministratore nel server applicazioni), prefissi il nome utente con il nome di dominio in questo formato: <dominio\nome utente>.
    • Per gli account locali (l'utente deve essere un amministratore nel server applicazioni), prefisso il nome utente con il nome host in questo formato: <nome host\>nome utente.
    • È possibile eseguire l'individuazione delle applicazioni per un numero massimo di cinque server alla volta.
  2. Selezionare Convalida per verificare che il server applicazioni sia raggiungibile dal computer che esegue lo strumento e che le credenziali siano valide. Al termine della convalida, la colonna Stato mostrerà lo stato mappato:

    Screenshot che mostra lo stato del server come mappato.

  3. Selezionare Continua per avviare l'individuazione delle applicazioni nei server applicazioni selezionati.

  4. Al termine dell'individuazione dell'applicazione, selezionare le applicazioni che si desidera inserire in contenitori:

    Screenshot che mostra l'applicazione ASP.NET individuata.

  5. Specificare un nome per il contenitore di destinazione per ogni applicazione selezionata. Specificare il nome del contenitore come <nome:tag, dove viene usato il tag> per l'immagine del contenitore. Ad esempio, è possibile specificare il nome del contenitore di destinazione come nome app:v1.

Parametrizzare le configurazioni dell'applicazione

La parametrizzazione della configurazione lo rende disponibile come parametro di distribuzione. La parametrizzazione consente di configurare un'impostazione quando si distribuisce l'applicazione invece di averla codificata in modo rigido in un valore specifico nell'immagine del contenitore. Questa opzione, ad esempio, è utile per parametri come le stringhe di connessione di database.

  1. Selezionare configurazioni delle app per esaminare le configurazioni rilevate.

  2. Selezionare i parametri da parametrizzare e quindi selezionare Applica:

    Screenshot che mostra l'elenco delle configurazioni rilevate.

Esternalizzare le dipendenze del file system

È possibile aggiungere altre cartelle usate dall'applicazione. Specificare se deve essere parte dell'immagine del contenitore o deve essere esternata all'archiviazione persistente tramite condivisione file di Azure. L'uso di archiviazione persistente esterna funziona in modo ottimale per le applicazioni con stato che archivia lo stato all'esterno del contenitore o hanno altri contenuti statici archiviati nel file system.

  1. Selezionare Modifica in Cartelle applicazione per esaminare le cartelle dell'applicazione rilevate. Queste cartelle sono state identificate come artefatti obbligatori necessari dall'applicazione. Verranno copiati nell'immagine del contenitore.

  2. Selezionare Aggiungi cartella e specificare i percorsi delle cartelle da aggiungere.

  3. Per aggiungere più cartelle allo stesso volume, separare i valori con virgole.

  4. Selezionare Condivisione file di Azure come opzione di archiviazione se si desidera che le cartelle vengano archiviate all'esterno del contenitore nell'archiviazione persistente.

  5. Selezionare Salva dopo aver esaminato le cartelle dell'applicazione:

    Screenshot che mostra la finestra Modifica cartelle dell'applicazione.

  6. Selezionare Continua per passare alla fase di compilazione dell'immagine del contenitore.

Compilare l'immagine del contenitore

  1. Nell'elenco a discesa selezionare un Registro Azure Container che verrà usato per compilare e archiviare le immagini del contenitore per le app. È possibile usare un registro Azure Container esistente o crearne uno nuovo selezionando Crea nuovo Registro di sistema:

    Screenshot che mostra la finestra Compila immagini.

    Nota

    Vengono visualizzati solo i registri di Azure Container con l'account utente amministratore abilitato. L'account utente amministratore è attualmente necessario per la distribuzione di un'immagine da un registro Azure Container a Servizio app di Azure. Per altre informazioni, vedere Eseguire l'autenticazione con un Registro Azure Container.

  2. I Dockerfile necessari per compilare le immagini del contenitore per ogni applicazione selezionata vengono generati all'inizio del passaggio di compilazione. Selezionare Rivedi per rivedere il Dockerfile. È anche possibile aggiungere tutte le personalizzazioni necessarie al Dockerfile nel passaggio di revisione e salvare le modifiche prima di avviare il processo di compilazione.

  3. Selezionare le applicazioni per cui si desidera compilare immagini e quindi selezionare Compila. Selezionando Compilazione verrà avviata la compilazione dell'immagine del contenitore per ogni applicazione. Lo strumento monitora lo stato di compilazione e consente di continuare al passaggio successivo al termine della compilazione.

  4. È possibile monitorare lo stato della compilazione selezionando Compila in corso nella colonna stato. Il collegamento diventerà attivo un paio di minuti dopo aver attivato il processo di compilazione.

  5. Al termine della compilazione, selezionare Continua per specificare le impostazioni di distribuzione:

    Screenshot che mostra il collegamento Rivedi, lo stato dell'immagine del contenitore e i pulsanti Compila e Continua.

Distribuire l'app in contenitori in Servizio app di Azure

Dopo aver compilato l'immagine del contenitore, il passaggio successivo consiste nel distribuire l'applicazione come contenitore in Servizio app di Azure.

  1. Selezionare il piano Servizio app di Azure che l'applicazione deve usare.

    Se non si ha un piano di servizio app o si vuole creare un nuovo piano di servizio app da usare, è possibile crearne uno selezionando Crea nuovo piano servizio app.

  2. Selezionare Continua dopo aver selezionato il piano servizio app.

  3. Se sono state parametrizzate le configurazioni dell'applicazione, specificare l'archivio segreto da usare per l'applicazione. È possibile scegliere le impostazioni dell'applicazione Key Vault o di servizio app di Azure per gestire i segreti dell'applicazione. Per altre informazioni, vedere Configurare le stringhe di connessione.

    • Se è stata selezionata servizio app impostazioni dell'applicazione per gestire i segreti, selezionare Continua.
    • Se si vuole usare un insieme di credenziali delle chiavi di Azure per gestire i segreti dell'applicazione, specificare l'insieme di credenziali delle chiavi che si vuole usare.
      • Se non si ha un insieme di credenziali delle chiavi di Azure o si vuole creare un nuovo insieme di credenziali delle chiavi, è possibile crearne uno selezionando Crea nuovo Key Vault di Azure.
      • Lo strumento assegnerà automaticamente le autorizzazioni necessarie per la gestione dei segreti tramite l'insieme di credenziali delle chiavi.
  4. Se sono state aggiunte altre cartelle e è stata selezionata l'opzione Condivisione file di Azure per l'archiviazione permanente, specificare la condivisione file di Azure da usare dallo strumento Contenitore app durante la distribuzione. Lo strumento copia le cartelle dell'applicazione configurate per File di Azure e le monta nel contenitore dell'applicazione durante la distribuzione. 

    Se non si ha una condivisione file di Azure o si vuole creare una nuova condivisione file di Azure, è possibile crearne una selezionando Crea nuovo account di archiviazione e condivisione file.

  5. È ora necessario specificare la configurazione di distribuzione per l'applicazione. Selezionare Configura per personalizzare la distribuzione per l'applicazione. Nel passaggio di configurazione è possibile specificare queste personalizzazioni:

    • Name. Specificare un nome di app univoco per l'applicazione. Questo nome verrà usato per generare l'URL dell'applicazione. Verrà usato anche come prefisso per altre risorse create come parte della distribuzione.
    • Configurazione dell'applicazione. Per tutte le configurazioni dell'applicazione con parametri, specificare i valori da usare per la distribuzione corrente.
    • Configurazione dell'archiviazione. Esaminare le informazioni per tutte le cartelle dell'applicazione configurate per l'archiviazione permanente.

    Screenshot che mostra la configurazione della distribuzione.

  6. Dopo aver salvato la configurazione della distribuzione per l'applicazione, lo strumento genererà il file YAML di distribuzione Kubernetes per l'applicazione.

    • Selezionare Rivedi per esaminare la configurazione della distribuzione per le applicazioni.

    • Selezionare le applicazioni da distribuire.

    • Selezionare Distribuisci per avviare la distribuzione per le applicazioni selezionate.

      Screenshot che mostra il pulsante Distribuisci.

    • Dopo aver distribuito l'applicazione, è possibile selezionare la colonna Stato distribuzione per tenere traccia delle risorse distribuite per l'applicazione.

Risolvere i problemi

Per risolvere i problemi relativi allo strumento Contenitore app, è possibile esaminare i file di log nel computer Windows che esegue lo strumento. I file di log per lo strumento si trovano in C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

Passaggi successivi