Esegui la migrazione delle applicazioni WebSphere ai container con Migrate to Containers

Last reviewed 2021-12-22 UTC

Questo documento è rivolto ai proprietari di applicazioni e ai Cloud Architect che intendono eseguire la migrazione delle applicazioni Java in esecuzione su IBM WebSphere Application Server (WAS) ai container in esecuzione in Google Kubernetes Engine (GKE) o GKE Enterprise. Ti guida nel processo di migrazione delle applicazioni tradizionali WAS ai container da un ambiente di origine on-premise, in un ambiente di hosting privato o in un altro cloud provider. Evidenzia inoltre i vantaggi dell'utilizzo di Migrate to Containers per automatizzare la migrazione.

Devi avere conoscenze preliminari su WebSphere prima di provare a eseguire la migrazione delle VM WebSphere nei container con Migrate to Containers.

Questo documento contiene anche punti importanti da considerare quando pianifichi la migrazione di un'applicazione WAS ai container. Fa parte di una serie sulla migrazione a Google Cloud. Se ti interessa una panoramica della serie, consulta Migrazione a Google Cloud: scelta del percorso di migrazione.

Leggi questo documento se prevedi di eseguire la migrazione di applicazioni tradizionali WAS che eseguono un WAS compatibile su un sistema operativo compatibile, come Linux, da un ambiente di origine supportato a un ambiente GKE o GKE Enterprise con Migrate to Containers. Questi ambienti di origine possono includere quanto segue:

Migrate to Containers automatizza l'uso del IBM Migration Toolkit for Application Binaries per scoprire, ispezionare ed eseguire la migrazione di tutte le tue applicazioni tradizionali WAS nelle tue macchine virtuali tradizionali WAS. Quindi suddivide le applicazioni tradizionali WAS in singoli container tradizionali di WebSphere.

Migrate to Containers scopre, ispeziona, migra e suddivide tutte le applicazioni tradizionali WAS in singoli container WebSphere.

La migrazione di applicazioni tradizionali WAS utilizzando Migrate to Containers richiede un ingombro minimo (minimo 1 GB di RAM e 2 GB di dimensione delle immagini) e costi di licenza ridotti (fino al 70% di sconto su un abbonamento a WAS Network Deployment).

Eseguendo la migrazione di applicazioni tradizionali WAS con Migrate to Containers, approfitti di diversi aspetti dell'ambiente containerizzato. I costi delle licenze ridotti di cui abbiamo parlato in precedenza. Esiste anche la possibilità di rendere a prova di futuro la modernizzazione in framework cloud integrati creando container WAS Liberty o Open Liberty per le tue applicazioni.

WAS Liberty è un runtime di produzione leggero per lo sviluppo e il 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à WAS Network Deployment Manager ai seguenti prodotti:

Il seguente diagramma mostra in che modo GKE o GKE Enterprise gestisce le funzionalità centralizzate (ad es. alta disponibilità, posizionamento dei carichi di lavoro e configurazione centralizzata), precedentemente gestite 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 tramite processi CI/CD.

La migrazione trasferisce le funzioni di WAS Network Deployment Manager a Kubernetes, Anthos Service Mesh, Config Sync e Google Cloud Operations Gli ambienti WAS Network Deployment e WAS Base possono migrare in container WAS Liberty o Open Liberty.

La migrazione delle applicazioni tradizionali WAS ai container con Migrate to Containers è uno dei passaggi possibili nel percorso di modernizzazione del carico di lavoro. La migrazione ti aiuta a trasformare le applicazioni in modo che vengano eseguite in un ambiente cloud ed evitare le costose riscritture necessarie per modernizzare le applicazioni tradizionali WAS.

I candidati ideali per la migrazione sono le applicazioni in esecuzione su WebSphere Network Deployment, WebSphere Base o versioni Java supportate per le quali la modernizzazione tramite una riscrittura completa è troppo costosa in termini di risorse o non è possibile. Per scoprire di più sui candidati ideali per la 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 dall'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 con quattro fasi.

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

  1. Valuta: in questa fase devi valutare l'ambiente di origine e le applicazioni di cui vuoi eseguire la migrazione a Google Cloud, nonché quali applicazioni tradizionali WAS sono adatte alla migrazione.
  2. Pianifica: in questa fase creerai l'infrastruttura di base per Migrate to Containers, ad esempio eseguendo il provisioning della gerarchia delle risorse e configurando l'accesso alla rete.
  3. Deployment: in questa fase, esegui la migrazione delle applicazioni tradizionali WAS 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 di origine e le applicazioni

Nella fase di valutazione, raccogli informazioni sull'ambiente di origine e sulle applicazioni di cui vuoi eseguire la migrazione. Ciò consente di dimensionare al meglio le risorse necessarie per la migrazione e l'ambiente di destinazione.

Nella fase di valutazione:

  1. Crea un inventario completo delle tue applicazioni.
  2. Cataloga le applicazioni in base alle loro proprietà e dipendenze.
  3. Addestra e istruisci i tuoi team su Google Cloud.
  4. Crea un esperimento e un proof of concept su Google Cloud.
  5. Calcolare il costo totale di proprietà (TCO) dell'ambiente di destinazione.
  6. Scegli per prime le applicazioni di cui vuoi eseguire la migrazione.

Le seguenti sezioni si basano su Migrazione a Google Cloud: valutazione e rilevamento 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.

Crea i tuoi inventari

Per definire l'ambito della migrazione, devi conoscere il tuo ambiente WAS tradizionale. Per comprendere il tuo ambiente, raccogli informazioni sulle tue applicazioni e sulle loro dipendenze.

Creazione di un inventario delle app descrive come creare un inventario dei carichi di lavoro in un ambiente WAS tradizionale e le loro dipendenze. Segui queste indicazioni e crea i tuoi inventari. Al termine, continua a leggere questo documento.

Dopo avere 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 sue applicazioni tradizionali WAS con Migrate to Containers.

Prima di valutare il tuo ambiente WAS per la migrazione, completa le operazioni descritte in Migrazione delle VM nei container con Migrate to Containers e Migrazione a Google Cloud: valutazione e scoperta dei carichi di lavoro. Al termine, completa l'inventario dei tuoi carichi di lavoro.

Per completare l'inventario dei tuoi carichi di lavoro, considera quanto segue:

  • Sistemi operativi in esecuzione nelle tue 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 tra quelli elencati in Sistemi operativi e versioni di Kubernetes compatibili.
  • Versioni WAS che eseguono le tue applicazioni: raccogli informazioni sulle versioni WAS che eseguono le tue applicazioni e assicurati che siano compatibili con Migrate to Containers. Migrate to Containers supporta la migrazione delle applicazioni WAS tradizionali (WebSphere Application Server 8.5.5.x e versioni tradizionali di WebSphere Application Server 9.0.5.x) sia per gli ambienti WAS di base che per quelli di deployment di rete WAS.

  • Applicazioni di cui è stato eseguito il deployment in WAS: valuta quali applicazioni è stato eseguito il deployment in ogni WAS. Quindi mappa le dipendenze tra le tue applicazioni e tra le tue 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 tradizionali WAS sono adatte alla migrazione con Migrate to Containers. Migrate to Containers fornisce uno strumento di valutazione dell'idoneità che puoi eseguire sulle applicazioni tradizionali WAS per calcolare il punteggio di idoneità. Migrate to Containers ha una serie di requisiti minimi per eseguire correttamente la migrazione delle applicazioni tradizionali WAS. Inoltre, presenta alcune limitazioni quando automatizza la migrazione delle applicazioni tradizionali WAS. Puoi risolvere queste limitazioni configurando manualmente le applicazioni quando esegui la migrazione.

  • Autenticazione: WAS fornisce diversi meccanismi di autenticazione, ad esempio SWAM (Simple WebSphere Authentication Mechanism) (SWAM), Lightweight di terze parti Authentication (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 di solito dell'autenticazione richiede 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 informatico aziendale, il server applicazioni e le applicazioni. Migrate to Containers esegue automaticamente la migrazione della configurazione JDBC nel container WAS modernizzato. Assicurati di aver abilitato la connettività tra le applicazioni di cui è stata eseguita la migrazione e i datastore esistenti.

  • Messaggistica (JMS): WAS supporta la comunicazione asincrona tramite l'interfaccia di programmazione di Java Messaging Service (JMS). Migrate to Containers esegue automaticamente la migrazione delle informazioni di configurazione di JMS. Tuttavia, è necessario eseguire una migrazione manuale per configurazioni specifiche, come SSL.

  • Posta:WAS supporta l'invio di email tramite l'API JavaMail. Migrate to Containers non esegue automaticamente la migrazione dei file di configurazione 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 il resto delle 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 getta le basi

Dopo aver seguito le indicazioni in Pianificazione e creazione delle basi 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 del 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 durante la procedura di 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 principale di un bucket Cloud Storage:

      gsutil cp binaryAppScanner.jar gs://BUCKET_NAME
      

      Dove BUCKET_NAME è il nome del bucket Cloud Storage.

Configurare Migrate to Containers descrive come eseguire il provisioning e configurare Migrate to Containers e nelle sue dipendenze. Segui queste indicazioni per configurare Migrate to Containers.

Al termine, continua a leggere questo documento.

Esegui la migrazione delle tue applicazioni tradizionali WAS ai container

Per scoprire di più sulla fase di deployment della migrazione, segui le indicazioni in Migrazione delle VM nei 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 di migrazione 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 VM. Hai raccolto queste informazioni eseguendo le attività descritte nella sezione Creare i tuoi inventari all'interno 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 di quali applicazioni WAS tradizionali vuoi eseguire la migrazione da un ambiente di origine a un ambiente di destinazione supportato, crea un piano di migrazione. Ad esempio, puoi configurare la posizione in cui archiviare i dati permanenti.

    Per ulteriori informazioni 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 per il flag dell'intent. Utilizzi "Immagine" per via della natura stateless del carico di lavoro.

  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, rivedi e personalizza ogni piano di migrazione per assicurarti che sia adatto ai tuoi requisiti. Per maggiori informazioni sulla personalizzazione dei piani di migrazione, vedi 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 li inserisce in un bucket Cloud Storage. Migrate to Containers genera inoltre 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 di cui è stata eseguita la migrazione, Migrate to Containers crea una cartella contenente il contesto di Docker, i programmi binari dell'applicazione, uno script di compilazione e uno script di configurazione WAS.

Puoi monitorare l'avanzamento degli artefatti dei container che crei e migri. Per ulteriori informazioni sul monitoraggio di una migrazione, consulta Monitoraggio dei carichi di lavoro di cui è stata eseguita la migrazione.

Verificare e convalidare le risorse e i descrittori generati

Dopo aver generato gli artefatti dei container e i descrittori di deployment con Migrate to Containers, rivedi e aggiorna questi artefatti e descrittori per assicurarti che soddisfino i tuoi requisiti, ad esempio i seguenti aspetti:

  • Descrittori delle immagini container: esamina i descrittori delle immagini container generati con Migrate to Containers e verifica che siano adeguati al carico di lavoro dei container. Se devi aggiornare i descrittori delle immagini dei 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 maggiori informazioni sulla revisione degli artefatti dei container e dei descrittori di deployment, consulta Revisione dei file di deployment generati.

Esegui il deployment e la convalida dei carichi di lavoro containerizzati su GKE o GKE Enterprise

Quando i descrittori di deployment per i tuoi carichi di lavoro sono pronti, puoi:

  1. Crea un'immagine container di applicazione: crea un'immagine container di 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 di applicazioni tradizionale WAS, 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 di cui è stata eseguita la migrazione: 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 pipeline e processi di deployment. Se al momento non disponi di un processo di deployment automatico e stai eseguire il deployment manuale dei carichi di lavoro, ti consigliamo di eseguire la migrazione dai deployment manuali a quelli automatici.

Disinstalla 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 il tuo ambiente dopo la migrazione

Per completare la migrazione, consulta le linee guida in Ottimizzare l'ambiente dopo la migrazione.

Puoi eseguire queste ottimizzazioni WAS specifiche 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, consigliamo di esternalizzare la configurazione WAS nelle proprietà e di utilizzare ConfigMap per impostarle all'avvio del container.
  • Protezione dei dati sensibili: le password e tutti gli altri dati sensibili devono essere inseriti nei Secret di Kubernetes. Utilizza i secret di Kubernetes per sostituire i segnaposto di configurazione all'avvio del container.

Passaggi successivi