Migrer des applications Linux vers des conteneurs

L'intégration de Migrate to Containers à Cloud Code vous permet de moderniser les composants d'application Linux exécutés sur des machines virtuelles (VM) et de générer des artefacts pouvant être déployés sur Google Kubernetes Engine et Cloud Run, directement dans votre IDE, à l'aide d'une machine Linux.

Dans ce guide, vous allez apprendre à migrer une application existante vers un conteneur GKE à l'aide de l'extension Cloud Code dans votre IDE sur une machine Linux.

Ce guide s'adresse aux développeurs sur une machine Linux qui ont des connaissances pratiques de VS Code, qui connaissent Google Cloudet qui disposent d'une VM exécutant leur composant d'application.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Google Kubernetes Engine API.

    Enable the API

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

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Google Kubernetes Engine API.

    Enable the API

  8. Installez l'extension Cloud Code si ce n'est pas déjà fait.
  9. Créez et configurez un cluster GKE.
  10. Assurez-vous de savoir quel type de migration vous souhaitez effectuer. Pour en savoir plus sur les charges de travail compatibles, consultez la section Consulter les systèmes d'exploitation, charges de travail et versions de Kubernetes compatibles.
  11. Préparez vos machines source et locales à la modernisation. Cloud Code n'est compatible qu'avec Linux pour la modernisation.

Ajouter une source de replatforming

Dans cette section, vous installez la CLI du client de découverte Migration Center (mcdc) et d'autres outils Migrate to Containers sur votre ordinateur local, si ce n'est pas déjà fait, et ajoutez une source de replatforming en procédant comme suit:

  1. Dans la barre d'activité de votre IDE, cliquez sur Cloud Code, puis développez l'explorateur Replatform Apps (Replatformer des applications).

  2. Si vous utilisez Migrate to Containers dans Cloud Code pour la première fois, vous devez installer la CLI mcdc et d'autres outils Migrate to Containers sur votre ordinateur local en cliquant sur Install tools (Installer les outils). Sinon, passez à l'étape suivante.

  3. Cliquez sur Modifier les sources. Un fichier mcdc-sources.json vide s'ouvre. Ajoutez vos sources au format suivant:

    [
      {
        "title": "SOURCE_NAME",
        "host": "HOSTNAME",
        "user": "USER",
        "identityFile":"IDENTITY-FILE-PATH"
      }
    ]
    
  4. Pour que les sources apparaissent dans l'explorateur Replatform Apps (Replatformer les applications), maintenez le pointeur sur l'explorateur Replatform Apps (Replatformer les applications), puis cliquez sur le bouton cached (mise en cache) Reload sources (Actualiser les sources) qui s'affiche.

Facultatif: Générer une évaluation de l'adéquation

Avant de tenter de migrer votre application vers un conteneur, nous vous recommandons de générer une évaluation de l'adéquation de votre source, qui vous indique si votre source est capable de migrer un conteneur.

Pour générer une évaluation de l'adéquation de votre source, effectuez un clic droit dessus, puis sélectionnez Évaluer la source. Le terminal de votre IDE s'ouvre et affiche les journaux de l'évaluation de votre source.

Une fois l'évaluation terminée, mcdc génère un rapport d'évaluation de la compatibilité dans votre IDE.

Si vos sources sont considérées comme adaptées, vous pouvez migrer votre application.

Replatformer votre application

Cloud Code crée un espace de travail dédié pour chaque migration de plate-forme et vous permet d'exécuter les tâches Copier, Analyser et Générer dans l'espace de travail pour automatiser les étapes de migration de plate-forme. Si vous exécutez la tâche Générer sans exécuter d'abord les tâches Copier et Analyser, elles s'exécutent automatiquement avant de générer des artefacts.

Les sections suivantes vous guident tout au long de ces tâches et vous expliquent comment migrer votre application vers un conteneur à l'aide de Cloud Code.

Pour en savoir plus sur le cycle de vie d'une migration, consultez la page Architecture de la CLI Migrate to Containers.

Créer un espace de travail de migration

Avant de créer un espace de travail de replatforming, vous devez savoir quels paramètres de migration sélectionner pour votre type de migration. Pour en savoir plus sur les paramètres de chaque type de migration, consultez la section Créer un plan de migration.

Pour créer un espace de travail de migration avec des artefacts dans votre IDE, procédez comme suit:

  1. Dans l'explorateur Replatform Apps (Replatformer des applications), effectuez un clic droit sur la source que vous souhaitez migrer, puis cliquez sur Replatform (Replatformer).

  2. Dans la liste des options qui s'affichent dans le menu, sélectionnez un parcours de migration.

  3. Sélectionnez un nouveau répertoire d'espace de travail dans lequel migrer votre application, cliquez sur OK, puis sur Create replatform workspace (Créer un espace de travail de migration).

  4. Sélectionnez les paramètres de migration pour votre type de migration.

  5. Facultatif: Si vous avez sélectionné le type de migration WebSphere et que vous souhaitez utiliser un analyseur de binaires, sélectionnez le fichier binaryAppScanner.jar.

    La génération de l'espace de travail prend quelques secondes. Votre nouveau répertoire d'espace de travail s'ouvre dans une nouvelle fenêtre de votre IDE.

Copier des fichiers depuis votre VM vers votre espace de travail

Pour copier les fichiers de votre VM vers votre espace de travail dans votre IDE, procédez comme suit:

  1. Facultatif: La CLI mcdc applique des filtres pour réduire la taille de la copie, mais vous pouvez modifier le fichier filters.txt pour réduire davantage la taille de la copie. Pour savoir comment réduire la taille de la copie, consultez la section Réduire la taille du système de fichiers copié.

  2. Ouvrez la palette de commandes en appuyant sur Ctrl+Maj+P.

  3. Recherchez et sélectionnez Tasks: Run Task (Tâches : exécuter une tâche), puis m2c: Copy (m2c : copier). La copie des fichiers peut prendre quelques minutes.

Analyser le système de fichiers de la VM et générer un plan de migration

Pour analyser le système de fichiers de la VM et générer un plan de migration, procédez comme suit:

  1. Ouvrez la palette de commandes en appuyant sur Ctrl+Maj+P.

  2. Recherchez et sélectionnez Tasks: Run Task (Tâches : exécuter une tâche), puis m2c: Analyze (m2c : Analyser).

    Si la tâche d'analyse échoue, vous devez modifier vos paramètres de migration via le fichier analyze-args.ini. Ce fichier contient une ligne par paramètre, avec la documentation associée.

    Une fois l'analyse terminée, Cloud Code crée un répertoire appelé migration-plan qui contient les résultats de l'analyse sous la forme d'un fichier config.yaml. Vous pouvez modifier ce fichier pour modifier la manière dont vos artefacts sont générés.

    La structure de votre fichier config.yaml diffère en fonction de votre type de migration. Pour en savoir plus sur les types de migrations compatibles, consultez les pages suivantes:

Générer des artefacts

Pour générer des artefacts, vous devez exécuter la tâche Generate (Générer) dans votre IDE. Si vous n'avez pas encore exécuté les tâches Copier et Analyser dans les sections précédentes, la tâche Générer les exécute automatiquement avant de générer des artefacts.

Pour générer les artefacts, procédez comme suit:

  1. Ouvrez la palette de commandes en appuyant sur Ctrl+Maj+P.

  2. Recherchez et sélectionnez Tasks: Run Task (Tâches : exécuter une tâche), puis m2c: Generate (m2c : générer). Cela génère les artefacts dans le répertoire src, qui contient un fichier skaffold.yaml utilisé pour créer et déployer une image de conteneur. Chaque type de migration génère des artefacts différents, mais tous les types de migration créent généralement un ou plusieurs fichiers Dockerfile et une spécification de déploiement GKE référencée par skaffold.yaml.

    Une fois la génération d'artefacts terminée, vous avez terminé de migrer votre application.

  3. Facultatif: Si vous souhaitez modifier le plan de migration, modifiez votre fichier config.yaml et exécutez à nouveau la tâche m2c: Generate (Générer).

    Sinon, si vous êtes satisfait des résultats de la replate-forme, vous pouvez exécuter votre application dans un conteneur GKE.

Exécuter votre application dans un conteneur GKE

Dans cette section, vous exécutez votre application replate-forme dans un conteneur GKE, consultez les journaux de votre application en cours d'exécution et nettoyez les ressources.

Si vous n'avez pas encore créé et configuré de cluster GKE, suivez les instructions de la section Créer et configurer un cluster GKE dans Cloud Code pour VS Code.

Pour en savoir plus sur le débogage des applications GKE, consultez Déboguer des applications Kubernetes avec Cloud Code pour VS Code.

Exécuter et afficher votre application

Maintenant que vous êtes prêt, vous pouvez exécuter votre application et l'afficher en direct. Cloud Code surveille les modifications apportées à votre système de fichiers afin que vous puissiez modifier et réexécuter votre application en temps réel.

Pour exécuter votre application, procédez comme suit :

  1. Dans la barre d'état Cloud Code, cliquez sur le nom du projet actif.

    Nom du projet actif dans la barre d'état

  2. Dans le menu "Démarrage rapide" qui s'affiche, sélectionnez Exécuter sur Kubernetes.

  3. Confirmez si vous souhaitez utiliser le contexte actif du cluster ou basculer vers un autre.

  4. Si vous y êtes invité, choisissez un registre d'images vers lequel transférer les images. Si vous créez un registre d'images à l'aide de gcr.io/PROJECT_ID, assurez-vous qu'il se trouve dans le même projet que votre cluster.

    Une fenêtre de résultat s'affiche, dans laquelle vous pouvez suivre la progression de votre application en cours d'exécution. Un flux en direct des journaux des pods en cours d'exécution s'affiche également dans la sortie du terminal.

  5. Une fois votre application exécutée sur Kubernetes, la fenêtre de résultat affiche une adresse IP. Pour utiliser cette adresse IP associée afin d'accéder à votre application, appuyez sur Ctrl et cliquez sur l'adresse.

Une fois votre session de débogage lancée, le volet Sessions de développement affiche la vue structurée de la journalisation. Lorsqu'une tâche démarre, elle s'affiche avec un demi-cercle en rotation progress_activity.

Si une tâche aboutit, une coche check_circle s'affiche à côté de l'étape correspondante.

Pour afficher les détails d'une étape, cliquez dessus dans le volet Session de développement. Le volet "Résultat" affiche l'étape dans la sortie de la journalisation.

Effectuer un nettoyage

Une fois votre application arrêtée, toutes les ressources Kubernetes déployées pendant l'exécution sont automatiquement supprimées.

Pour éviter que les autres ressources utilisées dans ce démarrage rapide soient facturées sur votre compte, veillez à supprimer le projet ou le cluster que vous avez créés si vous souhaitez réutiliser le projet.

Pour supprimer le cluster :

  1. Cliquez sur Cloud Code, puis développez l'explorateur Kubernetes.
  2. Pointez sur le nom de votre cluster, puis cliquez sur open_in_new (Ouvrir dans la console Google Cloud) Ouvrir dans la console Google Cloud.
  3. Cliquez sur Supprimer et de nouveau sur Supprimer.

Pour supprimer votre projet (et les ressources associées, y compris les clusters) :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Pour supprimer tous les fichiers locaux créés lors du processus de migration:

  1. Ouvrez la palette de commandes (Ctrl+Maj+P).
  2. Recherchez et sélectionnez Tasks: Run Task (Tâches : exécuter la tâche), puis m2c: Cleanup (m2c : nettoyage).