Eseguire la migrazione delle applicazioni WebSphere nei container con Migrate to Containers

Last reviewed 2021-12-22 UTC

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:

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.

Migrate to Containers rileva, ispeziona, migra e suddivide tutte le applicazioni tradizionali WAS in singoli container 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 trasferisce le funzioni di Network Deployment Manager di WAS a Kubernetes, Cloud Service Mesh, Config Sync e Google Cloud Operations Gli ambienti WAS Network Deployment e gli ambienti WAS Base possono migrare in container WAS Liberty o Open Liberty.

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:

Percorso di migrazione diviso in quattro fasi.

Il framework illustrato nel diagramma precedente si compone di quattro fasi:

  1. 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.
  2. 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.
  3. Deployment: in questa fase eseguirai la migrazione delle applicazioni WAS tradizionali dall'ambiente di origine a GKE o GKE Enterprise con Migrate to Containers.
  4. 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:

  1. Crea un inventario completo delle tue applicazioni.
  2. Cataloga le tue applicazioni in base alle loro proprietà e dipendenze.
  3. Addestra e forma i tuoi team su Google Cloud.
  4. Crea un esperimento e una proof of concept su Google Cloud.
  5. Calcola il costo totale di proprietà (TCO) dell'ambiente di destinazione.
  6. 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:

  1. Conferma il nome del bucket Cloud Storage.
  2. Carica il file binaryAppScanner.jar disponibile nell'ambito di IBM WebSphere Application Server Migration Toolkit for Application Binaries seguendo questi passaggi:

    1. Scarica il file del programma di installazione di binaryAppScannerInstaller.jar. Devi accettare il contratto di licenza nell'ambito del download.
    2. Esegui questo comando per estrarre il file binarioAppScanner.jar e accettare il contratto di licenza:

      java -jar binaryAppScannerInstaller.jar --acceptLicense --verbose
      
    3. 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.

    4. Vai alla directory /wamt, ad esempio:

      cd /tmp/wamt
      
    5. 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.

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:

  1. 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.
  2. 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.

  3. 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:

  1. 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
    
  2. Esegui il deployment delle applicazioni migrate nell'ambiente di destinazione: esegui il deployment delle applicazioni migrate:

    kubectl apply -f deployment_spec.yaml
    
  3. 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.

  4. 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:

  1. Assicurati di avere tutti i riferimenti agli artefatti di Migrate to Containers generati durante la migrazione.
  2. 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