Migrer des applications JBoss EAP vers JBoss EAP sur des machines virtuelles Azure

Ce guide décrit ce que vous devez savoir quand vous souhaitez migrer une application JBoss EAP existante à exécuter sur JBoss EAP dans des machines virtuelles Azure.

Prémigration

Pour garantir la réussite de la migration, avant de commencer, effectuez les étapes d’évaluation et d’inventaire décrites dans les sections suivantes.

Définir ce que vous entendez par « migration terminée »

Ce guide, ainsi que les offres de Place de marché Azure correspondantes, constituent un point de départ pour accélérer la migration de vos charges de travail JBoss EAP vers Azure. Il est important de définir l’étendue de vos efforts de migration. Par exemple, vous tenez-vous à un strict « lift-and-shift » entre votre infrastructure existante et les machines virtuelles Azure ? Si c’est le cas, vous pouvez être tenté d’apporter des améliorations au fur et à mesure de la migration.

Il est préférable de s’en tenir le plus possible à un « lift-and-shift » pur et dur, tout en tenant compte des changements nécessaires, comme détaillé dans ce guide. Définissez ce que vous entendez par « migration terminée » afin de savoir quand vous avez atteint cet objectif. Une fois que vous avez atteint votre « migration terminée », vous pouvez prendre une instantané de vos machines virtuelles, comme décrit dans Créer un instantané d’un disque dur virtuel. Il est plus sûr d’effectuer les améliorations une fois que vous avez vérifié que vous pouvez effectuer une restauration à partir de votre instantané. De cette façon, vous pouvez continuer sans craindre de perdre la progression de la migration que vous avez obtenue jusqu’à présent.

Déterminer si les offres Place de marché Azure prédéfinies sont un bon point de départ

Red Hat et Microsoft ont collaboré pour apporter un ensemble de modèles de solution Azure à Place de marché Azure pour fournir un point de départ solide pour la migration vers Azure. Vous pouvez voir la liste des offres dans la section JBoss EAP sur Azure Machines Virtuelles de Red Hat JBoss EAP sur Azure.

Pour obtenir une idée de l’offre Place de marché Azure prédéfinie, consultez Démarrage rapide : Déployer le serveur JBoss EAP sur une machine virtuelle Azure à l’aide du Portail Azure.

Si aucune des offres existantes n’est un bon point de départ, vous devez reproduire le déploiement à l’aide des ressources disponibles dans Azure Machines Virtuelles. Pour plus d’informations, consultez Qu’est-ce que l’IaaS ?

Déterminer si la version JBoss EAP est compatible

Votre version JBoss EAP existante doit être compatible avec la version dans les offres IaaS (infrastructure-as-a-service). Les pages Portail Azure des offres indiquent quelles versions de JBoss EAP sont disponibles. Pour plus d’informations, consultez l’offre JBoss EAP Cluster on VMs on the Portail Azure. Si votre version JBoss EAP existante n’est pas compatible avec les versions disponibles dans l’offre, vous devez reproduire le déploiement à l’aide de ressources IaaS Azure. Pour plus d’informations, consultez Qu’est-ce que l’IaaS ?

Vérifiez que vous disposez des licences nécessaires

Lorsque vous utilisez les offres Place de marché Azure prédéfinies, vous devez disposer de licences actuelles de Red Hat pour tous vos serveurs JBoss EAP. En les déplaçant vers Azure, vous pouvez choisir entre les options de déploiement suivantes pour répondre à vos besoins :

  • Déployez sur des machines virtuelles de paiement à l’utilisation red Hat Enterprise Linux. Cette option est appelée PAYG.
  • Déplacez vos abonnements Red Hat JBoss EAP et Red Hat Enterprise Linux vers Azure via le programme Red Hat Cloud Access . Cette option est appelée BYOS.

Dans les deux options, pour la portabilité des licences, vous êtes invité à indiquer l’ID de pool de Red Hat. Vérifiez que vous disposez de cet ID avant d’essayer les offres.

Les offres Place de marché Azure prédéfinies incluent la prise en charge de Red Hat Satellite pour la gestion des licences. Pour obtenir une vue d’ensemble de Red Hat Satellite, consultez Red Hat Satellite.

Remarque

Si vous ne disposez pas d’un droit EAP, vous pouvez vous inscrire pour bénéficier d’un abonnement développeur gratuit via l’abonnement Red Hat Developer pour les particuliers. Notez les détails du compte à utiliser comme nom d’utilisateur RHSM et mot de passe RHSM dans les offres Place de marché Azure prédéfinies.

Les étapes de découverte de votre ID de pool sont expliquées dans la section Prérequis du guide de démarrage rapide : Déployer le serveur JBoss EAP sur une machine virtuelle Azure à l’aide de la Portail Azure.

Inventorier la capacité des serveurs

Documentez le matériel (mémoire, processeur, disque) du ou des serveurs de production actuels ainsi que le nombre moyen et maximal de requêtes et l’utilisation des ressources. Vous aurez besoin de ces informations, quel que soit le chemin de migration que vous choisissez. Il est utile, par exemple, de guider la sélection de la taille des machines virtuelles dans votre pool de nœuds, la quantité de mémoire à utiliser par le conteneur et le nombre de partages d’UC dont le conteneur a besoin.

Il est possible de redimensionner les pools de nœuds dans AKS. Pour en savoir plus, consultez Redimensionner des pools de nœuds dans Azure Kubernetes Service (AKS).

Inventorier tous les secrets

Vérifiez toutes les propriétés et tous les fichiers de configuration sur le serveur de production ou les serveurs pour les secrets et mots de passe. Veillez à case activée le fichier jboss-web.xml dans vos wars. Vous pouvez également trouver des fichiers de configuration contenant des mots de passe ou des informations d’identification au sein de votre application.

Envisagez de stocker ces secrets dans Azure Key Vault. Pour plus d’informations, consultez Concepts de base d’Azure Key Vault.

Inventorier tous les certificats

Documentez tous les certificats utilisés pour les points de terminaison SSL publics. Vous pouvez voir tous les certificats présents sur les serveurs de production en exécutant la commande suivante :

keytool -list -v -keystore <path to keystore>

Valider le bon fonctionnement de la version Java prise en charge

JBoss EAP sur les machines virtuelles Azure nécessite une version prise en charge de Java. Pour obtenir des conseils sur la version du JDK à utiliser, consultez configurations prises en charge dans la documentation Red Hat.

Remarque

Cette validation s’avère particulièrement importante si votre serveur actuel s’exécute sur un JDK non pris en charge (comme Oracle JDK ou IBM OpenJ9).

Pour obtenir votre version actuelle de Java, connectez-vous à votre serveur de production et exécutez la commande suivante :

java -version

Inventorier les ressources externes

Les ressources externes, comme les sources de données, les répartiteurs de messages JMS, etc., sont injectées par le biais de l’interface JNDI (Java Naming and Directory Interface). Certaines de ces ressources peuvent nécessiter une migration ou une reconfiguration.

Au sein de votre application

Inspectez les fichiers WEB-INF/jboss-web.xml et/ou WEB-INF/web.xml. Recherchez les éléments <Resource> à l’intérieur de l’élément <Context>.

Sources de données

Les sources de données sont des ressources JNDI dont l’attribut type a la valeur javax.sql.DataSource. Pour chaque source de données, réunissez les informations suivantes :

  • Quel est le nom de la source de données ?
  • Quelle est la configuration du pool de connexions ?
  • Où trouver le fichier JAR du pilote JDBC ?

Pour plus d’informations, consultez About JBoss EAP Datasources (À propos des sources de données JBoss EAP) dans la documentation de JBoss EAP.

Toutes les autres ressources externes

Il n’est pas possible de décrire toutes les dépendances externes possibles dans ce guide. Il incombe à votre équipe de vérifier que vous pouvez satisfaire à toutes les dépendances externes de votre application après la migration.

Déterminer si le système de fichiers est utilisé et de quelle manière

Toute utilisation du système de fichiers sur le serveur d’applications nécessite une reconfiguration ou, dans de rares cas, des modifications architecturales. Les modules JBoss EAP ou votre code d’application peuvent utiliser le système de fichiers. Vous pouvez identifier une partie ou l’ensemble des scénarios décrits dans les sections suivantes.

Contenu statique en lecture seule

Si votre application sert actuellement du contenu statique, vous aurez besoin d’un autre emplacement pour lui. Vous pouvez envisager de déplacer du contenu statique vers le Stockage Blob Azure et d’ajouter Azure CDN pour accélérer globalement les téléchargements. Pour plus d’informations, consultez Hébergement de sites web statiques dans le service Stockage Azure et Démarrage rapide : Intégrer un compte de stockage Azure à Azure CDN. Vous pouvez également déployer directement le contenu statique sur une application dans le plan Azure Spring Apps Enterprise. Pour plus d’informations, consultez Déployer des fichiers statiques web.

Contenu statique publié dynamiquement

Si votre application autorise le contenu statique chargé/produit par votre application mais immuable après sa création, vous pouvez utiliser le Stockage Blob Azure et Azure CDN comme décrit ci-dessus, avec une fonction Azure pour gérer les chargements et l’actualisation du réseau CDN. Nous avons mis à votre disposition un exemple d’implémentation dans Chargement et préchargement CDN de contenu statique avec Azure Functions. Vous pouvez également déployer directement le contenu statique sur une application dans le plan Azure Spring Apps Enterprise. Pour plus d’informations, consultez Déployer des fichiers statiques web.

Déterminer si une connexion à un service local est nécessaire

Si votre application doit accéder à vos services locaux, vous devez provisionner l’un des services de connectivité d’Azure. Pour plus d'informations, consultez Choisir une solution pour connecter un réseau local à Azure. Vous avez également besoin de refactoriser votre application pour qu’elle utilise les API publiques disponibles que vos ressources locales exposent.

Déterminer si les files d’attente ou les rubriques JMS (Java Message Service) sont en cours d’utilisation

Si votre application utilise des files d’attente ou des rubriques JMS, vous devez les migrer vers un serveur JMS hébergé en externe. Azure Service Bus et le protocole AMQP (Advanced Message Queuing Protocol) peuvent être une excellente stratégie de migration pour ceux qui utilisent JMS. Pour plus d’informations, consultez Utiliser JMS avec Azure Service Bus et AMQP 1.0.

Si des magasins persistants JMS ont été configurés, vous devez capturer leur configuration et les appliquer après la migration.

Déterminer si des connecteurs JCA sont utilisés

Si votre application utilise des connecteurs JCA, vérifiez que vous pouvez utiliser le connecteur JCA sur JBoss EAP. Si vous pouvez utiliser le connecteur JCA sur JBoss EAP, vous devez, pour qu’il soit disponible, ajouter les fichiers JAR au classpath du serveur et placer les fichiers de configuration nécessaires au bon emplacement dans les répertoires de serveur JBoss EAP.

Déterminer si JAAS est en cours d’utilisation

Si votre application utilise JAAS, vous devez capturer la façon dont il est configuré. Si elle utilise une base de données, vous pouvez la convertir en domaine JAAS sur JBoss EAP. S’il s’agit d’une implémentation personnalisée, vous devez valider qu’elle peut être utilisée sur JBoss EAP.

Déterminer si votre application est composée de plusieurs WAR

Si votre application est composée de plusieurs WAR, vous devez traiter chacun de ces WAR comme des applications distinctes et suivre ce guide pour chacun d’entre eux.

Déterminer si votre application est empaquetée en tant que fichier EAR

Si votre application est empaquetée en tant que fichier EAR, veillez à examiner le fichier application.xml et à capturer la configuration.

Remarque

Si vous souhaitez pouvoir mettre à l’échelle chacune de vos applications web indépendamment pour une meilleure utilisation de vos ressources de machine virtuelle Azure, vous devez diviser l’OREILLE en applications web distinctes.

Identifier tous les processus et démons extérieurs exécutés sur les serveurs de production

Si vous avez des processus qui s’exécutent en dehors du serveur d’applications, comme les démons de supervision, vous devez les éliminer ou les migrer ailleurs.

Migration

Sélectionner une offre JBoss EAP sur Azure Machines Virtuelles

Les offres décrites dans les sections suivantes sont disponibles pour JBoss EAP sur Azure Machines Virtuelles.

Pendant le déploiement d’une offre, vous êtes invité à choisir la taille de la machine virtuelle pour vos nœuds de serveur JBoss EAP. Il est important de prendre en compte tous les aspects de dimensionnement (mémoire, processeur, disque) dans le choix de la taille de machine virtuelle. Pour plus d’informations, consultez Tailles pour Services cloud (classique).

JBoss EAP sur des groupes de machines virtuelles identiques Azure

Les groupes de groupes de machines virtuelles identiques fournissent des groupes de machines virtuelles à charge équilibrée et hautement évolutives pour les charges de travail de toute taille. Pour plus d’informations, consultez Présentation des groupes de machines virtuelles identiques ?

JBoss EAP sur Machines Virtuelles cluster

Si vous préférez, un cluster traditionnel de machines virtuelles utilisant le mécanisme de clustering JBoss EAP convient à un lift-and-shift des déploiements qui utilisent déjà cette fonctionnalité. Pour plus d’informations, consultez Configuration d’un cluster Red Hat JBoss EAP 7 dans la documentation JBoss EAP. L’offre Place de marché Azure prédéfinie inclut la prise en charge du mode domaine. Pour obtenir une vue d’ensemble des domaines EAP et du mode domaine, consultez Gestion des domaines.

Serveur unique JBoss EAP

Si vous n’avez besoin que d’un seul serveur, peut-être pour les tests et l’évaluation, ou pour les charges de travail légères, il existe une offre qui déploie un serveur unique JBoss EAP sur une seule machine virtuelle.

Red Hat Migration Shared Computer Toolkit for Apps

La Shared Computer Toolkit de migration Red Hat pour Applications est une extension gratuite pour Visual Studio Code. Cette extension analyse le code et la configuration de votre application pour fournir des recommandations pour la migration vers le cloud à partir d’un emplacement local. Pour plus d’informations, consultez Migration Shared Computer Toolkit pour la vue d’ensemble des applications.

Le contenu de ce guide vous aide à traiter les autres composants du parcours de migration, tels que le choix de la taille de machine virtuelle appropriée et la externalisation de votre état de session.

Postmigration

Une fois que vous avez atteint les objectifs de migration que vous aviez définis dans l’étape de prémigration, effectuez des tests d’acceptation de bout en bout pour vérifier que tout fonctionne comme prévu. Pour plus d’informations sur certaines améliorations potentielles après la migration, consultez les articles suivants :