速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

Amazon Corretto 技术细节探秘

  • 2018-11-27
  • 本文字数:3418 字

    阅读完需:约 11 分钟

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的JavaRed 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


2018-11-27 09:472060
用户头像

发布了 731 篇内容, 共 451.5 次阅读, 收获喜欢 2002 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

Nydus 在约苗平台的容器镜像加速实践

SOFAStack

开源 互联网 开发

阿里云函数计算助力高德RTA广告投放系统架构升级

阿里巴巴中间件

阿里云 云原生 函数计算

大国重器用友BIP,助力贸易行业数智化转型

用友BIP

数智化

附安装包和快捷键!5个不能错过的 Blender 插件

Finovy Cloud

软件 blender 3ds Max云渲染

Nacos+ThreadPoolExecutor构建动态线程池

小小怪下士

Java 程序员 线程池

车企数据分类分级的实践指南出炉!“数据安全推进计划”发布,奇点云参编

奇点云

数据安全 奇点云 数据分类分级 车企

技术专家云集,OpenHarmony技术峰会分论坛聚焦内核及视窗创新

Geek_2d6073

干货演讲!龙蜥自动化运维平台SysOM 2.0调度、内存相关诊断功能介绍 | 第 70-71 期

OpenAnolis小助手

内存 系统运维 sig 龙蜥大讲堂 SysOM

60% 程序员大呼:我要远程办公!

引迈信息

敏捷开发 低代码 远程办公

详解Redis的主从同步原理

C++后台开发

redis 中间件 主从同步 后端开发 Linux服务器开发

分投趣fintoch去中心化借贷交易dapp系统开发搭建

开发微hkkf5566

BI工具数据看板哪个好,瓴羊Quick BI整不错!

流量猫猫头

转型调研 | “鼎新汇•企业行”第一站:走进中国联通软件研究院

信通院IOMM数字化转型团队

数字化转型 IOMM 鼎新汇•企业行 鼎新杯

博睿数据数智领航营全国巡讲火热预约中,扫码即可参与报名~ ​​​

博睿数据

智能运维 博睿数据 数智领航营

软件测试/测试开发 | 测试平台开发-前端开发之Vue.js 框架

测试人

软件测试 测试开发 测试平台

全景剖析阿里云容器网络数据链路(六):ASM Istio

阿里巴巴中间件

阿里云 容器 云原生

从青铜到王者,揭秘 Serverless 自动化函数最佳配置

阿里巴巴云原生

阿里云 Serverless 云原生

从资源弹性到数据弹性,乾象如何将云上量化研究效率提升 40%?

阿里巴巴云原生

阿里云 云原生

怎么预防LED显示屏静电

Dylan

设备 LED显示屏 全彩LED显示屏

关于印度跨境数据传输,印度放宽了跨境数据传输

镭速

免费下载丨一看即会,Serverless 技术进阶必读百宝书

阿里巴巴云原生

阿里云 Serverless 云原生

基于人形检测的划区域客流统计

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 3 月 PK 榜 人形检测

如何基于 Antmove 将小程序快速迁移至 FinClip 环境

FN0

小程序 支付宝小程序 finclip

云快充研发中心平台架构师谈云原生稳定性建设之路

阿里巴巴中间件

阿里云 容器 云原生

消灭报销,从超级差规开始,用友BIP解决大型企业商旅费控核心难题用友BIP

用友BIP

差旅报销

阿里云 ACK@Edge 助力元戎启行加速进入自动驾驶规模化生产

阿里巴巴云原生

阿里云 云原生容器 云原生r

软件测试/测试开发 | 跨平台API对接(Java)

测试人

软件测试 自动化测试 测试发开

ChatGPT 仅仅是一款工具而已 | 社区征文

小鑫同学

ChatGPT

科技大势怎么看 2023怎么干?

加入高科技仿生人

人工智能 低代码 科技 数字孪生 6G

搞定预设,让你的 ChatGPT 不受限制 | 社区征文

极客飞兔

人工智能 聊天机器人 openai ChatGPT

Amazon Corretto技术细节探秘_编程语言_Daniel Bryant_InfoQ精选文章