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 :
Utilisez Stockage Azure pour servir du contenu statique monté sur les machines virtuelles. Pour plus d’informations, consultez Attacher ou détacher un disque de données pour une machine virtuelle lab dans Azure DevTest Labs.
Déployez vos applications sur votre cluster JBoss EAP migré avec Azure DevOps. Pour plus d’informations, consultez la documentation Prise en main d’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 attribuer un accès en fonction du rôle 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 à l’ID Microsoft Entra. Pour plus d’informations, consultez Le guide de prise en main de Microsoft Entra ID avec les 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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour