JavaRush /Blog Java /Random-FR /A quoi va conduire la sortie fréquente de nouvelles versi...

A quoi va conduire la sortie fréquente de nouvelles versions du JDK ?

Publié dans le groupe Random-FR
C'est une ère de changement pour Java. Les versions du JDK seront désormais publiées selon un calendrier plutôt qu'au fur et à mesure que de nouvelles fonctionnalités seront disponibles. Cette approche a ses avantages et ses inconvénients, mais comment de tels changements affecteront-ils le JDK 8 ? Simon Ritter, célèbre évangéliste Java, champion Java et CTO associé chez Azul Systems, explique pourquoi le « nouveau Java dans les délais » est un compromis entre stabilité, sécurité et coût.
À quoi mènera la sortie fréquente de nouvelles versions du JDK - 1
En 2018, des changements importants attendent le monde de Java. Comme annoncé l'année dernière, nous passons à la publication des versions du JDK de manière planifiée, plutôt que de publier des versions au fur et à mesure que de nouvelles fonctionnalités deviennent disponibles. C'est une excellente nouvelle car désormais de nouvelles fonctionnalités seront incluses dans les versions dès qu'elles seront prêtes, et les développeurs y auront accès beaucoup plus rapidement. La sortie du JDK 10 est prévue pour mars et nous sommes déjà entrés dans la deuxième phase de correction de bugs, donc tout se passe comme prévu. La demande de spécification Java (JSR) est déjà en cours de développement et disponible pour commentaires publics. Il existe même des propositions d'amélioration du JDK (JEP) ciblant déjà le JDK 11 . Il semble que Java se porte très bien.

Le temps change

Cependant, de nombreux autres changements associés à ce calendrier de sortie se manifesteront cette année et pourraient ne pas être aussi agréables. En 22 ans et demi, nous avons réussi à nous habituer au fait que Java, en tant que plate-forme, possède trois propriétés fondamentales directement liées à la manière dont il est pris en charge.
  1. La stabilité . Auparavant, les fonctionnalités ajoutées avec une nouvelle version du JDK, bien que minutieusement testées, nécessitaient des tests en production. Cela a permis d’identifier les lacunes qui devaient être corrigées. Pour garantir que les utilisateurs puissent continuer à travailler avec des versions stables tout en testant une nouvelle, les mises à jour se chevauchaient toujours partiellement dans le temps.

    Si nous regardons les dernières versions commençant par JDK 6, nous constatons que les mises à jour pour JDK 5 ont continué à être publiées pendant près de 3 ans supplémentaires (2 ans et 11 mois pour être exact). Avec l'introduction du JDK 7, des mises à jour publiques du JDK 6 ont été publiées pendant un an et 9 mois. Et les mises à jour du JDK 7 ont été publiées dans les 13 mois suivant la sortie du JDK 8.


  2. Sécurité . Les équipes de développement et de support d'OpenJDK, Oracle, et avant eux Sun Microsystems (la société qui a créé Java, ndlr) ont toujours mis la sécurité des plateformes au premier plan. Comme vous vous en souvenez, Java était initialement destiné aux appareils mobiles (notamment les PDA Star7).



    L'un des principaux objectifs de développement était de garantir que le code puisse être transféré sur le réseau et exécuté en toute sécurité. Des mises à jour sont régulièrement publiées pour le JDK, qui incluent des correctifs pour les problèmes de sécurité découverts. Si vous installez ces mises à jour immédiatement après leur publication, vous serez totalement en sécurité.


  3. Coût zéro . L’un des avantages de Java est qu’il a toujours été une plate-forme gratuite, même avant sa sortie en tant que logiciel open source en 2006. Il existait certaines restrictions quant aux endroits où Java pouvait être utilisé sans redevance, mais cela s'appliquait toujours aux applications mobiles et intégrées ; pour les clients de bureau et les serveurs d'entreprise, la version actuelle de Java était toujours gratuite. L'un des changements déjà en cours dans le JDK est la sortie des exécutables OpenJDK sous licence GPLv2 avec l'exception "Classpath". Cette licence n'impose aucune restriction sur la façon dont vous pouvez déployer Java Runtime Environment.

Cependant, les changements dans la manière dont le JDK est développé et publié nécessitent un examen attentif des plans de migration des applications vers de nouvelles versions de Java. Avec ce nouveau calendrier de publication, les efforts visant à garantir que les mises à jour sont disponibles pour plusieurs versions précédentes pourraient ne pas être réalisables. Pour répondre aux besoins de deux groupes d'utilisateurs disparates (ceux qui exigent rapidement de nouvelles fonctionnalités et ceux qui apprécient la stabilité à long terme), Oracle a décidé de passer à un modèle de support à long terme (LTS). Les versions spécifiques du JDK seront considérées comme des versions LTS, ce qui signifie qu'elles recevront des mises à jour pendant trois ans. Toutes les autres versions intermédiaires sont appelées versions de fonctionnalités et reçoivent des mises à jour pendant seulement 6 mois. Pour rester synchronisé avec ce nouveau système, JDK 8 a été classé comme version LTS. La prochaine version sera JDK 11, prévue pour septembre 2018. Le plus gros changement apporté par ce nouveau modèle est que les mises à jour entre les versions ne se chevaucheront plus dans le temps . Je l'ai spécifiquement mis en italique gras parce que c'était absolument clair. Voici un graphique montrant la disponibilité des mises à jour pour les versions du JDK jusqu'au JDK 19.
A quoi mènera la sortie fréquente de nouvelles versions de JDK - 2 ?
Dans la figure : Cycle de vie Java SE – Calendrier de plus de 5 ans Mises à jour publiques sans chevauchement ("support Cliff") Support commercial Oracle Support commercial étendu Oracle
Cycle de vie de Java SE - Planification de plus de 5 ans Mises à jour publiques Chevauchement nul Exécutables publics d'Oracle (pas de support) Support commercial Oracle Support commercial étendu Oracle
Conséquence directe de ces changements, la plateforme Java est toujours stable, sécurisée et gratuite, mais vous devez désormais choisir deux de ces trois fonctionnalités. Dans les futurs déploiements Java, les trois propriétés ne seront pas disponibles en même temps.

Laissez-moi vous expliquer un peu plus

Disons que vous êtes préoccupé par la sécurité (comme vous devriez l'être), mais que vous ne voulez pas dépenser d'argent. Dans ce cas, vous devez migrer vers les nouvelles versions du JDK dès leur sortie. Dans les cas où le support ne se chevauche pas dans le temps (versions Feature et LTS), vous devrez le faire afin de recevoir de nouveaux correctifs de sécurité. Malheureusement, sans chevauchement temporel, vous devrez immédiatement passer aux versions du JDK qui n'ont pas encore été testées en production, vous perdrez donc la stabilité précédente. Une autre option consiste à choisir la stabilité à coût nul. Là encore, c'est possible : il vous suffit de continuer à utiliser la version LTS précédente après la sortie de la nouvelle. Vous bénéficiez de la stabilité que vous connaissez, vous n'avez rien à payer, mais vous n'obtiendrez aucun correctif de sécurité car ils ne sont plus disponibles pour cette version. Enfin, si vous voulez de la stabilité et de la sécurité, il faut payer. Vous pouvez continuer à utiliser la version LTS précédente, mais l'accès à la sécurité et aux corrections de bugs ne sera disponible que via un contrat de support commercial.

Et un petit bloc publicitaire de l'auteur :)

Azul (mon entreprise) a créé un ensemble d'exécutables OpenJDK sous la marque Zulu Enterprise, construits à partir des sources, testés avec des benchmarks TCK/JCK et même analysés avec des utilitaires que nous avons développés pour garantir qu'il n'y a pas de corruption de code open source due à de mauvais fichiers d'en-tête. . Nous offrons la possibilité de télécharger gratuitement la version actuelle, ainsi qu'un support commercial pour les personnes intéressées. Nous avons récemment commencé à proposer un nouvel ensemble d'options de support pour Zulu, visant à offrir aux clients une flexibilité maximale. Nous souhaitons offrir aux utilisateurs la possibilité de migrer vers une nouvelle version du JDK adaptée aux besoins de leur entreprise et de leurs clients. Pour cela, nous proposons trois options de support :
  1. Accompagnement à court terme (STS). STS offre aux utilisateurs l'accès le plus rapide aux nouvelles fonctionnalités Java, avec une prise en charge suffisante pour une transition en douceur vers les nouvelles versions du JDK. Zulu Enterprise fournit aux versions STS un accès aux corrections de bugs, aux mises à jour de sécurité et à d'autres correctifs selon les besoins (« support de production ») pendant 12 mois, plus 6 mois de support supplémentaire axé sur le support de conseil et l'aide aux utilisateurs pour migrer vers une version plus récente du JDK. (« support étendu »). Cela équivaut à un cycle de vie de 18 mois.

  2. Soutien à moyen terme (MTS). Les versions MTS vous permettent d'utiliser les nouvelles fonctionnalités disponibles dans les versions de fonctionnalités en production sans avoir à attendre une nouvelle version LTS. Azul prévoit une version MTS par an entre les versions LTS et fournit un support de production pendant 18 mois après la prochaine date de sortie LTS de disponibilité générale. Cela garantit un chevauchement temporel et une transition « en douceur » pendant le déploiement en production. Une fois le support de production terminé, 12 mois supplémentaires de support étendu sont fournis.

  3. Support à long terme (LTS). Il est fourni pour les versions considérées comme LTS par la communauté OpenJDK et offre 8 ans de support en production avec deux années supplémentaires de support étendu.
Voici un autre dessin pour que ce soit plus clair.
A quoi mènera la sortie fréquente de nouvelles versions de JDK - 3 ?
Dans la figure : Cycle de vie de Java SE – Calendrier de plus de 5 ans Oracle Binaires accessibles au public (non pris en charge) Support commercial Oracle Support commercial étendu d'Oracle Support commercial de production Azul Zulu Support commercial étendu (passif) d'Azul Zulu
Cycle de vie Java SE - Planification de plus de 5 ans Exécutables publics d'Oracle (pas de support) Support commercial Oracle Support commercial étendu Oracle Support de production commerciale d'Azul Zulu Support commercial étendu (passif) d'Azul Zulu
Si vous utilisez actuellement JDK 8 sans contrat de support commercial et que vous maintenez votre système stable et sécurisé grâce à des mises à jour publiques, vous voudrez peut-être réfléchir à ce que vous ferez à partir de septembre. Azul s'engage à vous aider, alors n'hésitez pas à nous contacter si vous avez besoin d'aide.

conclusions

Plusieurs aspects de la plateforme Java évoluent cette année, la plupart pour le mieux. Accès plus rapide aux nouvelles fonctionnalités, sortie ouverte d'utilitaires tels que Flight Recorder et Mission Control, sortie des exécutables OpenJDK sous licence GPLv2 avec l'exception "Classpath". La triste vérité, cependant, est que le généreux support gratuit habituel pour la plate-forme Java est en train de devenir une chose du passé. Java est toujours stable, sécurisé et gratuit. Parmi ces trois qualités, lesquelles sont les plus importantes pour vous et vos utilisateurs ?
A quoi va conduire la sortie fréquente de nouvelles versions de JDK - 4 ?

A propos de l'auteur

Simon Ritter est directeur technique adjoint chez Azul Systems. Simon travaille dans le secteur informatique depuis 1984 et est titulaire d'un baccalauréat en physique de l'Université Brunel au Royaume-Uni.

Simon a rejoint Sun Microsystems en 1996 et a consacré du temps au développement et au conseil Java. Depuis 1999, il présente les technologies Java aux développeurs, en mettant l'accent à la fois sur la plate-forme Java principale et sur les applications client et embarquées. Désormais chez Azul Systems, il continue d'aider les gens à mieux comprendre Java et les produits JVM d'Azul. Vous pouvez le suivre sur Twitter : @speakjava .

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION