Condividi tramite


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

Questo articolo illustra come inserire le applicazioni ASP.NET in contenitori ed eseguirne la migrazione al Servizio app di Azure con lo strumento Containerizzazione delle applicazioni di Azure Migrate. 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 del contenitore. È possibile distribuire l'applicazione in contenitori nel Servizio app di Azure.

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

Lo strumento Containerizzazione delle applicazioni 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. Viene eseguito il push dell'immagine del contenitore dell'applicazione in un registro Azure Container specificato.
  • Distribuire in Servizio app di Azure. Lo strumento genera quindi i file di distribuzione necessari per distribuire l'applicazione in contenitori nel Servizio app di Azure.

Nota

Lo strumento Containerizzazione delle applicazioni di Azure Migrate consente di individuare tipi di applicazione specifici (app Web ASP.NET e 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 in computer locali, usare lo strumento Individuazione e valutazione di Azure Migrate.

Non tutte le applicazioni trarranno vantaggio da un passaggio diretto ai contenitori senza essere sottoposte a una notevole riprogettazione. Tuttavia, alcuni dei vantaggi dello spostamento di app esistenti in contenitori senza riscrittura includono:

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

Questa esercitazione illustra come:

  • Configurare un account Azure.
  • Installare lo strumento Containerizzazione delle applicazioni di Azure Migrate.
  • Individuare l'applicazione ASP.NET.
  • Compilare l'immagine del contenitore.
  • Distribuire l'applicazione in contenitori nel servizio App.

Nota

Le esercitazioni offrono il percorso di distribuzione più semplice per uno scenario, per consentire di configurare rapidamente un modello di verifica. Le esercitazioni usano le opzioni predefinite e non riportano tutti i percorsi e le impostazioni.

Prerequisiti

Prima di iniziare questa esercitazione, è necessario:

Requisito Dettagli
Identificare un computer in cui installare lo strumento Per installare ed eseguire lo strumento Containerizzazione delle applicazioni di Azure Migrate, è necessario un computer Windows. 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 disporre della connettività di rete per i server o le macchine virtuali che ospitano le applicazioni ASP.NET di cui eseguire la containerizzazione.

Assicurarsi che nel computer Windows che esegue lo strumento Containerizzazione delle applicazioni di Azure Migrate siano disponibili 6 GB. Questo spazio è destinato all'archiviazione degli artefatti dell'applicazione.

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

Se lo Strumento di distribuzione Web Microsoft non è già installato nel computer che esegue lo strumento Containerizzazione delle applicazioni 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.

Verificare che PowerShell 5.1 sia installato nel server delle applicazioni. Seguire le istruzioni riportate in Installare e configurare WMF 5.1 nel server applicazioni.

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


Lo strumento attualmente non supporta:
  • Applicazioni che richiedono l'autenticazione di Windows. Il servizio Azure Kubernetes attualmente non supporta gMSA.
  • Le applicazioni che dipendono da altri servizi di 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 nella sottoscrizione di Azure.
  • Autorizzazioni per registrare le app Microsoft Entra.

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. Nel portale di Azure cercare “sottoscrizioni”. In Servizi selezionare Sottoscrizioni:

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

  2. Nella pagina di Abbonamenti seleziona l'abbonamento nel cui vuoi creare un progetto di Azure Migrate.

  3. Nella sottoscrizione, nel riquadro sinistro selezionare Controllo di accesso (IAM).

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

  5. In Aggiungi assegnazione di ruolo selezionare Aggiungi:

    Screenshot che mostra come cercare un account utente per verificare l'accesso e assegnare un ruolo.

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

    Screenshot che mostra la pagina Aggiungi assegnazione di ruolo.

    L'account Azure deve anche disporre delle autorizzazioni per registrare le app Microsoft Entra.

  7. Nel portale di Azure passare a Microsoft Entra ID>Utenti>Impostazioni utente.

  8. In Impostazioni utente verificare che gli utenti di Microsoft Entra possano registrare le applicazione. Per impostazione predefinita, questa opzione è impostata su .

    Screenshot che mostra la pagina Impostazioni utente.

    Importante

    Microsoft consiglia di usare i ruoli con minori autorizzazioni. Ciò consente di migliorare la sicurezza dell'organizzazione. L'amministratore globale è un ruolo con privilegi elevati che deve essere limitato agli scenari di emergenza quando non è possibile usare un ruolo esistente.

  9. Se l'opzione Registrazioni app è impostata su No, richiedere all'amministratore tenant/globale di assegnare l'autorizzazione richiesta. In alternativa, l'amministratore tenant/globale può assegnare il ruolo Sviluppatore applicazione a un account per consentire la registrazione di app Microsoft Entra. Per altre informazioni, vedere Assegnare ruoli agli utenti.

Scaricare e installare lo strumento Containerizzazione delle applicazioni di Azure Migrate

  1. Scaricare il programma di installazione dello strumento Containerizzazione delle applicazioni di Azure Migrate nel computer Windows.

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

  3. Eseguire lo script di installazione usando questo comando:

    .\AppContainerizationInstaller.ps1
    

Nota

Per Windows Server 2022, modificare la riga 135 e rimuovere PowerShell-ISE dall'elenco delle funzionalità, perché non è più supportato.

Aprire lo strumento Containerizzazione delle applicazioni

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

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

  2. Se viene visualizzato un avviso che indica che la connessione non è privata, selezionare Avanzate e continuare al sito Web. Questo avviso compare quando 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 di Azure di destinazione selezionare Contenitori nel 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 dello strumento Configura i prerequisiti, completare i passaggi seguenti:
    • Connettività. Lo strumento verifica se il computer Windows dispone dell'accesso a Internet. Se il computer usa un proxy:

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

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

      3. Se sono stati aggiunti dettagli del proxy o sono stati disabilitati 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 verifica automaticamente la disponibilità degli aggiornamenti più recenti e li installa. È anche possibile installare manualmente l'ultima versione dello strumento.

    • Installare lo Strumento di distribuzione Web Microsoft. Lo strumento verifica che lo Strumento di distribuzione Web Microsoft sia installato nel computer Windows che esegue lo strumento Containerizzazione delle applicazioni di Azure Migrate.

    • Abilitare la comunicazione remota di PowerShell. Lo strumento inviterà l'utente a verificare che la comunicazione remota di PowerShell sia abilitata nei server applicazioni che eseguono le applicazioni ASP.NET da inserire in contenitori.

Accedere ad Azure

  1. Selezionare Accedi e accedere al proprio account Azure.

    Per eseguire l'autenticazione con Azure, è necessario un codice del dispositivo. Selezionando Accedi viene aperta una finestra contenente il codice del dispositivo. Se la finestra non viene visualizzata, verificare di aver disabilitato il blocco popup nel browser.

  2. Selezionare Copiare il codice ed eseguire l'accesso per copiare il codice del dispositivo e aprire una richiesta di accesso ad Azure in una nuova scheda del browser:

    Screenshot che mostra la finestra Codice dispositivo per l'accesso ad 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 Containerizzazione delle applicazioni.

  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 Containerizzazione delle applicazioni 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 da usare per connettersi in remoto al server per l'individuazione delle applicazioni.

    • 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), anteporre al nome utente il nome di dominio nel formato: <dominio\nome utente>.
    • Per gli account locali (l'utente deve essere un amministratore nel server applicazioni), anteporre al nome utente il nome host nel formato: <nome host\nome utente>.
    • È possibile eseguire l'individuazione delle applicazioni per un 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, nella colonna Stato verrà visualizzato 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 delle applicazioni, selezionare le applicazioni da 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 tag viene usato per l'immagine del contenitore. Ad esempio, è possibile specificare il nome del contenitore di destinazione come nomeapp:v1.

Parametrizzare le configurazioni dell'applicazione

La parametrizzazione della configurazione la rende disponibile come parametro deploy-time. La parametrizzazione consente di configurare un'impostazione quando si distribuisce l'applicazione anziché impostarla come hardcoded 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 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 devono far parte dell'immagine del contenitore o se devono essere esternalizzate all'archiviazione permanente tramite la condivisione file di Azure. L'uso dell'archiviazione permanente esterna è ideale per le applicazioni con stato che archiviano lo stato all'esterno del contenitore o hanno altro contenuto statico archiviato nel file system.

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

  2. Selezionare Aggiungi cartella e specificare i percorsi di cartella 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 per archiviare le cartelle all'esterno del contenitore nell'archiviazione permanente.

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

    Screenshot che mostra le finestre Modifica cartelle dell'applicazione.

  6. Fare clic su Continua per passare alla fase di compilazione dell'immagine del contenitore.

Compilare l'immagine del contenitore

  1. Dall'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:

    Screenshot che mostra la finestra Compilare le immagini.

    Nota

    Vengono visualizzati solo i registri contenitori di Azure con l'account utente amministratore abilitato. L'account utente amministratore è attualmente necessario per distribuire un'immagine da un Registro Azure Container al Servizio app di Azure. Per altre informazioni, vedere Eseguire l'autenticazione con 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 compilare le immagini e selezionare Compila. Selezionando Build verrà avviata la compilazione dell'immagine del contenitore per ogni applicazione. Lo strumento monitora lo stato della compilazione e consente di continuare con il passaggio successivo al termine della compilazione.

  4. È possibile monitorare lo stato della compilazione selezionando Compilazione in corso nella colonna dello stato. Il collegamento si attiverà un paio di minuti dopo l'attivazione del processo di compilazione.

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

    Screenshot che mostra il Collegamento di revisione, lo stato dell'immagine del contenitore e i pulsanti Compila e Continua.

Distribuire l'app in contenitori nel servizio app di Azure

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

  1. Selezionare il piano di Servizio app di Azure che deve essere usato dall'applicazione.

    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 di servizio app.

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

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

    • Se sono state scelte le impostazioni applicazione del servizio app per la gestione dei segreti, selezionare Continua.
    • Se si vuole usare Azure Key Vault per gestire i segreti dell'applicazione, specificare l'istanza dell'insieme di credenziali delle chiavi.
      • Se non si dispone di Azure Key Vault o si vuole creare un nuovo insieme di credenziali delle chiavi, è possibile crearlo selezionando Crea nuovo Azure Key Vault.
      • 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 si è selezionata l'opzione condivisione file per l'archiviazione permanente, specificare la condivisione file di Azure da usare nello strumento di Containerizzazione delle applicazioni 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 crearla selezionando Crea nuovo account di archiviazione e condivisione file.

  5. È ora necessario specificare la configurazione della distribuzione per l'applicazione. Selezionare Configura per personalizzare la distribuzione dell'applicazione. Nel passaggio di configurazione è possibile fornire le personalizzazioni seguenti:

    • Nome. Specificare un nome dell'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 applicazione parametrizzate, specificare i valori da usare per la distribuzione corrente.
    • Configurazione dell'archiviazione. Esaminare le informazioni relative a tutte le cartelle dell'applicazione configurate per l'archiviazione permanente.

    Screenshot che mostra la configurazione della distribuzione.

  6. Dopo il salvataggio della configurazione di 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 le distribuzioni per le applicazioni selezionate.

      Screenshot che mostra il pulsante Distribuisci.

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

Risoluzione dei problemi

Per risolvere i problemi con lo strumento Containerizzazione delle applicazioni, è possibile esaminare i file di log nel computer Windows che esegue lo strumento. I file di log dello strumento si trovano nella cartella C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

Passaggi successivi