Chapitre 2. Préparation à la migration

2.1. Vue d'ensemble des préparatifs

Sur JBoss EAP 7, un effort a été fourni pour offrir une rétro-compatibilité pour les applications JBoss EAP 6. Cependant, si votre application utilise des fonctionnalités déconseillées ou des fonctionnalités ayant été supprimées de JBoss EAP 7, vous devrez apporter des changements au code de votre application.

En outre, de nombreux éléments ont changé dans cette version et peuvent avoir un impact sur le déploiement des applications JBoss EAP 7. Il est recommandé de faire des recherches et de planifier correctement avant de tenter de migrer votre application.

Une fois à l'aide avec les changements de fonctionnalités, les éléments de développement, et les outils pouvant vous assister pour effectuer la migratopm, vous pourrez commencer à évaluer vos applications et la configuration de votre serveur pour déterminer quels changements seront nécessaire pour exécuter JBoss EAP 7.

2.2. Voir les fonctionnalités Java EE 7

Java EE 7 inclut de nombreuses améliorations pour faciliter le développement et l'exécution d'applications riches en fonctionnalités sur des clouds publics et privés. Java EE 7 incorpore de nouvelles fonctionnalités et les standards les plus récents, tels que HTML5, WebSocket, JSON, Batch, et Concurrency Utilities. Les mises à jour incluent JPA 2.1, JAX-RS 2.0, Servlet 3.1, Expression Language 3.0, JMS 2.0. JSF 2.2, EJB 3.2, CDI 1.2, et Bean Validation 1.1.

Davantage d'informations sur Java EE 7, y compris des tutoriels, se trouvent sur le site web d'Oracle : « Java EE at a Glance »

2.3. Voir les nouveautés dans JBoss EAP 7

JBoss EAP 7 inclut quelques mise à niveau et améliorations remarquables en comparaison avec la version précédente.

Java EE 7
JBoss EAP 7 est une implémentation certifiée de Java EE 7, répondant au profil Web et et profil complet (profil « Full »). JBoss EAP 7 inclut également la prise en charge des itérations les plus récentes de CDI 1.2 et Web Sockets 1.1.
Undertow
Undertow est le nouveau serveur web léger, flexible, et performant inclus dans JBoss EAP 7, remplaçant ainsi JBoss Web. Écrit en Java, Undertow est conçu pour un débit et une évolutivité maximale. Il prend en charge les technologies plus récentes, comme le nouveau standard HTTP/2.
Apache ActiveMQ Artemis
Apache ActiveMQ Artemis est le nouveau courtier de messagrie inclus dans JBoss EAP 7. Basé sur une donation de code de HornetQ, ce sous-projet Apache fournir des performances exceptionnelles basées sur une architecture non-bloquante prouvée.
IronJacamar 1.2
La version la plus récente d'IronJacamar fournit une prise en charge stable et riche en fonctionnalités pour JCA et DataSources.
JBossWS 5
La cinquième génération de JBossWS est un réel bond en avant, offrant de nouvelles fonctionnalités et améliorations des performances à JBoss EAP 7 Web Services.
RESTEasy 3
JBoss EAP 7 inclut la dernière génération RESTEasy. Cette version va au-delà des API REST Java EE standards (JAX-RS 2.0) en fournissant un grand nombre d'extensions utiles, comme le cryptage JSON Web, Jackson, YAML, JSON-P, et Jettison.
OpenJDK ORB
JBoss EAP 7 a remplacé l'implémentation JacORB IIOP par une branche en aval d'OpenJDK ORB, permettant ainsi une meilleure interopérabilité avec JVM ORB et Java EE RI.
Clustering riche en fonctionnalités
La prise en charge du clustering a été largement remaniée sur JBoss EAP 7 et inclut désormais plusieurs API publiques pour permettre l'accès des applications.
Réduction de port
En utilisant la mise à niveau HTTP, JBoss EAP 7 a déplacé presque tous ses protocoles pour qu'ils soient multiplexés sur deux ports HTTP uniquement : un port de gestion (9990), et un port d'application (8080).
Journalisation améliorée
L'API de gestion prend désormais en charge la capacité de répertorier et d'afficher les fichiers journaux sur un serveur, ou même de définir des formateurs autres que le formateur de schémas par défaut. La configuration de la journalisation de déploiement est également fortement améliorée.

Pour une liste complète des nouvelles fonctionnalités, veuillez consulter Nouvelles fonctionnalités et améliorations dans le guide JBoss EAP 7 Notes de sortie.

2.4. Voir la liste des fonctionnalités dépréciées et non prises en charge.

Avant de migrer votre application, prenez en compte le fait que certaines fonctionnalités qui étaient disponibles dans des versions précédentes de JBoss EAP peuvent être déconseillées ou ne plus être prises en charge.

La prise en charge de certaines technologies a été supprimée en raison des coûts de maintenance élevés, d'un faible interêt de la part de la communauté et de solutions alternatives bien meilleures. Voici un petit récapitulatif de certaines des fonctionnalités non prises en charge.

EJB Entity Beans
Les EJB Entity Beans ne sont plus pris en charge. Si votre application utilise des EJB Entity Beans, vous devrez migrer le code pour utiliser JPA, ce qui fournir une API bien plus performante et flexible.
JAX-RPC
Comme JAX-WS offre une solution bien plus précise et complète, le code écrit pour JAX-RPC devrait être migré pour utiliser JAX-WS.
JSR-88
La spécification de l'API de déploiement d'applications Java EE (JSR-88), qui définissait un contrat pour activer des outils à partir de multiples fournisseurs pour configurer et déployer des applications sur tout produit de plateforme Java EE, n'était pas largement adoptée. Il faut également utiliser une autre option prise en charge par JBoss EAP pour le déploiement d'applications, comme la console de gestion, l'interface de ligne de commande de gestion, le scanner de déploiement, ou Maven.
Adaptateur de ressources générique JMS
La possibilité de configurer un adaptateur de ressources JMS standard à un fournisseur JMS n'est plus prise en charge dans JBoss EAP 7.

Pour une liste complète des fonctionnalités dépréciées qui ne sont plus prises en charge, veuillez consulter Fonctionnalités dépréciées non prises en charge dans le guide JBoss EAP 7 Notes de sortie.

2.5. Voir les documents de mise en route de JBoss EAP.

Veillez à bien lire le Guide de démarrage. Il contient des informations importantes :

  • Comment télécharger et installerJBoss EAP 7
  • Comment télécharger et installer Red Hat JBoss Developer Studio
  • Comment configurer Maven pour votre environnement de déploiement, gérer des dépendances de projet, et configurer vos projets pour utiliser les artefacts JBoss EAP BOM (« Bill of Material »)
  • Comment télécharger et exécuter des exemples d'applications Quickstart fournies avec ce produit

2.6. Analyse et planification de la migration

Chaque configuration d'application et de serveur est unique et vous devez comprendre tous les composants et l'architecture de la plateforme d'application et de serveur avant de tenter d'effectuer une migration. Votre plan de migration doit inclure une feuille de route détaillée pour tester et passer à la production, qui prenne en compte les informations suivantes :

Identifier les personnes disponibles pour le processus de migration
Identifier les parties intéressées, les chefs de projet, les développeurs, les administrateurs, et tous ceux qui sont responsables de la migration.
Vérifier la configuration de la plateforme de serveur d'applications et le matériel

Examinez la configuration de la plateforme et du serveur d'applications existants pour voir comment ils sont affectés par des changements de fonctionnalités dans JBoss EAP 7. L'examen doit inclure les éléments suivants :

  • Les versions et les systèmes d'exploitation
  • La base de données utilisée par les applications
  • Les serveurs web
  • L'architecture de sécurité
  • Le nombre et types de processeurs
  • Le montant de mémoire
  • Le montant de stockage de disques physiques
  • Migration de la base de données ou des données de messagerie
  • Autres composants qui ont pu être affectés par la migration
Vérifier l'environnement de production actuel

Vous devez prévoir de recréer l'environnement de production aussi proche que possible pour les essais et les mises en stage intermédiaires du processus de migration.

  • Prendre en compte les configurations de clusterisation. Voir la section Mise à jour d'un cluster dans le Guide de correctifs et de mise à jour de JBoss EAP pour plus d'informations sur la façon de migrer des clusters.
  • Si vous exécutez dans un grand domaine géré, considérez une approche graduelle pour la migration.
  • Déterminer si vous avez besoin de migrer des données de messagerie ou de base de données.
Examiner et comprendre l'application existante

Bien examiner et comprendre l'application JBoss EAP 6 existante. Familiarisez-vous avec son architecture, ses fonctionnalités, ses caractéristiques et ses composants, y compris :

  • La version JVM
  • Intégration avec d'autres composants middleware de serveur d'applications
  • Intégration avec un logiciel propriétaire de tierce partie
  • Utilisation des fonctionnalités qui auront besoin d'être remplacées
  • La configuration de l'application inclut des descripteurs de déploiement, JNDI, la persistance, la configuration et le pooling de JDBC, les sujets et files d'attente JMS, et la journalisation.

Identifier des incompatibilités de code ou de configuration qui auront besoin d'être modifiées pour la migration vers JBoss EAP 7.

Créer un plan de test détaillé
  • Le plan doit inclure un test de régression et des critères d'acceptabilité.
  • Il doit également comprendre un test de performance.
  • Mettez en place un environnement de test intermédiaire aussi proche que possible de l'environnement de production pour tester la migration avant de la faire passer en production.
  • Veillez bien à créer un plan de sauvegarde et un plan de retrait !
Examinez les ressources disponibles pour le processus de migration
  • Évaluez les aptitudes de l'équipe de développement et planifiez la formation ou une aide supplémentaire de la part de consultants.
  • Réalisez que vous aurez besoin de ressources et de matériel supplémentaires pour les étapes de staging et de test pendant le processus de migration jusqu'à ce que cette tâche soit complétée.
  • Déterminer si une formation formelle est utile. Si tel est le cas, ajoutez-là au calendrier.
Exécuter le plan
Rassemblez les ressources nécessaires et implémentez le plan de migration.
Important

Avant d'apporter toute modification à votre application, assurez-vous de bien créer une copie de sauvegarde.

2.7. Sauvegardez vos données importantes et vérifiez l'état de votre serveur

Avant de migrer votre application, vous devez être conscients des problèmes qui peuvent se présenter.

  • La migration peut supprimer des dossiers temporaires. Tout déploiement stocké dans data/content/ doit être sauvegardé avant la migration et restauré une fois que la migration est terminée. Sinon, le serveur ne pourra pas démarrer à cause du contenu manquant.
  • Avant la migration, gérer les transactions en cours, et supprimer le répertoire de transactions data/tx-object-store/.
  • Les données de minuteur persistantes data/timer-service-data doivent être vérifiées pour déterminer si elles sont compatibles. Avant la migration, vérifier les fichiers de deployment-* dans ce répertoire pour déterminer quels minuteurs sont en cours d'utilisation.

Veillez à sauvegarder les applications et la configuration du serveur actuelles avant de commencer.

2.8. Migrer une installation RPM

Important

Avoir plus d'une instance de RPM installée de JBoss EAP sur un seul serveur Red Hat Enterprise Linux n'est pas pris en charge. De ce fait, nous conseillons de migrer votre installation JBoss EAP vers une autre machine quand vous migrerez vers JBoss EAP 7.

Quand vous migrez une installation RMP de JBoss EAP de JBoss EAP 6 à JBoss EAP 7, veillez à ce que JBoss EAP 7 soit installé sur une machine qui n'a pas d'installation RPM de JBoss EAP existante.

Pour installer JBoss EAP 7 avec les RPM, voir le guide JBoss EAP Guide d'installation.

Le conseil de migration de ce guide s'applique également à la migration d'installations RPM de JBoss EAP, mais vous devrez modifier certaines étapes (comme la façon de démarrer JBoss EAP) pour que cela convienne à une installation RPM, comparé à un ZIP ou à une installation par programme d'installation.

2.9. Migration de JBoss EAP si vous exécutez EAP en tant que service

Si vous exécutez JBoss EAP 6 en tant que service, veillez à consulter à nouveau Configurer JBoss EAP en tant que Service dans le Guide d'installation sur la façon de configurer JBoss EAP 7.