写点什么

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:472002
用户头像

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

关注

评论 1 条评论

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

28天写作

lidaobing

28天写作

看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点

华为云开发者联盟

Kubernetes 微服务 kubeedge 边缘

程序员成长第四篇:程序员的职业天花板

石云升

28天写作 2月春节不断更 职场天花板

长篇总结之JavaScript,巩固前端基础

我是哪吒

JavaScript 程序员 面试 大前端 2月春节不断更

工业绿色哪家强?3D可视化盾构机构建隧道,推动设备预测性运维

一只数据鲸鱼

物联网 数据可视化 绿色交通 绿色工业 盾构机

关于京东技术,你想了解的都在这里丨征文活动获奖及优秀专栏推荐

京东科技开发者

京东 征文大赛

终于搞懂了Python模块之间的相互引用问题

华为云开发者联盟

Python 路径 代码 模块

CSS开发过程中的20个快速提升技巧

华为云开发者联盟

CSS

机器学习笔记之:Matrix Vector Multiplication

Nydia

智能汽车颠覆世界!(28天写作 Day28/28)

mtfelix

28天写作 智能汽车 未来世界

谈谈我所理解的科幻「-28/28」

道伟

28天写作

浪潮云洲工业互联网平台创新实践,受权威机构关注!

工业互联网

redis分布式锁的这些坑,我怀疑你是假的开发

华为云开发者联盟

redis 分布式 分布式锁 服务器 value

怎么一本正经地秀技

codevald

Java jdk

“嗖”一下28 天过去啦,我们都在交作业!

李忠良

28天写作

28天写作复盘

一笑

28天写作

使用V8和node轻松profile分析nodejs应用程序

程序那些事

性能优化 Profile nodejs 性能分析 程序那些事

有用的信息安全资质查询网站大全

石君

信息安全 28天写作

面试时遇到一致性哈希算法这样回答会让面试官眼前一亮

中间件兴趣圈

负载均衡 面试 一致性哈希

养成好习惯,需要的不只是意志力

Justin

习惯养成 碎碎念 28天写作

下不了的开人的手

Ian哥

28天写作

CDN加速原理的那些事

深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读

Apache Flink

flink

并发队列:PriorityBlockingQueue和DelayQueue案例使用

叫练

并发编程 队列 优先级队列 条件队列 并发队列

天天向上跑分模式介绍开发

luluhulian

目前的区块链IPFS矿机模式交易系统开发的简单解析

v16629866266

MyBatis入门

小马哥

Java mybatis 七日更 2月春节不断更

2021年的十五个DevOps趋势预测

禅道项目管理

DevOps 微服务 自动化 趋势

【无偿分享】史上最全Python学习大礼包

sum56

Python 学习 学习方法 python 爬虫 资料整理

一款基于 Web 的通用数据管理工具(转载)

BinTools图尔兹

数据库 运维 开发工具 dba 数据管理工具

IDEA永久注册码来了!!!(支持2020.3.1版本)

程序员生活志

IDEA

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