Facebook EmaiInACirclel
Java

Mise à niveau des versions Java : Pourquoi et comment migrer votre projet

PentaGuy
PentaGuy
Blogger

Un grand nombre d’entre nous travaillent sur des projets Java lancés il y a plusieurs années, et probablement implémentés sous Java 5 ou 6. Il est peut-être prévu que certains migrent vers une nouvelle version de Java.

Si vous vous demandez pourquoi vous devez migrer, quelle version choisir et comment le faire, vous avez frappé à la bonne porte. Pentalog a assuré la transition vers des versions Java plus récentes de différents projets de clients, et est là pour répondre à toutes vos questions.

versions java

Nous pouvons développer une plateforme complexe hautement évolutive, ou répondre à vos besoins techniques si vous souhaitez migrer vers une version plus récente de Java.

Java ne va plus sortir de nouvelles versions « majeures »

Depuis Java 10, sorti en mars 2018, Oracle a décidé d’adopter un cycle de publication de six mois. En septembre 2017, Mark Reinhold, l’architecte en chef de la plateforme Java, a proposé de modifier le calendrier des publications et de passer ainsi à « une publication de fonctionnalité tous les six mois » pour remplacer le calendrier actuel, rythmé sur trois ans. Cette décision est motivée par le fait que Java est désormais en concurrence avec de nombreuses plateformes qui évoluent à un rythme plus rapide.

Pour que Java reste compétitif, il doit continuer d’avancer, et bien plus rapidement. Le cycle de publication bisannuel de Java permet de faciliter la mise à disposition des innovations.

Plus modestes, les fonctionnalités seront par conséquent plus faciles à adopter. Les mises à jour publiques de ces versions à court terme seront disponibles pendant six mois suivant la publication, jusqu’à leur remplacement par une nouvelle publication de fonctionnalités.

Tous les trois ans, à compter du mois de septembre 2018, Java 11 suivra le schéma d’une LTS (long-term support release, ou publication de support à long terme) avec des mises à jour disponibles pendant au moins trois ans, peut-être plus.

Pourquoi migrer vers les nouvelles versions de Java ?

Les raisons les plus évidentes motivant une mise à niveau sont les nouvelles fonctionnalités de langage et les améliorations de sécurité.

Par ailleurs, il existe d’autres raisons (mais moins importantes) d’envisager une migration :

  • Nouvelles fonctionnalités de langage

  • Performances optimales

  • Coder plus efficacement

  • Recommandations d’Oracle de désinstaller les versions antérieures à la version 8 pour éviter les risques de sécurité

  • Les anciennes versions ne sont plus supportées publiquement

  • Augmenter le coût du support fournisseurs sur les versions plus anciennes, car vous devez payer pour obtenir des patches de sécurité

  • Difficultés de garder des développeurs Java pour les faire travailler sur des projets Java 5/6

  • Les bibliothèques Java tierces ne sont plus développées ni supportées

La migration présente-t-elle des inconvénients ?

Pas d’inquiétude ! Il n’existe aucun inconvénient majeur à migrer vers une nouvelle version.

Pour résumer, plus vous retardez la mise à niveau, et plus le passage à une version Java sera conséquent, ce qui implique davantage de travail et de problèmes potentiels.

Besoin d’une équipe de développement Java expérimentée ? Découvrez les capacités de développement de nos équipes en Roumanie, en Moldavie et au Vietnam.

Votre objectif de migration : innovation ou stabilité ?

Quelles que soient les exigences de votre projet – demandez à n’importe quel développeur – un ou deux arguments favorisent l’adoption d’une version Java en particulier.

  1. Les développeurs qui aiment les innovations rapides pour exploiter les nouvelles fonctionnalités en production dès que possible peuvent utiliser la publication de fonctionnalités la plus récente ou une publication de mise à jour de ces fonctionnalités, et passer à la prochaine version une fois celle-ci déployée.

  2. Les développeurs qui privilégient la stabilité et ignorent les nouvelles fonctionnalités de chaque « publication de fonctionnalités » peuvent compter sur le calendrier tous les trois ans pour les publications de LTS. Java 8 est la version LTS actuelle, et Java 11 sera la prochaine. Java 8 était un véritable jalon du langage de programmation Java, et a amené le développement de Java à un niveau alors jamais vu. Néanmoins, il est prévu que les mises à jour publiques de Java 8 cessent à partir de janvier 2019.

Les excellentes fonctionnalités de Java 8 – Java 11

  Java 8
  
  Java 9
  
  Java 10
  
  Java 11
  
  Lambda Expressions
  
  Modularity
  
  Local variable type inference
  
  Local-Variable Syntax for Lambda Parameters
  
  Pipelines and Streams
  
  JShell
  
  Application class-data sharing
  
  A No-Op Garbage Collector
  
  Date and Time API
  
  Stream improvements
  
  Thread-local handshakes
  
  Dynamic Class-File Constants
  
  Default Methods
  
  HTTP 2.0 Client API
  
  Root certificates
  
  Remove the Java EE and CORBA Modules
  
  Parallel operations
  
  Process API
  
  Garbage collector interface
  
  
  
  Nashhorn JavaScript Engine
  
  Microbenchmarks
  
  Time-based release versioning
  
  
  

Un client de Pentalog nous raconte sa migration

« Grand professionnalisme, flexibilité et capacité à conserver une équipe stable : tels sont les facteurs de réussite clé de notre partenariat de longue date avec Pentalog. » Nicolas Gibert, Software Development Director OSB

Dans le cadre d’un projet, une équipe de développement logiciel agile Pentalog a initié une migration de Java 6 à 8. Tout au long du processus, l’application continuait d’être maintenue et développée. Le stack technologique englobait Java, Spring, Hibernate, Camel, ActiveMQ, PostgreSQL et CXF.

Nous avons commencé par une analyse approfondie des guides de compatibilité de Java 7 et 8 afin de prédire les problèmes pouvant entraver notre progression. Dans un second temps, une analyse supplémentaire a été effectuée concernant des dépendances tierces utilisées pour déterminer vers quelle version les mettre à niveau afin de capitaliser pleinement sur les fonctionnalités de Java 8.

Nous avons analysé l’ensemble des outils utilisés (intégration continue, serveurs de déploiement et outils d’analyse des codes) afin de nous assurer que ces systèmes étaient bien prêts pour Java 8.

Un plan de migration a été mis en place et présenté au client. Celui-ci l’a accueilli avec enthousiasme, car les avantages et le processus avaient été clairement expliqués et compris.

Nous avons commencé par développer le codebase à l’aide de JDK 8, pour voir si l’application allait compiler et s’exécuter.

Nous avons continué avec la phase de développement : mise à niveau du serveur de déploiement et déploiement de l’application.

Des tests de non-régression ont été effectués, ainsi que quelques suppressions de bugs mineurs. Nous avons alors procédé au changement du JDK sur les plateformes développeurs, QA, stage et production.

L’opération a été un véritable succès ! Une fois le processus de migration terminé, nous avons commencé à utiliser les nouvelles fonctionnalités du langage, l’ancien code a pu ainsi être retravaillé lorsque nécessaire en soumettant des requêtes spécifiques à notre équipe technique.

Pentalog dispose de plus de 200 développeurs Java expérimentés et travaillant à plein temps pour staffer votre équipe dédiée sous 2 semaines. Téléchargez notre catalogue des prix !

Conseils supplémentaires concernant Java

Chaque publication s’accompagne d’un guide de compatibilité précisant spécifiquement les composants qui ne sont pas rétrocompatibles. Ce guide fournit différentes informations sur ce à quoi l’on peut s’attendre lorsque l’on met à niveau une application à partir d’une version précédente, par exemple JDK 6 vers 7 ou JDK 7 vers 8. Ceux qui sautent une version (JDK 6 vers 8) doivent consulter le guide JDK 7 en cas d’éventuelles lacunes au niveau international.

Si vous prévoyez de migrer vers Java 8, vous devez savoir que cette version est rétrocompatible avec les versions antérieures. Ainsi, le processus de migration devrait se dérouler sans problème.

Migrer vers les versions Java 9/10 peut occasionner des problèmes, car certaines bibliothèques ne font plus partie de JDK. Bien que cela soit positif, car cela permet de nettoyer l’application, vous devrez définir des dépendances supplémentaires pour votre projet. Des publications rapides à court terme comme JDK 9 et 10 seront probablement traitées par les développeurs comme des logiciels de tests et d’expérimentation plutôt que pour la production, ce qui permet de comparer le rythme du nouveau cycle de publication à celui de l’ancien.

Le meilleur conseil que je puisse donner si vous travaillez encore sur une version antérieure à la va-vite, et de migrer vers une nouvelle version le plus rapidement possible pour éviter d’alourdir la dette technique. Attention à l’effet boule de neige, plus le fossé entre votre version et la plus récente est grand, et plus les difficultés seront importantes en termes de ressources et d’expertise lorsqu’il s’agira de migrer. Car au bout du compte, nous voulons tous un code plus propre, de meilleures performances, la réduction des risques de sécurité et une équipe de développement heureuse.

Découvrez une success story Pentalog, à laquelle 10 membres d’équipe Java dédiés ont participé

Découvrez plus d’informations sur les projets de développement Java externalisés avec Pentalog !


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *