Migrer des applications Tomcat vers des conteneurs avec Migrate to Containers

Last reviewed 2022-06-17 UTC

Ce document s'adresse aux propriétaires d'applications et aux architectes cloud. Ce document explique comment migrer des applications Java exécutées sur Tomcat vers des conteneurs s'exécutant dansGoogle Kubernetes Engine (GKE), GKE Autopilot, Cloud Run ou GKE Enterprise. Vous pouvez utiliser ce processus pour migrer des applications Tomcat à partir d'environnements sur site, d'environnements d'hébergement privés ou d'autres fournisseurs de cloud. Il souligne également les avantages de l'utilisation de Migrate to Containers pour automatiser votre migration.

Dans le présent document, nous partons du principe que vous connaissez les produits suivants :

  • Les applications Java déployées sur des serveurs d'applications Tomcat et exécutées sur des machines virtuelles (VM) Linux
  • Les concepts de Kubernetes et l'utilisation de base de l'outil de ligne de commande Kubernetes

Ce document fait partie d'une série sur la migration vers Google Cloud. Pour obtenir une présentation de la série, consultez la page Migration vers Google Cloud : choisir votre chemin de migration.

Lisez ce document pour migrer des applications Tomcat compatibles depuis un environnement source compatible vers un environnement GKE, GKE Enterprise ou Cloud Run à l'aide de Migrate to Containers. Ces environnements sources peuvent inclure les éléments suivants :

Migrate to Containers utilise l'outil d'évaluation d'adéquation pour découvrir, inspecter et migrer toutes vos applications Tomcat dans vos VM Linux. L'outil divise les applications Tomcat en conteneurs d'applications Tomcat individuels. Après la migration, vous pouvez regrouper tout ou partie des applications dans une image de conteneur partagé. Le schéma suivant montre comment Migrate to Containers divise et migre les applications :

Migrate to Containers divise et migre les applications Tomcat.

Migrate to Containers offre les avantages suivants :

  • La modernisation de la charge de travail offre les fonctionnalités suivantes :
  • Environnement conteneurisé : conteneurise les applications existantes basées sur des VM. Consultez la page sur les avantages de la migration vers des conteneurs.
  • Image officielle de Tomcat : utilise l'image officielle Tomcat par défaut, ou vous pouvez mettre à jour la migration ou le fichier Dockerfile pour utiliser votre propre image. Images officielles de Docker : bonnes pratiques Docker pour vos images de base.
  • Répartition automatique des applications : suggère automatiquement la répartition de chaque application détectée dans un conteneur individuel tout en conservant la configuration d'origine de Tomcat.
  • Gestion des secrets : découvre les keystores, les truststores et les certificats utilisés par votre serveur Tomcat, puis génère automatiquement les primitives Kubernetes pour les externaliser et les installer en tant queSecrets Kubernetes.
  • Modifications de journalisation recommandées : détecte automatiquement les fichiers de configuration du framework de journalisation Java courants (tels que log4j2, log4j et logback) et suggère des modifications pour l'aligner sur la journalisation sur Kubernetes.

La migration des applications Tomcat vers des conteneurs avec Migrate to Containers est une étape possible de votre processus de modernisation de charge de travail. La migration vous aide à transformer vos applications Tomcat afin qu'elles s'exécutent dans un environnement cloud. Cela vous permet également d'éviter les réécritures coûteuses.

Les applications de migration idéales sont des applications exécutées sur des versions de Tomcat et Java compatibles pour lesquelles la modernisation via une réécriture complète est trop coûteuse ou trop difficile.

Concevoir la migration vers Google Cloud

Pour migrer vos applications Tomcat de votre environnement source vers des conteneurs s'exécutant sur Google Cloud, suivez le framework décrit dans la série Migration vers Google Cloud.

Le diagramme suivant illustre le parcours de votre migration.

Chemin de migration en quatre phases

Le framework illustré dans le schéma précédent se compose de quatre phases :

  1. Évaluation : vous évaluez votre environnement source, vous déterminez les applications que vous souhaitez migrer vers Google Cloud et vous identifiez les applications Tomcat adaptées à la migration.
  2. Planifier : vous créez l'infrastructure de base pour Migrate to Containers, telle que la gestion de la hiérarchie des ressources et la configuration de l'accès au réseau.
  3. Déploiement : vous migrez les applications Tomcat depuis l'environnement source vers GKE, GKE Autopilot, Cloud Run ou GKE Enterprise avec Migrate to Containers.
  4. Optimisation : vous commencez à tirer parti des technologies et des fonctionnalités cloud.

Évaluer l'environnement source et les applications

Au cours de la phase d'évaluation, vous rassemblez des informations sur votre environnement source et sur les applications que vous souhaitez migrer. Vous pouvez ainsi redimensionner les ressources dont vous avez besoin pour la migration et pour votre environnement cible.

Lors de la phase d'évaluation, vous effectuez les opérations suivantes :

  1. Dresser un inventaire complet de vos applications.
  2. Cataloguer vos applications en fonction de leurs propriétés et de leurs dépendances
  3. Former et préparer vos équipes sur Google Cloud
  4. Élaborer un test et une démonstration de faisabilité sur Google Cloud.
  5. Calculer le coût total de possession (TCO) de l'environnement cible
  6. Choisir les applications que vous souhaitez migrer en premier.

Les sections suivantes sont basées sur Migration vers Google Cloud : évaluer et découvrir vos charges de travail. Cependant, elles fournissent des informations spécifiques à l'évaluation des applications Tomcat que vous souhaitez migrer vers des conteneurs avec Migrate to Containers.

Créer vos inventaires

Pour couvrir votre migration, vous devez comprendre votre environnement Tomcat. Pour comprendre votre environnement, rassemblez des informations sur vos applications et leurs dépendances.

La section Créer un inventaire de vos applications décrit comment créer un inventaire de vos charges de travail et de leurs dépendances dans votre environnement Tomcat. Suivez ces conseils et créez vos inventaires. Lorsque vous aurez terminé, reprenez la lecture du présent document.

Une fois que vous avez fait l'inventaire de vos charges de travail et de leurs dépendances, vous pouvez affiner l'inventaire. Évaluez les aspects et les fonctionnalités qui intéressent votre organisation lors de la migration de ses applications Tomcat avec la Migrate to Containers.

Avant d'évaluer votre environnement Tomcat pour la migration, effectuez les tâches d'évaluation décrites dans les pages Migrer des VM vers des conteneurs avec Migrate to Containers et Migration vers Google Cloud : évaluer et découvrir vos charges de travail. Lorsque vous avez terminé, procédez à l'inventaire de vos charges de travail.

Pour terminer l'inventaire de vos charges de travail, tenez compte des points suivants :

  • Systèmes d'exploitation s'exécutant dans vos instances Tomcat : Rassembler des informations sur les systèmes d'exploitation et leurs licences exécutées dans vos instances Tomcat, et vous assurer que les systèmes d'exploitation sont répertoriés dans Systèmes d'exploitation compatibles et versions de Kubernetes.
  • Versions Tomcat exécutant vos applications : collectez des informations sur les versions de Tomcat exécutant vos applications et assurez-vous de leur compatibilité avec la fonctionnalité de migration vers des conteneurs.
  • Applications déployées dans vos instances Tomcat : identifiez les applications déployées dans chaque instance Tomcat. Mappez ensuite les dépendances entre vos applications, et entre vos applications et les services externes. Vous devez ensuite collecter des informations sur les sources de configuration de vos applications, qui peuvent inclure les configurations suivantes :
    • Environment variables
    • Chemins d'installation non standard de Tomcat
    • Registres d'utilisateurs LDAP
    • Connexions Java Database Connectivity (JDBC)
    • Proxy Tomcat
    • Proxy Java
  • Score d'adéquation Migrate to Containers : déterminez si vos applications Tomcat sont adaptées à la migration avec des conteneurs. Migrate to Containers fournit un outil d'évaluation de l'adéquation que vous devez exécuter sur les VM hébergeant vos instances Tomcat afin de calculer un score d'adéquation et de recommander un parcours de migration. Migrate to Containers utilise un ensemble de règles d'évaluation pour migrer les applications Tomcat.
  • Clustering Tomcat : le clustering Tomcat permet la réplication de session sur tous les nœuds Tomcat du cluster. Certaines mises en œuvre de clustering, y compris le fournisseur d'adhésion McastService intégré, ne fonctionnent pas correctement dans Kubernetes en raison du manque de compatibilité avec la multidiffusion au niveau du réseau. Cela signifie que la configuration du clustering Tomcat nécessite une configuration manuelle pendant la migration. Pour en savoir plus, consultez la page ClusteringCloud sur le wiki Apache Tomcat.
  • Proxy Tomcat : dans de nombreux scénarios réels, Tomcat peut être configuré pour s'exécuter derrière un proxy inverse. Voici les principales utilisations d'un proxy inverse :
  • Proxy Java : si vous utilisez un serveur proxy pour contrôler la sortie des applications Tomcat et Java, vous pouvez désactiver les paramètres de proxy Java. Supprimez les paramètres de proxy des options de ligne de commande Java (JVM). Configurez ensuite une passerelle de sortie Anthos Service Mesh (ASM) pour contrôler la mise en réseau de sortie depuis votre conteneur Tomcat.

Terminer l'évaluation

Après avoir créé les inventaires liés à votre environnement et à vos charges de travail Tomcat, effectuez les autres étapes de la phase d'évaluation décrites dans la page Migration vers Google Cloud : évaluer et découvrir vos charges de travail. Lorsque vous avez terminé, lisez ce document.

Planifier et établir vos fondations

Après avoir suivi les instructions de la section Planifier et créer votre infrastructure de base, établissez votre base Tomcat :

  1. Vérifiez que vos charges de travail et votre environnement source Tomcat répondent aux conditions préalables à la migration d'une charge de travail Tomcat.
  2. Pour terminer la phase de collecte de données, exécutez mfit sur les VM qui exécutent vos instances Tomcat. Pour en savoir plus, consultez la page Utiliser l'outil d'évaluation de l'adéquation.

Pour provisionner et configurer Migrate to Containers et ses dépendances, consultez la page Configurer Migrate to Containers.

Lorsque vous avez terminé, lisez ce document.

Migrer vos applications Tomcat vers des conteneurs

Lors de la phase de déploiement, utilisez les jalons suivants pour vous guider.

Générer et examiner le plan de migration

Créez un plan de migration Migrate to Containers pour vos applications Tomcat :

  1. Configurer les environnements sources en tant que sources de migration Migrate to Containers : pour migrer vos applications Tomcat, Migrate to Containers a besoin d'informations sur les environnements sources dans lesquels vos VM s'exécutent. Vous avez collecté ces informations en effectuant les tâches décrites dans la section Créer vos inventaires de ce document. Pour en savoir plus sur la configuration des environnements sources, consultez la page Ajouter une source de migration.
  2. Créer un plan de migration : pour spécifier les applications Tomcat que vous souhaitez migrer d'un environnement source vers un environnement cible compatible, créez un plan de migration. Par exemple, vous pouvez configurer l'emplacement dans lequel vous souhaitez stocker les données persistantes.

    Pour en savoir plus sur la création et la surveillance des plans de migration, consultez la section Créer une migration. Pour créer un plan de migration pour les applications Tomcat, utilisez l'outil de ligne de commande migctl, comme décrit dans la section Exécuter une migration.

  3. Examiner et personnaliser les plans de migration : après avoir généré des plans de migration pour chacune des VM que vous souhaitez migrer, examinez et personnalisez chaque plan pour vous assurer qu'il répond à vos besoins. Pour en savoir plus sur la personnalisation des plans de migration, consultez la section Personnaliser un plan de migration.

Générer des artefacts de migration et des descripteurs de déploiement

Pour générer les artefacts Tomcat cibles pour vos applications, Migrate to Containers extrait les applications exécutées dans les VM que vous avez configurées dans les plans de migration. Il crée ensuite plusieurs artefacts et les place dans un bucket Cloud Storage. Migrate to Containers génère les descripteurs de déploiement que vous pouvez personnaliser et utiliser pour déployer des instances des images de conteneurs dans l'environnement cible.

Pour chaque application migrée, Migrate to Containers crée un dossier contenant les éléments suivants :

  • Dockerfile
  • Binaires d'application
  • Fichiers de configuration Tomcat
  • Script de compilation
  • YAML Skaffold, pour la création et le déploiement
  • (Facultatif) Script secrets.sh
  • (Facultatif) Archives de journaux

Vous pouvez surveiller la progression des artefacts de conteneur que vous créez et migrez. Pour en savoir plus sur la surveillance d'une migration, consultez la page Surveiller les charges de travail migrées.

Vérifier et valider les ressources et les descripteurs générés

Après avoir généré des artefacts de conteneur et des descripteurs de déploiement avec Migrate to Containers, examinez et mettez à jour ces artefacts et descripteurs de sorte qu'ils répondent à vos besoins. Par exemple, tenez compte des aspects suivants :

  • Descripteurs d'images de conteneurs : consultez les descripteurs d'images de conteneurs que vous avez générés avec Migrate to Containers et vérifiez qu'ils sont suffisants pour la charge de travail des conteneurs. Si vous devez mettre à jour l'image de conteneur de base, mettez à jour la valeur FROM dans le fichier Dockerfile généré. Vous pouvez également modifier la variable d'environnement CATALINA_OPTS du fichier Dockerfile pour définir ou modifier des variables d'environnement JVM.
  • Journalisation au niveau de l'application : Migrate to Containers génère automatiquement une archive de journalisation modifiée qui vous permet de modifier votre paramètre de journalisation afin d'écrire des journaux dans la console au lieu de fichiers locaux.

Pour en savoir plus sur l'examen des artefacts de conteneur et des descripteurs de déploiement, consultez la page Examiner les artefacts.

Déployer et valider les charges de travail conteneurisées sur GKE, GKE Autopilot, Cloud Run ou GKE Enterprise

Lorsque les descripteurs de déploiement de vos charges de travail sont prêts, vous pouvez effectuer les tâches suivantes :

  1. Créer une image de conteneur d'application : créez une image de conteneur d'application pour votre charge de travail migrée. Pour obtenir des instructions, consultez la section Construire l'image de conteneur.
  2. Déployez vos charges de travail dans l'environnement cible :
  3. Surveiller vos charges de travail migrées : après avoir déployé votre conteneur d'applications Tomcat, vous pouvez collecter des données sur ses performances dans l'environnement cible. Pour en savoir plus, consultez la page Surveiller les charges de travail migrées.
  4. Intégrez vos charges de travail migrées : Une fois vos charges de travail déployées dans l'environnement cible, intégrez les processus de génération et de déploiement d'artefacts du conteneur à vos charges de travail à l'aide de vos processus et pipelines de déploiement. Si vous n'avez pas de processus de déploiement automatisé en place et que vous déployez manuellement vos charges de travail, nous vous recommandons de migrer des déploiements manuels vers des déploiements automatisés.

Désinstaller Migrate to Containers

Une fois la migration de vos charges de travail terminée avec Migrate to Containers, nous vous recommandons d'effectuer les actions suivantes :

  1. Assurez-vous de disposer de toutes les références aux artefacts générés par Migrate to Containers lors de la migration.
  2. Désinstallez Migrate to Containers.

Optimiser votre environnement après la migration

Pour terminer votre migration, consultez la page Optimiser votre environnement.

Vous pouvez effectuer ces optimisations spécifiques à Tomcat pour vos applications Tomcat migrées :

  • Ajustez la journalisation : contrairement aux VM pour lesquelles les fichiers journaux sont normalement écrits dans le système de fichiers local, les journaux Kubernetes sont normalement diffusés vers stdout ou stderr. Les journaux sont ensuite stockés, analysés et interrogés via un backend dédié, tel que Cloud Logging. Vous pouvez utiliser les modifications recommandées de Migrate to Containers dans l'artefact d'archive logConfigs ou modifier manuellement votre configuration de journalisation pour écrire des journaux dans stdout ou stderr.
  • Sécurisez vos données sensibles : placez vos mots de passe et toute autre donnée sensible dans des secrets Kubernetes. Utilisez les secrets Kubernetes pour remplacer les espaces réservés de configuration au démarrage du conteneur.
  • Ajustez votre profil de ressources : pour aider Kubernetes à planifier efficacement vos pods, ajustez vos contraintes de ressources à la fois pour les requêtes et limites. Vous devez également ajuster vos ressources pour qu'elles correspondent à la taille de votre tas JVM, afin d'éviter les exceptions de mémoire insuffisante.
  • Contrôlez l'emplacement des pods : si vos applications Tomcat migrées communiquent fréquemment entre elles, vous pouvez planifier leur exécution sur les mêmes nœuds. Si le contrôle de l'emplacement des pods est bénéfique pour vos applications migrées, consultez la page Attribuer des pods à des nœuds.

Étape suivante