Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come inserire in contenitori applicazioni Web Java (in esecuzione in Apache Tomcat) ed eseguirne la migrazione al servizio app di Azure usando lo strumento Azure Migrate: Containerization app. Il processo di containerizzazione non richiede l'accesso alla codebase e offre un modo semplice per containerizzare le applicazioni esistenti. Lo strumento funziona usando lo stato in esecuzione delle applicazioni in un server per determinare i componenti dell'applicazione e consente di creare un pacchetto in un'immagine del contenitore. L'applicazione in contenitori può quindi essere distribuita nel servizio app di Azure.
Lo strumento Azure Migrate: Containerizzazione app attualmente supporta:
- Containerizzazione delle app Web Java in Apache Tomcat (nei server Linux) e relativa distribuzione in contenitori Linux nel Servizio app di Azure.
- Containerizzazione delle app Web Java in Apache Tomcat (nei server Linux) e relativa distribuzione in contenitori Linux nel servizio Azure Kubernetes. Altre informazioni.
- Containerizzazione delle app ASP.NET e relativa distribuzione in contenitori Windows nel servizio Azure Kubernetes. Altre informazioni.
- Containerizzazione delle app ASP.NET e relativa distribuzione in contenitori Windows nel Servizio app di Azure. Altre informazioni.
Lo strumento Azure Migrate: Containerizzazione app consente di:
- Individuare l'applicazione: lo strumento si connette in remoto ai server applicazioni che eseguono l'applicazione Web Java (in esecuzione in Apache Tomcat) e individua i componenti dell'applicazione. Lo strumento crea un Dockerfile che può essere usato 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 usarla per compilare l'immagine del contenitore dell'applicazione. Sull'immagine del contenitore dell'applicazione viene eseguito il push in un Registro Azure Container specificato.
- Distribuire nel 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 Azure Migrate: Containerizzazione app 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 la funzionalità Azure Migrate: Individuazione e valutazione. Altre informazioni.
- Lo strumento Containerizzazione app ignora l'individuazione di alcune app Web Tomcat predefinite, ad esempio "docs", "examples", "host-manager", "manager" e "ROOT".
Anche se nessuna applicazione può trarre vantaggio dall'inserimento diretto in un contenitore senza una riprogettazione significativa, lo spostamento di un'applicazione esistente in un contenitore senza riscrittura presenta i benefici seguenti:
- Miglioramento dell'utilizzo dell'infrastruttura: Con i contenitori, più applicazioni possono condividere risorse e essere ospitate nella stessa infrastruttura. Questo consente di consolidare l'infrastruttura e migliorare l'utilizzo.
- Gestione semplificata: Ospitando le applicazioni in una piattaforma gestita moderna come servizio Azure Kubernetes e Servizio app, è possibile semplificare le procedure di gestione. È possibile ottenere questo risultato ritirando o riducendo i processi di gestione e manutenzione dell'infrastruttura che tradizionalmente si eseguono in un'infrastruttura di proprietà.
- Portabilità delle applicazioni: Con una maggiore adozione e standardizzazione dei formati e delle piattaforme di specifiche dei contenitori, la portabilità delle applicazioni non è più un problema.
- Adottare una gestione moderna con DevOps: Consente di adottare e standardizzare le procedure moderne per la gestione e la sicurezza e la transizione a DevOps.
Questa esercitazione illustra come:
- Configurare un account Azure.
- Installare lo strumento Azure Migrate: Containerizzazione app.
- Individuare l'applicazione Web Java.
- Compilare l'immagine del contenitore.
- Distribuire l'applicazione in contenitori nel servizio App.
Nota
Le esercitazioni illustrano il percorso di distribuzione più semplice per uno scenario, per consentire di configurare rapidamente un modello di verifica. Quando possibile vengono usate le opzioni predefinite e non sono riportati tutti i percorsi e le impostazioni possibili.
Prerequisiti
Prima di iniziare questa esercitazione, è necessario:
Requisito | Dettagli |
---|---|
Identificare un computer per installare lo strumento | Un computer Windows per installare ed eseguire lo strumento di containerizzazione delle applicazioni di Azure Migrate. Il computer Windows può essere un sistema operativo server (Windows Server 2016 o versione successiva) o client (Windows 10), ovvero lo strumento può essere eseguito anche su PC desktop. Il computer Windows che esegue lo strumento deve disporre di connettività di rete con i server o le macchine virtuali che ospitano le applicazioni Web Java di cui eseguire la containerizzazione. Assicurarsi che nel computer Windows che esegue lo strumento di containerizzazione delle applicazioni di Azure Migrate siano disponibili 6 GB di spazio per archiviare gli artefatti dell'applicazione. Il computer Windows deve disporre di accesso a Internet, diretto o tramite un proxy. |
Server di applicazioni | Abilitare la connessione SSH (Secure Shell) sulla porta 22 nei server che eseguono le applicazioni Java da inserire in contenitori. |
Applicazione Web Java | Lo strumento attualmente supporta: - Applicazioni in esecuzione in Tomcat 8 o Tomcat 9. - Server applicazioni in Ubuntu Linux 16.04/18.04/20.04, Debian 7/8, Red Hat Enterprise Linux 5/6/7. - Applicazioni che usano Java 7 o Java 8. Se si ha una versione diversa, trovare un'immagine che supporti le versioni necessarie e modificare il Dockerfile per sostituire l'immagine Lo strumento attualmente non supporta: - Server applicazioni che eseguono più istanze di Tomcat |
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:
Nel portale di Azure cercare "sottoscrizioni" e in Servizi selezionare Sottoscrizioni.
Nella pagina Sottoscrizioni selezionare la sottoscrizione in cui si vuole creare un progetto di Azure Migrate.
Nella sottoscrizione selezionare Controllo di accesso (IAM)>Controllare l'accesso.
In Controlla l'accesso, cerca l'account utente pertinente.
In Aggiungi un'assegnazione di ruolo selezionare Aggiungi.
In Aggiungi assegnazione di ruolo, seleziona il ruolo Proprietario e seleziona l'account (azmigrateuser nell'esempio). Selezionare Salva.
L'account Azure deve anche disporre delle autorizzazioni per registrare le app Microsoft Entra. 8. Nel portale di Azure, passare a Microsoft Entra ID>Impostazioni utente. 9. Nelle impostazioni utente verificare se gli utenti di Microsoft Entra possono registrare le applicazioni (impostate su Sì per impostazione predefinita).
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.
- Se l'impostazione "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 di applicazioni a un account per consentire la registrazione di Microsoft Entra App. Altre informazioni.
Scaricare e installare lo strumento Azure Migrate: Containerizzazione di applicazioni
Scaricare il programma di installazione di Azure Migrate: Containerizzazione di app in un computer Windows.
Avviare PowerShell in modalità amministratore e modificare la directory di PowerShell nella cartella che contiene il programma di installazione.
Eseguire lo script di installazione usando il comando
.\AppContainerizationInstaller.ps1
Nota
Per Windows Server 2022, modificare la riga 135 e rimuovere PowerShell-ISE
dall'elenco delle funzionalità, perché non è più supportato.
Avviare lo strumento Containerizzazione app
Aprire un browser su qualsiasi macchina in grado di connettersi al computer Windows che esegue lo strumento di containerizzazione delle app e aprire l'URL dello strumento: https://nome macchina o indirizzo IP: 44369.
In alternativa, è possibile aprire l'app dal desktop selezionando il collegamento all'app.
Se viene visualizzato un avviso che informa che la connessione non è privata, selezionare Avanzate e scegliere di passare al sito Web. Questo avviso compare quando l'interfaccia Web usa un certificato TLS/SSL autofirmato.
Nella schermata di accesso usare l'account amministratore locale del computer per accedere.
Selezionare App Web Java in Tomcat come tipo di applicazione da inserire in contenitori.
Per specificare il servizio di Azure di destinazione, selezionare Contenitori nel servizio app di Azure.
Completare i prerequisiti dello strumento
- Accettare le condizioni di licenza e leggere le informazioni di terze parti.
- Nell'app Web >Configurare i prerequisiti, seguire questi passaggi:
-
Connettività: lo strumento verifica che il computer Windows abbia accesso a Internet. Se il computer usa un proxy:
- Selezionare Configura proxy per specificare l'indirizzo proxy (nel formato indirizzo IP o FQDN) e la porta di ascolto.
- Se il proxy richiede l'autenticazione, specificare le credenziali.
- È supportato solo il proxy HTTP.
- Se sono stati aggiunti dettagli proxy o disabilitato il proxy e/o l'autenticazione, selezionare di nuovo Salva per attivare il controllo della connettività.
- Installa aggiornamenti: lo strumento verificherà automaticamente la disponibilità di aggiornamenti più recenti e li installerà. È anche possibile installare manualmente la versione più recente dello strumento da qui.
- Abilita Secure Shell (SSH): lo strumento informerà l'utente per assicurarsi che Secure Shell (SSH) sia abilitato nei server applicazioni che eseguono le applicazioni Web Java da inserire in contenitori.
-
Connettività: lo strumento verifica che il computer Windows abbia accesso a Internet. Se il computer usa un proxy:
Accedere ad Azure
Selezionare Accedi per accedere all'account Azure.
Per eseguire l'autenticazione con Azure, sarà necessario un codice del dispositivo. Selezionando Accedi si aprirà un modale con il codice del dispositivo.
Selezionare Copia codice e accesso per copiare il codice del dispositivo e aprire un prompt di accesso di Azure in una nuova scheda del browser. Se non viene visualizzato, assicurarsi di aver disabilitato il blocco popup nel browser.
Nella nuova scheda incollare il codice del dispositivo e completare l'accesso usando le credenziali dell'account Azure. È possibile chiudere la scheda del browser dopo aver completato l'accesso e tornare all'interfaccia Web dello strumento Containerizzazione app.
Selezionare il tenant di Azure che si vuole usare.
Specificare la sottoscrizione di Azure da usare.
Individuare le applicazioni Web Java
Lo strumento helper di Containerizzazione app si connette in remoto ai server applicazioni usando le credenziali fornite e tenta di individuare le applicazioni Web Java (in esecuzione in Apache Tomcat) ospitate nei server applicazioni.
Specificare l'indirizzo IP/FQDN e le credenziali del server che esegue l'applicazione Web Java da usare per connettersi in remoto al server per l'individuazione delle applicazioni.
- Le credenziali specificate devono essere per un account radice (Linux) 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\nomeutente>.
- È possibile eseguire l'individuazione delle applicazioni per un massimo di cinque server alla volta.
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.
Selezionare Continua per avviare l'individuazione delle applicazioni nei server applicazioni selezionati.
Al termine dell'individuazione dell'applicazione, è possibile selezionare l'elenco delle applicazioni da containerizzare.
Usare la casella di controllo per selezionare le applicazioni da inserire in contenitori.
Specificare il nome del contenitore: specificare un nome per il contenitore di destinazione per ogni applicazione selezionata. Il nome del contenitore deve essere specificato come <name:tag> in cui viene usato il tag 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 in fase di distribuzione. In questo modo è possibile configurare l'impostazione durante la distribuzione dell'applicazione anziché renderla hardcoded a un valore specifico nell'immagine del contenitore. Questa opzione, ad esempio, è utile per parametri come le stringhe di connessione di database.
Selezionare Configurazioni app per esaminare le configurazioni rilevate.
Selezionare la casella di controllo per parametrizzare le configurazioni dell'applicazione rilevate.
Selezionare Applica dopo aver selezionato le configurazioni da parametrizzare.
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 esternalizzati 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.
Selezionare Modifica in Cartelle app per esaminare le cartelle dell'applicazione rilevate. Le cartelle dell'applicazione rilevate sono state identificate come artefatti obbligatori necessari per l'applicazione e verranno copiate nell'immagine del contenitore.
Selezionare Aggiungi cartelle e specificare i percorsi delle cartelle da aggiungere.
Per aggiungere più cartelle allo stesso volume, specificare valori separati da virgole (
,
).Selezionare Condivisione file di Azure come opzione di archiviazione se si vuole archiviare le cartelle all'esterno del contenitore nell'archiviazione permanente.
Selezionare Salva dopo aver esaminato le cartelle dell'applicazione.
Selezionare Continua per passare alla fase di compilazione dell'immagine del contenitore.
Compilare l'immagine del contenitore
Selezionare Registro Azure Container: usare l'elenco a discesa per 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 usando l'opzione Crea nuovo registro.
Nota
Vengono visualizzati solo i registri contenitori di Azure con l'utente amministratore abilitato. L'account amministratore è attualmente necessario per distribuire un'immagine da un Registro Azure Container al servizio app di Azure. Altre informazioni.
Esaminare il Dockerfile: il Dockerfile necessario per compilare le immagini del contenitore per ogni applicazione selezionata viene generato all'inizio del passaggio di compilazione. Selezionare Rivedi per esaminare 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.
Configurare Application Insights: è possibile abilitare il monitoraggio per le app Java in esecuzione nel servizio app senza instrumentare il codice. Lo strumento installerà l'agente autonomo Java come parte dell'immagine del contenitore. Dopo essere stato configurato durante la distribuzione, l'agente Java raccoglie automaticamente una moltitudine di richieste, dipendenze, log e metriche per l'applicazione che possono essere usate per il monitoraggio con Application Insights. Questa opzione è abilitata per impostazione predefinita per tutte le applicazioni Java.
Trigger build process (Attiva processo di compilazione): selezionare le applicazioni per cui compilare immagini e selezionare Compila. Selezionando Compila verrà avviata la compilazione dell'immagine del contenitore per ogni applicazione. Lo strumento monitora costantemente lo stato di compilazione e consente di procedere al passaggio successivo al completamento della compilazione.
Tenere traccia dello stato di compilazione: è anche possibile monitorare lo stato di avanzamento del passaggio di compilazione selezionando il collegamento Compila in corso nella colonna Stato compilazione . L'attivazione del collegamento richiede alcuni minuti dopo aver avviato il processo di compilazione.
Al termine della compilazione, selezionare Continua per specificare le impostazioni di distribuzione.
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.
Selezionare il piano di servizio app di Azure: specificare 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 scegliere di crearne uno dallo strumento selezionando Crea nuovo piano di servizio app.
- Selezionare Continua dopo aver selezionato il piano di servizio app.
Specificare l'archivio segreto e l'area di lavoro di monitoraggio: se si è scelto di parametrizzare le configurazioni dell'applicazione, specificare l'archivio segreto 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. Altre informazioni.
- Se sono state selezionate le impostazioni dell'applicazione del servizio app per la gestione dei segreti, selezionare Continua.
- Se si vuole usare Azure Key Vault per la gestione dei segreti dell'applicazione, specificare l'istanza di Azure Key Vault.
- Se non si ha un insieme di credenziali delle chiavi di Azure o si vuole creare un nuovo insieme di credenziali delle chiavi, è possibile scegliere di crearne uno dallo strumento selezionando Crea nuovo.
- Lo strumento assegnerà automaticamente le autorizzazioni necessarie per la gestione dei segreti tramite Key Vault.
-
Area di lavoro Monitoraggio: se è stata selezionata l'opzione per abilitare il monitoraggio con Application Insights, specificare la risorsa di Application Insights che si vuole usare. Questa opzione non sarà visibile se l'integrazione del monitoraggio è stata disabilitata.
- Se non si ha una risorsa di Application Insights o si vuole creare una nuova risorsa, è possibile scegliere di crearla dallo strumento selezionando Crea nuovo.
Specificare la condivisione file di Azure: se sono state aggiunte altre directory/cartelle e si è selezionata l'opzione condivisione file di Azure per l'archiviazione permanente, specificare la condivisione file di Azure da usare in Azure Migrate: strumento di containerizzazione delle app durante il processo di distribuzione. Lo strumento copia le directory o 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 scegliere di crearla dallo strumento selezionando Crea nuovo account di archiviazione e condivisione file.
Configurazione della distribuzione dell'applicazione: dopo aver completato i passaggi precedenti, è necessario specificare la configurazione di distribuzione per l'applicazione. Selezionare Configura per personalizzare la distribuzione per l'applicazione. Nel passaggio di configurazione è possibile fornire le personalizzazioni seguenti:
- Nome: specificare un nome di app univoco per l'applicazione. Questo nome verrà usato per generare l'URL dell'applicazione e usato come prefisso per altre risorse create come parte di questa 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 relative a tutte le directory o le cartelle dell'applicazione configurate per l'archiviazione permanente.
Distribuire l'applicazione: dopo aver salvato la 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 l'applicazione da distribuire.
Selezionare Distribuisci per avviare le distribuzioni per le applicazioni selezionate
Screenshot per la configurazione della distribuzione delle app.
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 eventuali problemi con lo strumento, è possibile esaminare i file di log nel computer Windows che esegue lo strumento Containerizzazione app. I file di log degli strumenti sono disponibili nella cartella C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs .
Passaggi successivi
- Containerizzazione delle app Web Java in Apache Tomcat (nei server Linux) e relativa distribuzione in contenitori Linux nel servizio Azure Kubernetes. Ulteriori informazioni
- Containerizzazione delle app Web ASP.NET e relativa distribuzione in contenitori Windows nel servizio Azure Kubernetes. Ulteriori informazioni
- Containerizzazione delle app Web ASP.NET e relativa distribuzione in contenitori Windows nel Servizio app di Azure. Ulteriori informazioni