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 qui s'exécutent 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 à replatformer une application existante vers un conteneur GKE à l'aide de l'extension Cloud Code dans votre IDE sur une machine Linux.

Ce guide est destiné aux développeurs sur une machine Linux qui connaissent VS Code, sont familiarisés avec Google Cloudet disposent d'une VM exécutant le composant de leur 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 connaître le type de migration que vous souhaitez effectuer. Pour en savoir plus sur les charges de travail compatibles, consultez Examiner les systèmes d'exploitation, les charges de travail et les versions de Kubernetes compatibles.
  11. Préparez vos machines source et locale pour la modernisation. Cloud Code n'est compatible qu'avec Linux pour la modernisation.
  12. Ajouter une source de replatforming

    Dans cette section, vous allez installer la CLI du client de découverte Migration Center (mcdc) et d'autres outils Migrate to Containers sur votre machine locale, si ce n'est pas déjà fait, et ajouter une source de replatforming en suivant ces étapes :

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

    2. Si vous utilisez Migrate to Containers pour la première fois dans Cloud Code, vous devez installer la CLI mcdc et d'autres outils Migrate to Containers sur votre ordinateur local en cliquant sur 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 s'affichent dans l'explorateur Replatform Apps, pointez sur l'explorateur Replatform Apps, puis cliquez sur le bouton cached Reload sources (Recharger les sources) qui s'affiche.

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

    Avant de tenter de replatformer votre application dans 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 replatformer un conteneur.

    Pour générer une évaluation de l'adéquation de votre source, effectuez un clic droit sur celle-ci, 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 l'adéquation dans votre IDE.

    Si vos sources sont signalées comme bien adaptées, vous pouvez replatformer votre application.

    Migrer votre application vers une autre plate-forme

    Cloud Code crée un espace de travail dédié pour chaque replatforming 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 replatforming. Si vous exécutez la tâche Generate sans exécuter d'abord les tâches Copy et Analyze, elle les exécute automatiquement avant de générer des artefacts.

    Les sections suivantes vous guident dans l'exécution de chacune de ces tâches et dans la replatformisation de votre application vers un conteneur à l'aide de Cloud Code.

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

    Créer un espace de travail de replatforming

    Avant de créer un espace de travail de replatforming, vous devez connaître les 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 Créer un plan de migration.

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

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

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

    3. Sélectionnez un nouveau répertoire d'espace de travail dans lequel replate-former votre application, cliquez sur OK, puis sur Créer un espace de travail de replate-forme.

    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 scanner binaire, sélectionnez le fichier binaryAppScanner.jar.

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

    Copier des fichiers de 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 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 sélectionnez 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 dans le fichier analyze-args.ini. Ce fichier contient une ligne par paramètre, avec la documentation correspondante.

      Lorsque l'analyse réussit, 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 changer la façon 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 migration acceptés, 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 Copy (Copier) et Analyze (Analyser) dans les sections précédentes, la tâche Generate (Générer) les exécute automatiquement avant de générer les 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 sélectionnez 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 des artefacts terminée, vous avez terminé la replatformisation de votre application.

    3. Facultatif : Si vous souhaitez modifier le plan de migration, modifiez votre fichier config.yaml et réexécutez la tâche m2c: Generate.

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

    Exécuter votre application dans un conteneur GKE

    Dans cette section, vous allez exécuter votre application replatformée dans un conteneur GKE, afficher les journaux de votre application en cours d'exécution et nettoyer les ressources.

    Si vous n'avez pas encore créé ni 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 démarré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éé 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 .
    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 replatforming :

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