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 à migrer une application existante vers un conteneur GKE à l'aide de l'extension Cloud Code de votre IDE sur une machine Linux.

Ce guide est destiné aux développeurs sur une machine Linux qui connaissent bien VS Code, connaissent Google Cloud et disposent d'une VM exécutant leur composant d'application.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activez l'API Google Kubernetes Engine

    Activer l'API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activez l'API Google Kubernetes Engine

    Activer l'API

  8. Si ce n'est pas déjà fait, installez l'extension Cloud Code.
  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 page Examiner les versions de système d'exploitation, de charges de travail et Kubernetes compatibles.
  11. Préparez vos machines sources et locales pour la modernisation. Cloud Code n'est compatible qu'avec Linux pour la modernisation.

Ajouter une source de changement de plate-forme

Dans cette section, vous allez installer la CLI du client de découverte du centre de migration (mcdc) et d'autres outils Migrate to Containers sur votre ordinateur local, si ce n'est pas déjà fait, et ajouter une source de changement de plate-forme 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 (Applications de changement de plate-forme).

  2. Si vous utilisez Migrate to Containers dans Cloud Code pour la première fois, vous devez installer la CLI mcdc et les 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 voir les sources s'afficher dans l'explorateur Replatform Apps (Applications de changement de plate-forme), placez votre pointeur sur l'explorateur Replatform Apps (Applications de changement de plate-forme), puis cliquez sur le bouton Reload sources (Actualiser les sources) en cache qui s'affiche.

Facultatif: générer une évaluation d'adéquation

Avant d'essayer de migrer votre application vers un conteneur, nous vous recommandons de générer une évaluation de l'adéquation de votre source. Vous serez ainsi informé si votre source peut changer de plate-forme pour 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 s'ouvre dans votre IDE et affiche les journaux d'é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 étant conformes, vous pouvez changer de plate-forme pour votre application.

Changer de plate-forme pour votre application

Cloud Code crée un espace de travail dédié pour chaque changement de plate-forme et vous permet d'exécuter les tâches Copy (Copier), Analyze (Analyser) et Generate (Générer) dans l'espace de travail pour automatiser les étapes du changement de plate-forme. Si vous exécutez la tâche Generate (Générer) sans exécuter d'abord les tâches Copy (Copier) et Analyze (Analyser), elle les exécute automatiquement avant de générer des artefacts.

Les sections suivantes vous expliquent comment effectuer chacune de ces tâches et transférer 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 changement de plate-forme

Avant de créer un espace de travail de changement de plate-forme, 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 la section Créer un plan de migration.

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

  1. Dans l'explorateur Applications de changement de plate-forme, effectuez un clic droit sur la source que vous souhaitez migrer, puis cliquez sur Changer de plate-forme.

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

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

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

  5. Facultatif: si vous avez sélectionné le type de migration WebSphere et que vous souhaitez utiliser un analyseur binaire, 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 alors 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 la réduire davantage. 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 la tâche), puis sélectionnez m2c: Copy. 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 la tâche), puis sélectionnez 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 comporte une ligne par paramètre, ainsi qu'une documentation le concernant.

    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 varie en fonction du type de migration. Pour en savoir plus sur les types de migration 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 Copy (Copier) et Analyze (Analyser) dans les sections précédentes, la tâche Generate (Générer) les exécute automatiquement toutes les deux 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 la tâche), puis sélectionnez m2c: Generate (m2c : générer). Cette opération génère les artefacts dans le répertoire src, qui contient un fichier skaffold.yaml permettant de créer et de 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 Docker et une spécification de déploiement GKE référencée par skaffold.yaml.

    Une fois la génération de l'artefact terminée, le changement de plate-forme de votre application est terminé.

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

    Sinon, si vous êtes satisfait du résultat du changement de plate-forme, 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 l'application transférée dans un conteneur GKE, afficher les journaux de l'application en cours d'exécution et nettoyer 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 la page 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 "Quick Pick" (Sélection rapide) qui s'affiche, sélectionnez Run on Kubernetes (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. Vous verrez également une diffusion en direct des journaux des pods en cours d'exécution 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 pour accéder à votre application, appuyez sur Ctrl et cliquez sur l'adresse.

Une fois votre session de débogage démarrée, le volet Development sessions (Sessions de développement) affiche la vue de journalisation structurée. Lorsqu'une tâche commence, elle apparaît avec un demi-cercle en rotation progress_activity.

Si une tâche aboutit, une coche check_circle apparaît à côté de l'étape.

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 lors de l'exécution sont automatiquement supprimées.

Pour éviter que les autres ressources utilisées dans ce guide de démarrage rapide soient facturées sur votre compte, veillez à supprimer le projet ou à supprimer 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. Maintenez le pointeur 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. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Pour supprimer tous les fichiers locaux créés au cours du changement de plate-forme:

  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 sélectionnez m2c: Cleanup.