Amazon Corretto技术细节探秘
在比利时安特卫普举行的Devoxx BE大会上,亚马逊发布了Corretto预览版,这是Java的一个参考实现,一个“免费、跨平台、生产就绪”的OpenJDK版本。在开幕主题演讲中,Java语言创始人James Gosling宣布Corretto可以作为所有Java SE发行版的直接替代品,但使用了OpenJDK中没有的功能的场景除外(例如Java Flight Recorder)或当前正在非HotSpot JVM上运行的工作负载。亚马逊计划在2019年将Corretto作为亚马逊Linux 2的默认OpenJDK。
Corretto 8的预览版本对应于Java 8,二进制安装文件目前可在Amazon Linux、macOS和Windows上安装。GA版本计划于2019年第一季度推出,并将增加对Ubuntu和Red Hat Enterprise Linux的支持。亚马逊将至少在2023年6月之前为Corretto 8提供免费的安全更新。对应于OpenJDK 11的Corretto 11将于2019年上半年推出。亚马逊至少在2024年8月之前为Corretto 11提供每季度更新。
AWS首席开源技术专家Arun Gupta在AWS开源博客上发布公告称,Java是AWS客户使用的最流行的语言之一,亚马逊致力于支持Java并保持Java免费。
我们正在向客户提供免费、长期支持的Java,并提供季度更新,包括错误修复和安全补丁。AWS还将在季度计划之外为客户提供紧急修复。
在Oracle最近宣布改变Java产品支持策略之后——主要是移除Java的免费长期支持(LTS)——很多亚马逊客户开始担心他们必须为LTS版本的Java支付费用才能运行他们的工作负载。之前,亚马逊确认亚马逊Linux中的LTS版本Java将继续获得支持,现在开始跟进Corretto的预览版。
在Devoxx BE的分组讨论会上,Gupta与AWS JDK团队经理Yishai Galatzer进行了交谈。两人谈到,Corretto 8包括来自较新OpenJDK版本的反向移植,以及来自社区和亚马逊新开发的增强功能。发布过程包括对数千种Amazon生产服务进行测试,因此修复程序可以在发现问题后的几天内发布。亚马逊还在每个Corretto版本上运行Java技术兼容性工具包(TCK),以确保与Java SE平台的兼容性。
Corretto中包含的额外补丁和改进是在当前的OpenJDK上游代码库之外,这些改进让亚马逊能够“解决真实的大规模服务问题,满足高性能和可扩展性需求”。这些补丁包括:[C8-1]当长时间运行的本机调用导致G1 GC挂起,防止过早抛出OutOfMemoryException;[C8-2]从OpenJDK 10反向移植,修复了JDK-8177809:“File.lastModified()
丢失毫秒精度(总是以000结尾)”;[C8-17]在使用gcc7时,提高JVM源代码的可移植性。
亚马逊最近已经开始参与贡献OpenJDK,Gupta的博文称“我们期待与OpenJDK社区密切合作,共同开发OpenJDK 8和11的未来增强功能”。他说,“我们在下游为OpenJDK提供修复,根据我们自己的经验和需求添加增强功能,然后构建成Corretto”。不过,这确实增加了上游OpenJDK代码库和Corretto之间存在微妙差异的可能性。
如果针对这些补丁的努力被延迟或不适合OpenJDK项目,我们会将它们提供给我们的客户,只要能够为客户带来价值。如果在OpenJDK中使用了不同的方式解决问题,我们将在安全的情况下采用他们的解决方案。
在安装好Corretto二进制文件后,用它来运行Java应用程序,“现有的命令行选项、调整参数、监控和其他内容将继续像以前一样保持不变”。但前提是需要通过HotSpot JVM执行应用程序,并且如果当前正在使用其他的JVM,例如Eclipse OpenJ9,那么一些命令行选项可能不兼容,需要做出修改。Devoxx的参会者问在未来是否支持其他JVM,Galatzer表示,目前只有HotSpot将与Corretto捆绑在一起。
Corretto的源代码可以通过GitHub获得,InfoQ与Gupta取得了联系,问他该项目是否接受来自社区中的提取请求和补丁。
是的。有关Corretto的拉取请求可以通过https://github.com/corretto提交。任何与OpenJDK相关的问题都需要根据OpenJDK贡献者协议提交到相应OpenJDK代码库中,让整个社区都可以从修复中受益。在向OpenJDK提交代码后,我们建议再与Corretto团队就提交的问题展开讨论,并确定创建新的Corretto PR是否有助于加速修复。
他还指出在Corretto和OpenJDK上提交bug的公开程序:
OpenJDK相关的bug应该提交到OpenJDK代码库中,然后在Corretto上提供该bug的链接。这是为了让整个社区都知道与这个bug相关的代码或想法。如果存在只与Corretto相关的构建脚本、文档和工件相关的问题,那么应该将问题提交到https://github.com/corretto。
HackerNews和Twitter上针对发布公告的讨论,例如,Java Champion及Joda-Time的作者Stephen Colebourne比较关注Corretto版本的发布周期。Gupta证实,目前只支持与OpenJDK的LTS版本相对应的Corretto版本:
目前,我们计划遵循Oracle的LTS发布周期。因此,除了Corretto 8和Corretto 11之外,下一个LTS版本将是Corretto 17。
OpenJDK的其他版本也可用,包括Oracle的Java、Red Hat的OpenJDK构建版本,以及来自AdoptOpenJDK组织的社区构建版本。AdoptOpenJDK致力于促进OpenJDK的采用,一股来自民间社区的力量,由一系列商业组织、Java用户组和Java开发者组成。InfoQ联系到了Java Champion、LJC和OpenJDK Build Farm项目的负责人Martijn Verburg,询问了他对发布公告的看法:
亚马逊宣布Corretto是对OpenJDK作为生产环境中可行的运行时的额外认可!我认为很多保守组织会看到这一点,他们会说“如果亚马逊、IBM、Red Hat等正在使用OpenJDK,那么我也就没有什么疑虑了!”
InfoQ还问到亚马逊是否与AdoptOpenJDK合作,Verburg回答说:
“亚马逊曾经与AdoptOpenJDK合作,使用我们的一些脚本和专业知识解决他们的Windows和Mac安装程序问题,并改进他们的测试。AdoptOpenJDK的精神一直是关于Open Infrastructure As Code(请参阅https://adoptopenjdk.net/about.html的第3个要点),我们欢迎亚马逊使用这些资源,我们期待继续与他们合作。”
AdoptOpenJDK项目的一级赞助商包括Azul Systems、IBM、LJC、微软Azure、Ocado和Packet,InfoQ还问到了亚马逊对社区的参与情况以及Java生态系统发生碎片化的可能性:
AdoptOpenJDK还在与亚马逊和其他OpenJDK提供商讨论进一步的举措,以缓解对碎片化的担忧。例如,AdoptOpenJDK有一个开放的测试套件和测试管道(40-60,000个测试),可用于测试任意的二进制文件。这为所有的OpenJDK提供商提供了一个他们可以达成的公共质量标准基础。
为了减少对碎片化的一些潜在担忧,AdoptOpenJDK将强烈鼓励亚马逊和其他OpenJDK提供商将他们的补丁提交给OpenJDK。亚马逊在他们的常见问题解答中也提到了这种担忧(https://aws.amazon.com/corretto/faqs/)
Verburg还指出Java生态系统在商业和业余爱好者中都有广泛的应用,并且认为有必要提供透明的构建过程。
AdoptOpenJDK仍然是供应商中立的,社区可以生成经过严格测试的OpenJDK构建版本,最终用户可以清楚地看到他们所使用的每个二进制文件的构建过程。
他继续说道,亚马逊目前以Corretto为目标的平台之外还存在很多其他的硬件架构、操作系统和Java版本:
AdoptOpenJDK将继续支持整个生态系统,提供广泛的平台支持(ARM32/64、Win 32、AIX、Linux s390、PPC以及Win、Mac OS X和Linux x86)和版本变体(Eclipse OpenJ9 VM、OpenJDK 8,9,10,11、Project Amber等)。
最后,Verburg鼓励社区通过为AdoptOpenJDK这样的项目作出贡献来共同参与共建Java的未来。
我们已经有几百万的下载量,社区成员,如IBM、Red Hat、Azul、Ocado、SAP、LJC(以及亚马逊)每天都参与其中。在人们看来,这个项目是一个对软件行业具有长久意义的重要公共资源。
现在让我们回到Gosling在Devoxx上介绍Corretto这个话题上,Gosling向Java的咖啡主题历史致敬——Caffè corttto是一种意大利饮料,含有少量白酒的浓缩咖啡——并向Devoxx与会者表达了他的激动心情:
亚马逊在Java方面有着悠久而深厚的历史。我很高兴看到我们内部的任务关键型Java团队的努力正在走向世界。
用户可以在aws.amazon.com/corretto上下载Corretto 8,同时还提供了文档,其中包含一个入门指南,指南中包含了所有受支持平台的完整说明。用户也可以在stackoverflow或Twitter(@awsopen)上提出相关问题。
查看英文原文:Amazon Release Corretto: A Multiplatform Java OpenJDK Build with No-Cost Support
Amazon Corretto技术细节探秘相关推荐
- AWS 推出长期支持的 OpenJDK 免费分发版本 —— Amazon Corretto
简评:听说 Oracle JDK 要收费了,Oracle 要限制 Java 的商业或生产用途,针对这个问题,AWS 将会推出 Amazon Corretto. Java 是 AWS 用户使用的最流行的 ...
- 亚马逊抢甲骨文的 Java 饭碗,推出 Corretto
Corretto 14 日亚马逊发文宣布 Amazon Corretto 的预览版,这是一个免费的.跨平台生产就绪的 OpenJDK 发行版. 这是亚马逊继前不久重申对 Amazon Linux 中的 ...
- 亚马逊 OpenJDK 发行版 Corretto GA
亚马逊 OpenJDK 发行版 Corretto 现在已经 GA. Amazon Corretto 是亚马逊于去年 11 月份推出的 OpenJDK 8 的发行版,它支持多种平台,可以在云端与本地计算 ...
- 亚马逊Corretto 8
更新! 我已将在Docker中运行Corretto的选项更新为使用Docker Hub中可用的amazoncorretto Docker映像. Amazon Corretto是OpenJDK的生产就绪 ...
- amazon白皮书学习 I
从目录学习 Introduction -1 What is Cloud Computing?..1 Six Advantages of Cloud Computing -2 Types of Clou ...
- 程序员们请收好这本JVM日历:Java 2018大事回顾
专注于Java领域优质技术号,欢迎关注 来源:ImportNew - 唐尤华 一年过去了,是时候发布新一版 Java Advent 日历.这篇是发布的第六个日历,能够参与这一季的日历让我感到非常荣幸. ...
- spring版本 jdk8_从JDK8升级到JDK11,看这篇就足够了
原文地址:https://blog.codefx.org/java/java-11-migration-guide/. 在原文的基础上,增加了一些我遇到的具体的坑还有在特定场景下的解决方案,供大家参考 ...
- 为什么Spring仍然会是云原生时代最佳平台之一?
简介: 基于Java语言的Spring生态,还能否适应新的开发方式,比如Cloud Native.Serverless.Faas等,它还会是云原生时代的最佳平台的选择吗?本文将从5个角度来为你分析一下 ...
- Oracle 屠刀下的 Java 软件公司怎么活?
2019 年 1 月之后,Oracle 将对 Java 的使用开始收费.Java SE 的收费标准从每用户 40 到 300 美元,或者每处理器 5000 到 15000 美元不等.另外对企业而言非常 ...
最新文章
- LOJ2586 APIO2018 选圆圈
- dropout是什么?为什么dropout管用?测试集上是否需要使用dropout?说明为什么神经网络中的dropout可以作为正则化?
- android socket创建失败
- Mastering Caching in Asp.net
- bs模型Nd怎么用计算机算,BS模式的下试卷自动生成系统的设计与实现
- Ionic 用于构建惊人的移动应用程序的顶级开源框架
- PHP之父评价Facebook的HipHop项目:别当作银弹
- pythonhtml生成word_python如何实现word批量转HTML
- baidu__git_android
- Navicat连接Oracle
- 抓取微信小程序数据加密内容
- div+css视频教程大全免费下载更有html5教程
- 又一黑科技曝光:手机“隔空充电”时代要来了?
- 移动端实时视频直播技术实践:如何做到实时秒开、流畅不卡
- 在线CRM客户管理系统有好用的吗?这5款千万别错过!
- 【Oracle SQL数据库-教学2】--- Oracle数据库基础
- MAC下用F9-F12模拟PageUP/PageDown/HOME/END
- ApacheCamel入门
- Tomcat 解决“At least one JAR was scanned for TLDs yet contained no TLDs”问题
- 2020戴森设计大奖两项全球冠军揭晓
热门文章
- vector在java中用什么_在java中使用Vector是否安全?
- 在我方某前沿防守地域 matlab,蒙特卡洛方法模拟小例子
- 同济大学和东南大学计算机哪个好,东南大学和同济大学哪个好?选择哪个以后发展比较好?...
- mysql查询哪天,Mysql日期查询的详细介绍
- SpringMVC容器初始化篇----ContextLoaderListener
- python内置函数sorted(x)的作用是_Python内置filter与sorted函数
- java 函数内部类_java 内部类详解 转
- 漫步者煲耳机软件_它是苹果AirPods的“真香替身”——漫步者lolliPods开箱体验...
- oracle sql判断值为空,Oracle,sqlserver的空值(null)判断
- 硬盘驱动器是如何工作的?