Replatforming delle applicazioni Linux in container

L'integrazione di Migrate to Containers con Cloud Code offre la possibilità di modernizzare i componenti delle applicazioni Linux in esecuzione su macchine virtuali (VM) e 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 scoprirai 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 è rivolta agli sviluppatori su macchine Linux che hanno una conoscenza pratica di VS Code, che hanno familiarità con Google Cloud e una VM che esegue il 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. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

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

  4. Attiva l'API Google Kubernetes Engine.

    Abilita l'API

  5. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  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 quale tipo di migrazione vuoi eseguire. Per maggiori informazioni sui carichi di lavoro supportati, consulta Esamina le versioni compatibili del sistema operativo, dei carichi di lavoro e di Kubernetes.
  11. Prepara la modernizzazione delle macchine di origine e locali. Cloud Code supporta solo Linux per la modernizzazione.

Aggiungi un'origine di replatforming

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

  1. Nella barra delle attività dell'IDE, fai clic su Cloud Code, quindi espandi lo strumento di esplorazione App di replatforming.

  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. Si apre un file mcdc-sources.json vuoto. Aggiungi le origini nel seguente formato:

    [
      {
        "title": "SOURCE_NAME",
        "host": "HOSTNAME",
        "user": "USER",
        "identityFile":"IDENTITY-FILE-PATH"
      }
    ]
    
  4. Per visualizzare le origini nell'Explorer App di replatforming, tieni il puntatore del mouse sull'Explorer App di replatforming e fai clic sul pulsante Ricarica origini memorizzato nella cache.

(Facoltativo) Genera una valutazione di idoneità

Prima di tentare di eseguire il replatforming della tua applicazione in un container, ti consigliamo di generare una valutazione di idoneità dell'origine, che ti indicherà se la tua origine è in grado di eseguire il replatforming di un container.

Per generare una valutazione di idoneità della tua origine, fai clic con il tasto destro del mouse sull'origine e seleziona Valuta origine. In questo modo si apre il terminale nel tuo IDE e vengono visualizzati i log della valutazione dell'origine.

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

Se le tue origini risultano essere Buoni risultati, significa che puoi eseguire 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à di copia, analisi e generazione nell'area di lavoro per automatizzare i passaggi del replatforming. Se esegui l'attività Genera senza prima aver eseguito le attività Copia e Analizza, queste vengono eseguite automaticamente prima di generare gli artefatti.

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

Per scoprire di più sul ciclo di vita di una migrazione, consulta Architettura dell'interfaccia a riga di comando della migrazione a 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 saperne di più sui parametri per ciascun tipo di migrazione, consulta Creare un piano di migrazione.

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

  1. Nell'Explorer App di replatforming, fai clic con il tasto destro del mouse sul codice sorgente per cui vuoi eseguire il replatforming, quindi fai clic su Replatforming.

  2. Dall'elenco delle opzioni che vengono visualizzate nel menu, seleziona un percorso di replatforming.

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

  4. Seleziona i parametri per il tipo di migrazione in uso.

  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 si apre in una nuova finestra dell'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 ridurne ulteriormente le dimensioni. Per informazioni su come ridurre le dimensioni della copia, vedi 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 della 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: Esegui attività, quindi seleziona m2c: Analizza.

    Se l'attività di analisi non va a buon fine, devi modificare i parametri di migrazione tramite il file analyze-args.ini. Questo file ha una riga per parametro con documentazione di accompagnamento sul parametro.

    Se l'analisi ha esito positivo, 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 la modalità di generazione degli artefatti.

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

Creazione degli artefatti

Per generare artefatti, devi eseguire l'attività 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:

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

  2. Cerca e seleziona Tasks: Run Task, quindi seleziona m2c: Genera. Questa operazione 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 di solito creano uno o più dockerfile e una specifica di deployment GKE a cui fa riferimento skaffold.yaml.

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

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

    In caso contrario, se i risultati del replatforming sono soddisfacenti, puoi eseguire l'applicazione in un container GKE.

Esegui l'applicazione in un container GKE

In questa sezione eseguirai l'applicazione di cui è stato eseguito il replatforming in un container GKE, visualizzerai i log dell'applicazione in esecuzione e pulirai le risorse.

Se non hai già 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 Eseguire il debug delle applicazioni Kubernetes con Cloud Code for VS Code.

Esegui e visualizza l'applicazione

Ora che la configurazione è completata, puoi eseguire la tua applicazione e visualizzarla in tempo reale. Cloud Code controlla la presenza di eventuali modifiche nel file system, così puoi modificare ed eseguire nuovamente l'app in tempo reale.

Per eseguire l'applicazione, procedi nel seguente modo:

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

    Nome del progetto attivo nella barra di stato

  2. Nel menu Selezione 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 in cui eseguire il push delle immagini. Se stai creando un nuovo registro di immagini utilizzando gcr.io/PROJECT_ID, assicurati che il registro delle immagini si trovi nello stesso progetto del tuo cluster.

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

  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.

Una volta avviata la sessione di debug, nel riquadro Sessioni di sviluppo viene visualizzata la visualizzazione del logging strutturato. Quando un'attività inizia, viene visualizzata con un semicerchio rotante progress_activity.

Se l'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 mostra il passaggio nell'output di logging.

Esegui la pulizia

Dopo l'interruzione dell'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 per altre risorse utilizzate in questa guida rapida, assicurati di eliminare il progetto o il cluster che hai creato se vuoi riutilizzare il progetto.

Per eliminare il cluster:

  1. Fai clic su Cloud Code ed espandi Kubernetes Explorer.
  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.