Migrer des applications JBoss EAP vers JBoss EAP sur des machines virtuelles Azure
Ce guide décrit ce à quoi vous devez faire attention lorsque vous souhaitez migrer une application JBoss EAP existante pour l’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 correspondantes sur Azure Marketplace, sont 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. Lorsque vous avez atteint votre « migration terminée », vous pouvez prendre un instantané de vos machines virtuelles comme décrit dans Créer un instantané d’un disque dur virtuel. Il est plus sûr d’apporter des améliorations après avoir vérifié que vous pouvez restaurer avec succès à partir de votre instantané. De cette façon, vous pouvez avancer sans craindre de perdre les progrès de la migration que vous avez réalisés jusqu’à présent.
Déterminez si les offres prédéfinies Azure Marketplace sont un bon point de départ
Red Hat et Microsoft se sont associés pour proposer un ensemble de modèles de solutions Azure sur Azure Marketplace afin de fournir un point de départ solide pour la migration vers Azure. Vous pouvez consulter la liste des offres dans la section JBoss EAP sur des machines virtuelles Azure de Red Hat JBoss EAP sur Azure.
Pour avoir une idée de l’offre prédéfinie Azure Marketplace, veuillez consulter la section Prise en main rapide : Déployer un cluster JBoss EAP sur des machines virtuelles (VMs) Azure.
Si aucune des offres existantes n’est un bon point de départ, vous devez reproduire le déploiement manuellement en utilisant les ressources disponibles dans les machines virtuelles Azure. Pour plus d’informations, consultez Qu’est-ce que l’IaaS ?
Déterminez si la version de JBoss EAP est compatible
Votre version existante de JBoss EAP doit être compatible avec la version dans les offres d’infrastructure en tant que service (IaaS). Les pages du portail Azure pour les offres indiquent quelles versions de JBoss EAP sont disponibles. Pour plus d’informations, consultez l’offre Cluster JBoss EAP sur VMs sur le portail Azure. Si votre version existante de JBoss EAP n’est pas compatible avec les versions disponibles dans l’offre, vous devez reproduire le déploiement manuellement en utilisant les ressources IaaS d’Azure. Pour plus d’informations, consultez Qu’est-ce que l’IaaS ?
Assurez-vous de disposer des licences nécessaires
Lors de l’utilisation des offres prédéfinies Azure Marketplace, 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éployer sur des machines virtuelles Red Hat Enterprise Linux en paiement à l’utilisation. Cette option est connue sous le nom de 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 connue sous le nom de BYOS.
Dans les deux options, pour la portabilité des licences, on vous demandera l’ID de Pool de Red Hat. Assurez-vous d’avoir cet ID à portée de main avant d’essayer les offres.
Les offres prédéfinies Azure Marketplace incluent le support pour 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. Conservez les détails du compte pour les utiliser comme nom d’utilisateur RHSM et mot de passe RHSM dans les offres prédéfinies Azure Marketplace.
Les étapes à suivre pour découvrir votre ID de Pool sont expliquées dans la section Prérequis de Prise en main rapide : Déployer un cluster JBoss EAP sur des machines virtuelles (VMs) 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. Cela est utile, par exemple, pour 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 parts CPU nécessaires pour le conteneur.
Il est possible de redimensionner les pools de nœuds dans AKS. Pour savoir comment, consultez la section Redimensionner les 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 ou les serveurs de production pour tout secret ou mot de passe. Assurez-vous de vérifier 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 savoir quelle version du JDK utiliser, consultez la section 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 changements architecturaux. 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 le contenu statique vers Azure Blob Storage et d'ajouter Azure CDN pour des téléchargements rapides à l'échelle mondiale. 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.
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.
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 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 en savoir plus, consulter Utiliser Java Message Service 1.1 avec Azure Service Bus standard 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 chaque application web de manière indépendante pour une meilleure utilisation des ressources de vos machines virtuelles Azure, vous devez découper le fichier EAR 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électionnez une offre JBoss EAP sur des machines virtuelles Azure
Les offres décrites dans les sections suivantes sont disponibles pour JBoss EAP sur des machines virtuelles Azure.
Lors du déploiement d’une offre, il vous sera demandé de 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 la section Tailles pour les services cloud (classique).
JBoss EAP sur des Virtual Machine Scale Sets Azure
Les ensembles de machines virtuelles évolutives fournissent des groupes de machines virtuelles à équilibrage de charge, hautement évolutifs, pour des charges de travail de toute taille. Pour plus d’informations, consultez la section Que sont-les Virtual Machine Scale Sets ?.
JBoss EAP sur des machines virtuelles en cluster
Si vous préférez, un cluster traditionnel de machines virtuelles utilisant le mécanisme de clustering JBoss EAP convient pour un lift-and-shift des déploiements qui utilisent déjà cette fonctionnalité. Pour plus d’informations, consultez la section Clustering dans les applications web dans la documentation JBoss EAP. L’offre prédéfinie Azure Marketplace inclut le support pour le mode domaine. Pour un aperçu des domaines EAP et du mode domaine, consultez la section Gestion de domaine.
JBoss EAP Serveur unique
Si vous avez seulement besoin d’un serveur unique, peut-être pour des tests et évaluations, ou pour des charges de travail légères, il existe une offre qui déploie un serveur JBoss EAP unique sur une machine virtuelle unique.
Red Hat Migration Toolkit for Apps
Le Red Hat Migration Toolkit for Applications est une extension gratuite pour Visual Studio Code. Cette extension analyse votre code d’application et votre configuration pour fournir des recommandations pour la migration vers le cloud depuis les environnements locaux. Pour plus d’informations, consultez la section Vue d’ensemble du Migration Toolkit for Applications.
Le contenu de ce guide vous aide à aborder les autres composants du parcours de migration, tels que le choix de la taille correcte de la machine virtuelle et l’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 des informations sur certaines améliorations potentielles après migration, consultez les articles suivants :
Utilisez Azure Storage pour servir du contenu statique monté sur les machines virtuelles. Pour plus d’informations, consultez la section Attacher ou détacher un disque de données pour une machine virtuelle de laboratoire dans Azure DevTest Labs.
Déployez vos applications sur votre cluster JBoss EAP migré avec Azure DevOps. Pour plus d’informations, consultez la section Premiers pas avec la documentation Azure DevOps.
Améliorer votre topologie réseau avec des services d’équilibrage de charge avancés. Pour plus d’informations, consultez Utilisation des services d’équilibrage de charge dans Azure.
Utilisez les identités managées Azure pour gérer les secrets et assigner des accès basés sur des rôles aux ressources Azure. Pour plus d’informations, consultez Que sont les identités managées pour les ressources Azure ?
Intégrez l’authentification et l’autorisation Java EE avec Microsoft Entra ID. Pour plus d’informations, consultez la section Guide de prise en main de l’intégration de Microsoft Entra ID avec des applications.
Utiliser Azure Key Vault pour stocker toutes les informations qui servent de « secrets ». Pour plus d’informations, consultez Concepts de base d’Azure Key Vault.