Amazon a récemment publié Corretto 8 GA, une distribution de l'OpenJDK "gratuite, multiplateforme et utilisable en production".
Une pré-version de Corretto a été annoncée en novembre dernier à Devoxx Belgique par Arun Gupta, Principal Open Source Technologist chez Amazon Web Services, et Yishai Galatzer, Senior Engineering Manager chez Amazon Web Services. A également fait une apparition surprise James Gosling, père de Java et Distingushed Engineer chez Amazon Web Services, qui a donné une keynote spéciale durant laquelle il a introduit Corretto. Le plan de publication ci-dessous, précisant les publications GA de Corretto 8 et Corretto 11 a été présenté à Devoxx Belgique.
Amazon rejoint les éditeurs tels qu’Oracle, Azul, Red Hat et BellSoft, qui fournissent un ensemble de distributions gratuites de l’OpenJDK, avec un support commercial de leurs distributions, parmi lesquels se trouvent également l’équipe de l’AdoptOpenJDK, effort soutenu par la communauté, qui a également lancé une ferme de serveurs pour créer des distributions gratuites de l’OpenJDK.
Amazon a développé Corretto pour montrer son engagement à maintenir l’accès gratuit à Java, suite à l’inquiétude grandissante dans la communauté Java, due au fait que le support à long terme du JDK pourrait ne plus être gratuit.
Quand InfoQ a relayé l’information sur la publication de la pré-version de Corretto, Martijn Verburg, co-fondateur et PDG de jClarity, co-fondateur de l’AdoptOpenJDK et leader du London Java Community, a été interrogé sur ce qu’il pensait du fait qu’Amazon se joigne à la liste des éditeurs qui soutiennent l’OpenJDK :
Avoir Amazon qui annonce Corretto est une grande reconnaissance pour l'OpenJDK. Cela conforte l'idée qu’il s’agit d'un environnement d'exécution que l'on peut utiliser en production ! Je pense que de nombreuses organisations frileuses verront cela et se diront : "Si Amazon utilise l'OpenJDK de même qu'IBM, Red Hat et les autres, alors mes derniers doutes vont s'estomper !"
Amazon a constaté un intérêt grandissant pour Corretto depuis ses débuts en novembre dernier. Comme suite aux retours de la communauté Java, Amazon a implémenté de nombreuses améliorations et patches de sécurité dans la publication GA, comme on peut le voir dans la documentation et les notes de publication.
Prévu sur une base trimestrielle, ou à la demande, le support à long terme d’Amazon pour Corretto inclut : "des correctifs de sécurité, des améliorations de performance (pour les fonctions les plus utilisées), l'exécution du ramasse-miettes, empêcher les situations de saturation de la mémoire, de même qu'un meilleur suivi du fonctionnement des applications et la gestion des threads.".
Durant une récente téléconférence a destination des Java Champions sur les publications à venir, RC et GA, de Corretto 8 et Corretto 11, InfoQ a recueilli des informations sur les prochaines choses que Corretto va apporter à Java : les derniers patches de sécurité, des outils de gestion de Corretto, l’installation de Corretto via SDKMAN! ainsi qu’une image Docker officielle. Durant la session de questions / réponses qui a suivi, la question du support des publications futures de l’OpenJDK par Corretto a été soulevée. La réponse a été :
Nous ne prévoyons pas de support le JDK 9 ou le JDK 10. Pour le moment nous ne prévoyons pas non plus de supporter les JDK 12, JDK 13 et JDK 14, parce que fournir du support à long terme est la principal raison d’être de Corretto. Ajouter des fonctionnalités et des améliorations en est la deuxième raison.
Bien que nous construisions [des Feature Releases] et que nous les utilisions en interne chez Amazon, l'effort pour les diffuser publiquement ne serait peut-être pas gigantesque. Nous tenons à maintenir le niveau de qualité au plus haut. Donc pour le moment nous nous concentrons sur 8 et 11. Nous écouterons les retours et si nous trouvons suffisamment de clients intéressés par nos publications futures, nous les supporteront également. Pour le moment quasiment aucun de nos clients ne souhaitent utiliser des Feature Releases en production, et les quelques uns qui ont soulevé ce point ne sont intéressés par ces versions que pour vérifier s'ils sont prêts pour la version suivante, mais pas pour l'utiliser en production. Donc la réponse est "peut-être".
Corretto 8 est aligné avec la version 8u202 de l’OpenJDK et Corretto 11, toujours en préversion, doit être publié en version GA dans la première moitié de cette année.
Arun Gupta a parlé à InfoQ sur cette dernière publication.
InfoQ : quelles sont vos responsabilités en ce moment, quelles est votre activité quotidienne ?
Arun Gupta : Je suis Principal Open Source Technologist chez Amazon. Je travaille avec différentes équipes d’Amazon pour les aider à définir leur stratégie vis à vis de l’Open source. Avec plus de 20 ans d’expérience en Java, je suis aussi Java Champion et travaille activement avec l’équipe Corretto pour définir leur engagement avec la communauté.
InfoQ : qu’est-ce qui a poussé Amazon à créer une distribution de l’OpenJDK ?
Arun Gupta : chez Amazon, nous commençons toujours par penser au client. Amazon utilise fortement Java, et depuis 2016 nous avons pris conscience que nous ne pouvions nous appuyer sur aucune distribution binaire. Nous avons des milliers d'applications Java qui fonctionnent en production. Les patches trimestriels de sécurité publiés par l'OpenJDK introduisent souvent de subtils changements de comportements qui peuvent parfois nous impacter fortement. En même temps il y a urgence a publier ces patches en production au moment où ils sont publiés, pour des raisons de sécurité. Mais une distribution binaire empêcherait de corriger la JVM ou les bibliothèques. Donc nous avons décidé de construire Java à partir du code source pour régler les contraintes et les exigences qui sont les nôtres.
Nous avons commencé avec des expérimentations dans quelques équipes et sommes partis de là pour construire un outil qui d'un simple clic peut basculer des équipes sur Corretto. Nous avons gagné en confiance, et donc nous avons commencé à migrer nos applications en masse de façon automatique. Nous avons migré des milliers de service sur une période de quelques mois, suivant un processus entièrement automatisé, mais tout en migrant de façon incrémentale, pour contrôler la portée de problèmes non identifiés. Le processus s'est déroulé sans accroc et nous n'avons trouvé qu'une seule instance que nous avons dû réparer sur les milliers qui ont migré.
C’est comme cela que Corretto est né en interne. Notre intention initiale était juste de construire un JDK pour nous-même. C’est alors qu’Oracle a annoncé la fin des mises à jour publiques de l’Oracle JDK 8 et le rythme de publication de 6 mois à partir de Java SE 9. C’est à ce moment nous avons perçu un besoin, non seulement pour les développeurs Amazon, mais aussi pour la communauté Java.
Nous avons eu tous ces clients qui nous ont approché, inquiets pour le support de leurs applications Java. Ces clients étaient aussi inquiets à l'idée de tester leurs applications avec plusieurs distributions binaires. Chaque distribution arrive avec son lot de restrictions. Ils nous ont demandé de leur fournir une distribution qui pourrait fonctionner sans restrictions.
De nombreuses personnes parmi eux nous ont explicitement demandé de leur fournir une solution. Les applications de nos clients et de la communauté ne fonctionnent pas exclusivement sur AWS. Les gens ont besoin d'exécuter Java en local sur leur portable de développement, dans les locaux de leur société, sur différents systèmes d'exploitation et il n'y avait pas de solution gratuite pour eux. C'est à ce moment que l'idée nous est venue d’apporter Corretto à la communauté Java.
Amazon fournissait l'OpenJDK sur Amazon Linux depuis longtemps. Nous avons regardé les besoins de nos clients, et il est apparu clairement qu'il n'y avait pas de raison de se limiter à Amazon Linux, AWS ou tout autre type de restriction. Aujourd'hui Corretto est disponible sur tous les principaux système d'exploitation et nous le fournissons gratuitement, avec un support à long terme, pour la production. Vous pouvez le faire fonctionner sur le Cloud de votre choix, dans vos locaux, sur votre machine de bureau, et le distribuer avec votre logiciel.
InfoQ : comment le nom "Corretto" a-t-il été choisi ?
Arun Gupta : Corretto est un terme humoristique qui signifie "correct" en italien. Corretto correspond aussi à un expresso avec de l’alcool dedans, nous avons aimé ça.
InfoQ : quels sont les particularités de Corretto comparé à celles que les éditeurs mettent dans leurs propres distributions de l'OpenJDK ?
Arun Gupta : nos clients nous ont dit que toutes les autres distributions existantes étaient fournies avec des limitations - soit vous avez quelque chose à payer, ou elles sont limitées à certaines plateformes, ou elles ne peuvent être utilisées que pour le développement mais pas pour la production. Cela constituait un frein dans leurs processus parce que nombre d'entre eux ont des plateformes différentes à supporter. Les clients veulent économiser sur le temps de développement, économiser sur les phases de test et sur la certification de leurs produits sur ces plateformes. Nous avons donc décidé de prendre cela en considération et avons travaillé pour apporter une réponse à toutes ces préoccupations. Ensuite nous fournirons tout ceci sans restrictions et le donnerons à l'OpenJDK.
De plus, nous voulons que les choses soient simples, et que Corretto soit un pur remplacement pour les distributions construites sur Hotspot. Cela fonctionnera sauf si vous utilisez des fonctionnalités commerciales qui ne sont pas disponibles dans la version Open source. Bien sûr, si une distribution existante de l'Open JDK vous convient aujourd'hui, nous vous encouragerons probablement à continuer à l’utiliser.
InfoQ : Amazon prévoit-il de sponsoriser l'initiative AdoptOpenJDK ?
Arun Gupta : Oui, nous travaillons avec AdoptOpenJDK pour héberger les binaires de Corretto, et leur fournir les ressources de calcul dont ils ont besoin. Amazon et AdoptOpenJDK travaillent de concert et échangent les éléments dont on a besoin pour construire et tester les constructions de l'OpenJDK.
InfoQ : quels sont les plans à long terme pour Corretto ?
Arun Gupta : nous avons des plans pour améliorer et continuer à supporter Corretto et supporter le projet en amont. Environ 90% à 95% de nos projets sont pilotés par les besoins de nos clients. Corretto 8, qui correspond à l'OpenJDK 8, a été publié en GA cette année. Corretto 11, qui correspond à OpenJDK 11, est encore en pré-publication à l’heure de cette interview. Nous travaillons à la version GA de Corretto 11.
Nombre de nos clients utilisent le JDK 8 et ils n'ont pas en projet de prendre le JDK 11 dans un futur proche. Il y même des chances qu'ils utilisent le JDK 8 pour de nombreuses années encore. Nous voulons améliorer les choses pour que les systèmes existants continuent à fonctionner normalement, et pour améliorer leurs performances. Corretto 8 offre un support à long terme gratuit jusqu'à juin 2023 au moins, et Corretto 11 offrira la même chose jusqu'en août 2024 au moins.
Un pré-requis pour le succès de Corretto est que le projet amont soit lui-même un succès. L'équipe Corretto s’investit dans la maintenance de l'OpenJDK8u sous la direction de Red Hat. Ce projet est le projet amont sur lequel s’appuie toutes les distributions de l'OpenJDK. C’est la fondation de nos publications trimestrielles. Nous sommes en train de recruter de nouveaux membres dans l’équipe Corretto au niveau chef d’équipe et développeur pour augmenter nos capacité à livrer des améliorations supplémentaires et apporter du support à tous ces projets.
Nous travaillons aussi avec Oracle, Red Hat et quelques autres partenaires qui sont impliqués dans les patches de sécurité, la correction des bugs, et le portage vers le projet amont OpenJDK. Nous avons besoin de publier tout ceci avec Oracle pour qu'il n'y ait pas de différence dans les patches de sécurité de toutes les distributions de l'OpenJDK.
Corretto comporte deux composants. L'un d'eux est l'OpenJDK, il s'agit du code source disponible sur openjdk.java.net. Le second ce sont les patches, les instructions de construction, les tests et la documentation. Si vous avez le moindre retour pour Corretto, soumettez le, envoyez un pull request sur github.com/corretto. Si cela implique un changement dans l'OpenJDK en lui-même, que ce soit dans la base de code ou les patches, alors ce sont des contributions qui doivent y être soumis directement. S’il s’agit du système de construction, de la documentation ou de tests spécifiques à Corretto, merci de le soumettre à notre repository GitHub.
Resources
- Oracle Announces New Support Pricing Structure for Java, InfoQ (22 juin 2018)
- [Java Community Leaders Clarify Platform Support Options: "Java Is Still Free"](* Oracle Announces New Support Pricing Structure for Java, sur InfoQ (June 22, 2018)
), InfoQ (17 septembre 2018) - Introducing Amazon Corretto, a No-Cost Distribution of OpenJDK with Long-Term Support, Arun Gupta (14 novembre 2018)
- Amazon Releases Corretto: A Multiplatform Java OpenJDK Build with No-Cost Support, InfoQ (21 novembre 2018)
- Amazon Corretto 8 Now Generally Available, Arun Gupta (31 janvier 2019)