Replatforming delle applicazioni Linux nei container

L'integrazione di Migrazione ai container con Cloud Code consente di modernizzare i componenti delle applicazioni Linux in esecuzione su macchine virtuali (VM) e di generare artefatti di cui è possibile eseguire il deployment in Google Kubernetes Engine e Cloud Run, direttamente nel tuo IDE, utilizzando una macchina Linux.

In questa guida imparerai come eseguire il replatforming di un'applicazione esistente in un container GKE utilizzando l'estensione Cloud Code nel tuo IDE su una macchina Linux.

Questa guida è destinata agli sviluppatori di macchine Linux che conoscono VS Code, hanno familiarità con Google Cloud e hanno una VM che esegue il proprio componente dell'applicazione.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva l'API Google Kubernetes Engine.

    Abilita l'API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva l'API Google Kubernetes Engine.

    Abilita l'API

  8. Se non l'hai ancora fatto, installa l'estensione Cloud Code.
  9. Crea e configura un cluster GKE.
  10. Assicurati di sapere che tipo di migrazione vuoi eseguire. Per ulteriori informazioni sui carichi di lavoro supportati, consulta Esaminare le versioni di Kubernetes, carichi di lavoro e sistema operativo compatibili.
  11. Prepara le macchine di origine e locali per la modernizzazione. Cloud Code supporta solo Linux per la modernizzazione.

Aggiungi un'origine replatforming

In questa sezione, installerai l'interfaccia a riga di comando del client predittivo di Migration Center (mcdc) e altri strumenti di Migrate to Containers sulla tua macchina locale, se non l'hai già fatto, e aggiungerai un'origine replatform seguendo questi passaggi:

  1. Nella barra delle attività dell'IDE, fai clic su Cloud Code ed espandi Explorer Replatform Apps.

  2. Se è la prima volta che utilizzi Migrate to Containers in Cloud Code, devi installare l'interfaccia a riga di comando mcdc e altri strumenti Migrate to Containers sulla tua macchina locale facendo clic su Installa strumenti. In caso contrario, vai al passaggio successivo.

  3. Fai clic su Modifica origini. Verrà aperto un file mcdc-sources.json vuoto. Aggiungi le tue origini nel seguente formato:

    [
      {
        "title": "SOURCE_NAME",
        "host": "HOSTNAME",
        "user": "USER",
        "identityFile":"IDENTITY-FILE-PATH"
      }
    ]
    
  4. Per vedere le origini nell'Explorer Replatform Apps, tieni il puntatore sopra l'Explorer Replatform Apps e fai clic sul pulsante Ricarica origini memorizzati nella cache che viene visualizzato.

(Facoltativo) Genera una valutazione di idoneità

Prima di tentare di eseguire il replatforming dell'applicazione in un container, ti consigliamo di generare una valutazione di idoneità dell'origine, che ti informa se l'origine è in grado di utilizzare la piattaforma di replatforming di un container.

Per generare una valutazione di idoneità della fonte, fai clic con il tasto destro del mouse sulla fonte e seleziona Valuta fonte. Il terminale nel tuo IDE viene aperto e vengono visualizzati i log della valutazione dell'origine.

Al termine della valutazione, mcdc genera un report di valutazione dell'idoneità nel tuo IDE.

Se le tue fonti risultano essere idonee, puoi effettuare il replatforming della tua applicazione.

Replatforming dell'applicazione

Cloud Code crea un'area di lavoro dedicata per ogni replatforming e consente di eseguire le attività Copia, Analizza e Genera nell'area di lavoro per automatizzare i passaggi relativi al replatforming. Se esegui l'attività Genera senza prima eseguire le attività Copia e Analizza, queste verranno eseguite automaticamente prima di generare gli artefatti.

Le sezioni seguenti illustrano l'esecuzione di ciascuna di queste attività e il replatforming della tua applicazione in un container utilizzando Cloud Code.

Per scoprire di più sul ciclo di vita di una migrazione, vedi Eseguire la migrazione dell'architettura dell'interfaccia a riga di comando di Containers.

Crea una nuova area di lavoro di replatforming

Prima di creare una nuova area di lavoro di replatforming, devi sapere quali parametri di migrazione selezionare per il tuo tipo di migrazione. Per ulteriori informazioni sui parametri per ciascun tipo di migrazione, consulta Creare un piano di migrazione.

Per creare una nuova area di lavoro di replatforming con elementi nel tuo IDE, segui questi passaggi:

  1. Nell'Explorer Replatform Apps, fai clic con il tasto destro del mouse sull'origine di cui vuoi eseguire il replatforming, quindi fai clic su Replatforming.

  2. Dall'elenco di opzioni che appaiono nel menu, seleziona un percorso di replatforming.

  3. Seleziona una nuova directory dell'area di lavoro in cui eseguire il replatforming dell'applicazione, fai clic su OK e poi su Crea area di lavoro con replatforming.

  4. Seleziona i parametri per il tuo tipo di migrazione.

  5. (Facoltativo) Se hai selezionato il tipo di migrazione WebSphere e vuoi utilizzare uno scanner binario, seleziona il file binaryAppScanner.jar.

    La generazione dell'area di lavoro richiede alcuni secondi. La nuova directory dell'area di lavoro viene aperta in una nuova finestra del tuo IDE.

Copia i file dalla VM all'area di lavoro

Per copiare i file dalla VM all'area di lavoro nel tuo IDE, segui questi passaggi:

  1. (Facoltativo) L'interfaccia a riga di comando mcdc applica filtri per ridurre le dimensioni della copia, ma puoi modificare il file filters.txt per ridurre ulteriormente le dimensioni della copia. Per informazioni su come ridurre le dimensioni della copia, consulta Ridurre le dimensioni del file system copiato.

  2. Apri la tavolozza dei comandi premendo Ctrl+Shift+P.

  3. Cerca e seleziona Tasks: Run Task, quindi seleziona m2c: Copy. La copia dei file potrebbe richiedere alcuni minuti.

Analizza il file system delle VM e genera un piano di migrazione

Per analizzare il file system delle VM e generare un piano di migrazione, segui questi passaggi:

  1. Apri la tavolozza dei comandi premendo Ctrl+Shift+P.

  2. Cerca e seleziona Tasks: Run Task, quindi seleziona m2c: Analyze.

    Se l'attività di analisi non riesce, devi modificare i parametri di migrazione tramite il file analyze-args.ini. Questo file contiene una riga per parametro con la documentazione di accompagnamento sul parametro.

    Una volta completata l'analisi, Cloud Code crea una directory denominata migration-plan che contiene i risultati dell'analisi sotto forma di file config.yaml. Puoi modificare questo file per cambiare il modo in cui vengono generati gli artefatti.

    La struttura del file config.yaml varia in base al tipo di migrazione. Per ulteriori informazioni sui tipi di migrazione supportati, consulta le pagine seguenti:

Creazione degli artefatti

Per generare artefatti, devi eseguire l'attività Generate (Genera) nel tuo IDE. Se non hai già eseguito le attività Copia e Analizza nelle sezioni precedenti, l'attività Genera le esegue automaticamente entrambe prima di generare gli artefatti.

Per generare gli artefatti, segui questi passaggi:

  1. Apri la tavolozza dei comandi premendo Ctrl+Shift+P.

  2. Cerca e seleziona Tasks: Run Task, quindi seleziona m2c:Generate (m2c: genera). Questo genera gli artefatti nella directory src, che contiene un file skaffold.yaml utilizzato per creare ed eseguire il deployment di un'immagine container. Ogni tipo di migrazione genera artefatti diversi, ma tutti i tipi di migrazione in genere creano uno o più file Docker e una specifica di deployment GKE a cui skaffold.yaml fa riferimento.

    Una volta completata la generazione degli artefatti, il replatforming della tua applicazione è terminato.

  3. (Facoltativo) Se vuoi cambiare il piano di migrazione, modifica il file config.yaml ed esegui di nuovo l'attività m2c: Genera.

    Se i risultati del replatforming ti soddisfano, puoi procedere con l'esecuzione dell'applicazione in un container GKE.

Esegui l'applicazione in un container GKE

In questa sezione eseguirai l'applicazione con replatforming in un container GKE, visualizzerai i log dell'applicazione in esecuzione e ripulirai le risorse.

Se non hai ancora creato e configurato un cluster GKE, segui le istruzioni in Creare e configurare un cluster GKE in Cloud Code for VS Code.

Per saperne di più sul debug delle applicazioni GKE, consulta Debug delle applicazioni Kubernetes con Cloud Code for VS Code.

Esegui e visualizza l'applicazione

Ora che è tutto pronto, puoi eseguire la tua applicazione e vederla online. Cloud Code monitora le modifiche nel file system, così puoi modificare ed eseguire nuovamente l'app in tempo reale.

Per eseguire l'applicazione, segui questi passaggi:

  1. Nella barra di stato di Cloud Code, fai clic sul nome del progetto attivo.

    Nome progetto attivo nella barra di stato

  2. Nel menu di scelta rapida visualizzato, seleziona Esegui su Kubernetes.

  3. Conferma se utilizzare il contesto attuale del cluster o passare a un altro.

  4. Se richiesto, scegli un registro di immagini a cui eseguire il push. Se stai creando un nuovo registro di immagini utilizzando gcr.io/PROJECT_ID, assicurati che il registro di immagini si trovi nello stesso progetto del cluster.

    Viene visualizzata una finestra di output in cui puoi monitorare l'avanzamento dell'applicazione in esecuzione. Nell'output del terminale vedrai anche un live streaming dei log dei pod in esecuzione.

  5. Quando l'applicazione è in esecuzione su Kubernetes, la finestra di output mostra un indirizzo IP. Per utilizzare questo indirizzo IP collegato per accedere alla tua applicazione, premi Ctrl e fai clic sull'indirizzo.

Dopo l'avvio della sessione di debug, il riquadro Sessioni di sviluppo mostra la visualizzazione del logging strutturato. Quando un'attività inizia, viene visualizzata con un semicerchio rotante progress_activity.

Se un'attività ha esito positivo, accanto al passaggio viene visualizzato un segno di spunta check_circle.

Per visualizzare i dettagli di un passaggio, fai clic sul passaggio nel riquadro Sessione di sviluppo. Il riquadro Output visualizza il passaggio nell'output di logging.

Esegui la pulizia

Dopo aver arrestato l'applicazione, tutte le risorse Kubernetes di cui è stato eseguito il deployment durante l'esecuzione vengono eliminate automaticamente.

Per evitare che al tuo account vengano addebitati costi relativi ad altre risorse utilizzate in questa guida rapida, assicurati di eliminare il progetto o di eliminare il cluster che hai creato se vuoi riutilizzare il progetto.

Per eliminare il cluster:

  1. Fai clic su Cloud Code ed espandi Explorer Kubernetes.
  2. Tieni il puntatore sul nome del cluster e fai clic su open_in_new Apri nella console Google Cloud.
  3. Fai clic su Elimina e quindi su Elimina.

Per eliminare il progetto (e le risorse associate, inclusi i cluster):

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Per eliminare tutti i file locali creati durante il processo di replatforming:

  1. Apri la tavolozza dei comandi (Ctrl+Shift+P).
  2. Cerca e seleziona Tasks: Run Task, quindi seleziona m2c: Cleanup.