Questo documento è rivolto ai proprietari di applicazioni e ai cloud architect che vogliono eseguire la migrazione delle applicazioni Java in esecuzione su IBM WebSphere Application Server (WAS) ai container in esecuzione su Google Kubernetes Engine (GKE) o GKE Enterprise. Ti guida nella procedura di migrazione delle applicazioni WAS tradizionali ai container da un ambiente di origine on-premise, in un ambiente di hosting privato o in un altro cloud provider. Mette inoltre in evidenza i vantaggi dell'utilizzo di Migrazione ai container per automatizzare la migrazione.
È necessario avere una conoscenza preliminare di WebSphere prima di provare a eseguire la migrazione delle VM WebSphere ai container con Migrate to Containers.
Questo documento contiene inoltre punti importanti da considerare quando pianifichi la migrazione di un'applicazione WAS ai container. Fa parte di una serie in più parti sulla migrazione a Google Cloud. Se ti interessa una panoramica della serie, consulta Migrazione a Google Cloud: scegliere il percorso di migrazione.
Leggi questo documento se prevedi di eseguire la migrazione di applicazioni WAS tradizionali che eseguono un WAS compatibile su un sistema operativo compatibile, ad esempio Linux, da un ambiente di origine supportato a un ambiente GKE o GKE Enterprise con Migrate to Containers. Questi ambienti di origine possono includere:
- Un ambiente di Compute Engine
- Un ambiente VMware vSphere
- Un ambiente VM Microsoft Azure
- Un ambiente Amazon Elastic Compute Cloud (Amazon EC2)
Migrate to Containers automatizza l'uso di IBM Migration Toolkit for Application Binaries per scoprire, ispezionare e migrare tutte le applicazioni tradizionali WAS nelle macchine virtuali tradizionali WAS. Successivamente, suddivide le applicazioni WAS tradizionali in singoli container tradizionali WebSphere.
La migrazione di applicazioni tradizionali WAS con Migrate to Containers richiede un ingombro minimo (minimo 1 GB di RAM e 2 GB di dimensioni delle immagini) e costi di licenza ridotti (fino al 70% di sconto su un abbonamento a WAS Network Deployment).
Eseguendo la migrazione delle applicazioni tradizionali WAS con Migrate to Containers, potrai usufruire di diversi aspetti di un ambiente containerizzato. Abbiamo discusso in precedenza dei costi di licenza ridotti. È inoltre possibile eseguire un'ulteriore modernizzazione a prova di futuro nei framework cloud integrati creando container WAS Liberty o Open Liberty per le tue applicazioni.
WAS Liberty è un runtime di produzione leggero per uno sviluppo e un deployment rapidi di applicazioni basate su web e cloud. È basato sul progetto open source Open Liberty. Le aziende usano sia WAS Liberty che Open Liberty per creare microservizi Java basati su cloud.
La migrazione a GKE Enterprise o GKE trasferisce la funzionalità Network Deployment Manager di WAS nei seguenti prodotti:
Il seguente diagramma mostra in che modo GKE o GKE Enterprise gestiscono la funzionalità centralizzata (ad esempio alta disponibilità, posizionamento del carico di lavoro e configurazione centralizzata) che era precedentemente gestita da WAS Network Deployment. La configurazione specifica per l'applicazione viene gestita al momento della creazione dell'immagine Docker. L'uso di una configurazione basata su immagini Docker consente la ripetibilità e l'automazione attraverso i processi CI/CD.
La migrazione di applicazioni tradizionali WAS ai container con Migrate to Containers è uno dei possibili passaggi del percorso di modernizzazione dei carichi di lavoro. La migrazione consente di trasformare le applicazioni in modo che vengano eseguite in un ambiente cloud e di evitare le costose riscritture necessarie per modernizzare le applicazioni WAS tradizionali.
Le soluzioni ideali per la migrazione sono applicazioni in esecuzione su WebSphere Network Deployment, WebSphere Base o versioni Java supportate per cui la modernizzazione tramite una riscrittura completa è troppo costosa in termini di risorse o non è possibile. Per scoprire di più sui candidati ideali alla migrazione, consulta Migrazione delle VM nei container con Migrate to Containers.
Progetta la migrazione a Google Cloud
Per eseguire la migrazione delle applicazioni tradizionali WAS dal tuo ambiente di origine ai container in esecuzione su Google Cloud, segui il framework descritto nella serie sulla migrazione a Google Cloud.
Il seguente diagramma illustra il percorso del tuo percorso di migrazione:
Il framework illustrato nel diagramma precedente si compone di quattro fasi:
- Valuta: in questa fase valuterai l'ambiente di origine, valuterai le applicazioni di cui vuoi eseguire la migrazione a Google Cloud e valuterai le applicazioni tradizionali WAS adatte alla migrazione.
- Pianificare: in questa fase devi creare l'infrastruttura di base per Migrate to Containers, ad esempio il provisioning della gerarchia delle risorse e la configurazione dell'accesso alla rete.
- Deployment: in questa fase eseguirai la migrazione delle applicazioni WAS tradizionali dall'ambiente di origine a GKE o GKE Enterprise con Migrate to Containers.
- Ottimizzazione: in questa fase, inizierai a sfruttare le tecnologie e le funzionalità cloud.
Valuta l'ambiente e le applicazioni di origine
Nella fase di valutazione, raccogli informazioni sull'ambiente di origine e sulle applicazioni di cui vuoi eseguire la migrazione. In questo modo puoi adeguare le risorse di cui hai bisogno, sia per la migrazione che per l'ambiente di destinazione.
Nella fase di valutazione:
- Crea un inventario completo delle tue applicazioni.
- Cataloga le tue applicazioni in base alle loro proprietà e dipendenze.
- Addestra e forma i tuoi team su Google Cloud.
- Crea un esperimento e una proof of concept su Google Cloud.
- Calcola il costo totale di proprietà (TCO) dell'ambiente di destinazione.
- Scegli le applicazioni di cui vuoi eseguire la migrazione per prime.
Le sezioni seguenti si basano su Migrazione a Google Cloud: valutazione e individuazione dei carichi di lavoro. Tuttavia, forniscono informazioni specifiche per la valutazione delle applicazioni tradizionali WAS di cui vuoi eseguire la migrazione ai container con Migrate to Containers.
Creare gli inventari
Per definire l'ambito della migrazione, devi conoscere il tuo ambiente tradizionale WAS. Per comprendere il tuo ambiente, raccogli informazioni sulle applicazioni e sulle relative dipendenze.
In Creazione di un inventario delle app viene descritto come creare un inventario dei carichi di lavoro nell'ambiente WAS tradizionale e le relative dipendenze. Segui queste indicazioni e crea i tuoi inventari. Al termine, continua a leggere questo documento.
Dopo aver creato un inventario dei carichi di lavoro e delle loro dipendenze, puoi perfezionare l'inventario. Valuta gli aspetti e le funzionalità di interesse per la tua organizzazione quando esegue la migrazione delle applicazioni tradizionali WAS con Migrate to Containers.
Prima di valutare il tuo ambiente WAS per la migrazione, completa le attività di valutazione in Migrazione delle VM nei container con Migrate to Containers e Migrazione in Google Cloud: Valutazione e individuazione dei carichi di lavoro. Quando hai terminato, completa l'inventario dei tuoi carichi di lavoro.
Per completare l'inventario dei carichi di lavoro, considera quanto segue:
- Sistemi operativi in esecuzione nelle VM WAS: raccogli informazioni sui sistemi operativi e sulle relative licenze in esecuzione nelle tue VM WAS e assicurati che il sistema operativo sia un sistema operativo Linux a 64 bit elencato in Sistemi operativi compatibili e versioni di Kubernetes.
Versioni WAS che eseguono le tue applicazioni: raccogli informazioni sulle versioni WAS che eseguono le tue applicazioni e verificane la compatibilità con Migrate to Containers. Migrate to Containers supporta la migrazione di applicazioni WAS tradizionali (WebSphere Application Server tradizionali 8.5.5.x e versioni tradizionali di WebSphere Application Server 9.0.5.x) per ambienti di base WAS e WAS Network Deployment.
Applicazioni di cui è stato eseguito il deployment in WAS: valuta per quali applicazioni viene eseguito il deployment in ciascun WAS. Poi mappa le dipendenze tra le applicazioni e tra le applicazioni e i servizi esterni. Quindi, raccogli informazioni sulle origini di configurazione delle tue applicazioni. Ad esempio, stai utilizzando:
- Variabili di ambiente
- Percorsi di installazione WAS non standard
- Registri utenti LDAP
- Mappature dei ruoli di sicurezza
- Modifiche per applicare una classe all'ordine del caricatore
Punteggio di idoneità di Migrate to Containers: valuta se le tue applicazioni WAS tradizionali sono adatte alla migrazione con Migrate to Containers. Migrate to Containers offre uno strumento di valutazione dell'idoneità che puoi eseguire sulle tue applicazioni tradizionali WAS per calcolare un punteggio di idoneità. Migrate to Containers ha una serie di requisiti minimi per eseguire correttamente la migrazione delle applicazioni tradizionali WAS. Presenta anche alcune limitazioni quando si automatizza la migrazione di applicazioni tradizionali WAS. Puoi risolvere questi limiti configurando manualmente le applicazioni quando ne esegui la migrazione.
Autenticazione: WAS offre diversi meccanismi di autenticazione, ad esempio il meccanismo di autenticazione semplice di WebSphere (SWAM), l'autenticazione leggera di terze parti (LTPA) e Kerberos. Puoi configurare una sola implementazione del registro utenti come registro utenti attivo del dominio di sicurezza WAS. Migrate to Containers non esegue automaticamente la migrazione dei dettagli di autenticazione. Ciò significa che la configurazione dell'autenticazione richiede normalmente una configurazione manuale durante la migrazione.
Accesso ai dati (JDBC): l'architettura del connettore J2EE definisce un adattatore di risorse standard che connette WAS ai sistemi informativi aziendali. L'adattatore fornisce connettività tra il sistema di informazioni aziendali, il server delle applicazioni e le applicazioni. Migrate to Containers esegue automaticamente la migrazione della configurazione JDBC al container WAS modernizzato. Assicurati di aver abilitato la connettività tra le applicazioni migrate e i datastore esistenti.
Messaging (JMS): WAS supporta la comunicazione asincrona tramite l'interfaccia di programmazione Java Messaging Service (JMS). Migrate to Containers esegue automaticamente la migrazione delle informazioni di configurazione JMS. Tuttavia, per configurazioni specifiche come SSL, è necessario eseguire operazioni manuali.
Posta: WAS supporta l'invio di email tramite l'API JavaMail. Migrate to Containers non esegue automaticamente la migrazione dei file di configurazione di JavaMail. Configura manualmente questi file durante la fase di migrazione.
Completa la valutazione
Dopo aver creato gli inventari relativi al tuo ambiente e ai tuoi carichi di lavoro tradizionali WAS, completa le altre attività della fase di valutazione documentate in Migrazione a Google Cloud: valutazione e scoperta dei carichi di lavoro. Al termine, continua a leggere questo documento.
Pianifica e costruisci le tue basi
Dopo aver seguito le indicazioni riportate in Pianificare e creare gli elementi di base durante la migrazione delle VM, completa gli elementi di base WAS:
- Conferma il nome del bucket Cloud Storage.
Carica il file
binaryAppScanner.jar
disponibile nell'ambito di IBM WebSphere Application Server Migration Toolkit for Application Binaries seguendo questi passaggi:- Scarica il file del programma di installazione di
binaryAppScannerInstaller.jar
. Devi accettare il contratto di licenza nell'ambito del download. Esegui questo comando per estrarre il file binarioAppScanner.jar e accettare il contratto di licenza:
java -jar binaryAppScannerInstaller.jar --acceptLicense --verbose
Specifica la directory di destinazione per l'estrazione, ad esempio
/tmp
. Il programma di installazione crea una directory denominata/wamt
all'interno della directory di destinazione.Vai alla directory
/wamt
, ad esempio:cd /tmp/wamt
Carica il file
binaryAppScanner.jar
nella directory radice di un bucket Cloud Storage:gsutil cp binaryAppScanner.jar gs://BUCKET_NAME
Dove BUCKET_NAME è il nome del tuo bucket Cloud Storage.
- Scarica il file del programma di installazione di
Configurazione di Migrate to Containers descrive come eseguire il provisioning e la configurazione di Migrate to Containers e le sue dipendenze. Segui le indicazioni per configurare Migrate to Containers.
Al termine, continua a leggere questo documento.
Esegui la migrazione delle tue applicazioni WAS tradizionali nei container
Per saperne di più sulla fase di deployment della migrazione, segui le indicazioni riportate in Migrazione delle VM ai container.
Genera e rivedi il piano di migrazione
Crea un piano di migrazione Migrate to Containers per le tue applicazioni tradizionali WAS:
- Configura gli ambienti di origine come origini della migrazione di Migrate to Containers: per eseguire la migrazione delle tue applicazioni tradizionali WAS, Migrate to Containers ha bisogno di informazioni sugli ambienti di origine in cui vengono eseguite le tue VM. Hai raccolto queste informazioni eseguendo le attività descritte nella sezione Creare gli inventari di questo documento. Per ulteriori informazioni sulla configurazione degli ambienti di origine, consulta Aggiunta di un'origine di migrazione.
Crea piani di migrazione: per specificare le applicazioni WAS tradizionali di cui vuoi eseguire la migrazione da un ambiente di origine a un ambiente di destinazione supportato, crea un piano di migrazione (ad esempio, puoi configurare dove archiviare i dati permanenti).
Per saperne di più sulla creazione e sul monitoraggio dei piani di migrazione, consulta Creazione di una migrazione.
Per creare la migrazione devi usare la riga di comando. Non puoi utilizzare la console Google Cloud. Il comando completo è il seguente:
migctl migration create my-migration --source my-was-src --vm-id PROJECT_ID --intent Image --os-type Linux --app-type websphere-traditional
dove PROJECT_ID è l'ID assegnato al progetto di migrazione e
Image
è il valore del flag di intent. La natura stateless del carico di lavoro è usata per immagini.Rivedi e personalizza i piani di migrazione: dopo aver generato i piani di migrazione per ciascuna delle VM di cui vuoi eseguire la migrazione, esamina e personalizza ogni piano di migrazione per assicurarti che sia adatto ai tuoi requisiti. Per ulteriori informazioni sulla personalizzazione dei piani di migrazione, consulta Personalizzazione di un piano di migrazione.
Genera artefatti di migrazione e descrittori di deployment
Per generare gli artefatti WAS di destinazione per le tue applicazioni, Migrate to Containers estrae le applicazioni in esecuzione nelle VM configurate nei piani di migrazione. Quindi, crea diversi artefatti e posizionali in un bucket Cloud Storage. Migrate to Containers genera anche i descrittori di deployment che puoi personalizzare e utilizzare per eseguire il deployment delle istanze delle immagini container nell'ambiente di destinazione.
Per ogni applicazione migrata, Migrate to Containers crea una cartella contenente il contesto Docker, i file binari delle applicazioni, uno script di build e uno script di configurazione WAS.
Puoi monitorare l'avanzamento degli artefatti dei container che crei e esegui la migrazione. Per ulteriori informazioni sul monitoraggio di una migrazione, consulta Monitoraggio dei carichi di lavoro di cui è stata eseguita la migrazione.
Verifica e convalida le risorse e i descrittori generati
Dopo aver generato gli artefatti dei container e i descrittori del deployment con Migrate to Containers, esamina e aggiorna questi artefatti e descrittori per assicurarti che soddisfino i tuoi requisiti. Ad esempio, considera i seguenti aspetti:
- Descrittori delle immagini container: esamina i descrittori delle immagini container che hai generato con Migrate to Containers e verifica che siano adeguati per il carico di lavoro del container. Se devi aggiornare i descrittori delle immagini container, consulta Creazione di un'immagine dell'applicazione. Puoi aggiungere proprietà e installare iFixes.
- Logging a livello di applicazione: Migrate to Containers scrive automaticamente i log WAS in formato JSON. Per passare al logging di base, consulta Configurazione di Logging.
Per ulteriori informazioni sulla revisione degli artefatti dei container e dei descrittori di deployment, consulta Revisione dei file di deployment generati.
Esegui il deployment e convalida i carichi di lavoro containerizzati su GKE o GKE Enterprise
Quando i descrittori di deployment per i carichi di lavoro sono pronti, puoi:
Crea un'immagine del container dell'applicazione: crea un'immagine del container dell'applicazione per il carico di lavoro di cui è stata eseguita la migrazione nella cartella degli artefatti dell'applicazione che vuoi creare:
bash ./build.sh
Esegui il deployment delle applicazioni migrate nell'ambiente di destinazione: esegui il deployment delle applicazioni migrate:
kubectl apply -f deployment_spec.yaml
Monitora i carichi di lavoro migrati: dopo aver eseguito il deployment del container WAS per applicazioni tradizionali, puoi raccogliere informazioni sulle relative prestazioni nell'ambiente di destinazione. Per maggiori informazioni, consulta Monitoraggio dei carichi di lavoro di cui è stata eseguita la migrazione.
Integra i carichi di lavoro migrati: una volta che i carichi di lavoro di cui hai eseguito il deployment nell'ambiente di destinazione funzionano, integra i processi di generazione e deployment degli artefatti dei container con i processi e le pipeline di deployment. Se al momento non hai un processo di deployment automatico e stai implementando manualmente i carichi di lavoro, ti consigliamo di eseguire la migrazione dai deployment manuali a quelli automatizzati.
Disinstallare Migrate to Containers
Dopo aver completato la migrazione dei carichi di lavoro con Migrate to Containers, ti consigliamo di:
- Assicurati di avere tutti i riferimenti agli artefatti di Migrate to Containers generati durante la migrazione.
- Disinstalla Migrate to Containers.
Al termine delle operazioni descritte in questa sezione, torna a questo documento.
Ottimizza l'ambiente dopo la migrazione
Per completare la migrazione, consulta le linee guida in Ottimizzazione dell'ambiente dopo la migrazione.
Puoi eseguire queste ottimizzazioni specifiche per WAS per le applicazioni tradizionali WAS migrate:
- Esternalizzare la configurazione: quando crei un container WAS tradizionale, potrebbero verificarsi modifiche alla configurazione tra gli ambienti. Per evitare di ricreare il container per ogni ambiente, ti consigliamo di esternalizzare la configurazione WAS in proprietà e di utilizzare oggetti ConfigMap per impostarle all'avvio del container.
- Protezione dei dati sensibili: le password e tutti gli altri dati sensibili devono essere inseriti in Secret di Kubernetes. Utilizza i secret di Kubernetes per sostituire i segnaposto di configurazione all'avvio del container.
Passaggi successivi
- Scopri le best practice per la creazione e l'utilizzo dei container.
- Leggi le best practice per l'esecuzione di applicazioni Kubernetes con ottimizzazione dei costi su GKE.
- Migrazione delle VM in container con Migrate to Containers
- Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Visita il nostro Cloud Architecture Center.