查看原文
其他

阿里开源OpenJDK发行版Dragonwell

嘉宾 李三红 开源中国 2019-04-27

近日有消息显示,阿里将于 21 日重磅发布其 OpenJDK 发行版 Alibaba Dragonwell。

我们知道 OpenJDK 是基于 GPL v2/Classpath Exception 的 JDK 开源版本,有许多公司都在 OpenJDK 的基础上提供了自己的发行版,比如 Oracle、AdoptOpenJDK、Azul、IBM 与 Red Hat,一般这些供应商会将自行衍生的 OpenJDK 版本加入一些商业/非商业支持选项。


去年 AWS 也推出了自己的 OpenJDK 发行版 Corretto,背后甚至有 Java 之父 James Gosling “站台”,一时间引起不小反响。


常规理解,AWS 搞 Corretto 也算是一种“造轮子”,但是它提供的长期支持包括安全修复、常用功能增强、GC 调度、防止内存溢出,以及改进的监控、报表和线程管理等,这样的能力再加上 AWS 强大的客户和社区生态依赖,有理由让人相信 Corretto 这轮子是具有较高实际意义的。


阿里此次将发布的 Alibaba Dragonwell 也声称 LTS,并且阿里的客户与开发社区体量自然也无庸赘述,那么同为“造轮子”,Alibaba Dragonwell 这个 OpenJDK 发行版会带来些什么呢?


阿里云智能资深技术专家李三红向开源中国提前透露了 Alibaba Dragonwell 的一些信息。


第一印象是 Dragonwell 这个名字,龙井茶?是寓意像龙井一样的品质吗?分享一下背后的想法吧。


Java 本身就是一种咖啡的名字,AWS 开源的 Corretto 也是一种咖啡名。


在取名字的时候,我们也考虑了很多。中国的 Java 开发者将是 Alibaba Dragonwell 重要的用户群体,所以我们想从一些有中国特色的饮品名中寻找灵感,既能代表中国的文化,同时也希望这个名字中能有非常宏大的意愿,能够诠释她包容一切。最终想到了杭州的绿茶——龙井。


另一方面,龙井的英文名字 Dragonwell 也正好符合我们想要表达的意思。其中的“well”这个单词,就有着将很多水源汇聚在一起,一同享用的寓意,正好贴合开源协作分享的精神理念。这也是阿里开源 JDK 的初衷,希望将许多开发者的贡献汇聚在一起,让大家能够一起免费使用 Java,一起推动 Java 的进步。


为什么要去做这个东西?请介绍一下相关背景。


大家都知道 Java 一直是由 Oracle 主导的,从 2017 年开始,Oracle 开始陆陆续续转变了一些 Java 的策略。在 2018 年 CodeOne(原 JavaOne)大会上,来自 Java Platform Group 的首席架构师 Mark Reinhold 作了“The Future of Java is Today”的主题演讲,重点阐述了 Java 发布模式的变化。


他指出,从 Java 11(包含)以及以后的版本开始,Oracle 将不再提供免费的长期支持,如果你需要长期支持,可以通过向 Oracle 付费的方式获得。而 Java 8 的免费更新也将会在 2019 年一月份停止(目前已经停止)。


所以除非你是 Oracle 或者其它提供商业 JDK 厂商的付费客户,否则唯一的选择就是社区维护的 OpenJDK 版本,可以预见 Java 开发者从 Oracle JDK 切换到开源 OpenJDK 的现象会越来越多。


阿里可以说是全球最大的 Java 用户之一,而 JDK 又是 Java 的一个基础设施。我们其实早从 2010 年开始,就已经基于 OpenJDK 开源软件进行开发与定制。9 年来,支撑了阿里经济体内所有的 Java 业务,历经多年的“双11”考验,积累了大量业务场景下的实践经验。


阿里作为一家这么大体量的 Java 用户,我们有一份责任,就是把我们的 JDK 开放出去,给所有 Java 用户一个新的选择。同时,对于阿里自身来说,Alibaba Dragonwell 会针对 LTS 的两个版本 Java 8 和 Java 11 随阿里云 VM 镜像发布,免费提供给阿里云客户使用。


也就是说 Alibaba Dragonwell 会基于 OpenJDK 8 和 11?那么以后会更注重 Java 新特性的跟进还是保证提供支持呢?对它今后的发展有什么设想或者目标?


此次发布的 Alibaba Dragonwell 8 预览版本对应于上游的 OpenJDK 8 的版本。Alibaba Dragonwell 作为 OpenJDK 下游,是一款免费的 JDK 发行版,它将提供长期支持,包括关键修复和安全更新


Alibaba Dragonwell 支持 x86-64/Linux 平台,它的特点,或者说所注重的是:在数据中心 Java 应用大规模部署的情况下,稳定性、效率以及性能的优化与提高。


Alibaba Dragonwell 的前身是阿里巴巴内部使用的 AJDK,或者换个角度来看,Alibaba Dragonwell 是 AJDK 优势的继承者。作为 AJDK 的开源版本,Alibaba Dragonwell 将沿袭 AJDK 的技术优势以及实践场景累积下来的技术经验。


AJDK 有众多的技术创新,包括多租户、Wisp 协程技术与 ZenGC 等,我们希望逐步把阿里巴巴内部积累的技术创新开源出来贡献给 OpenJDK 社区,并在 Alibaba Dragonwell 中沉淀下来。


什么时候 GA,目前有没有各个阶段具体的发布时间表?


目前发布的版本是 Alibaba Dragonwell 8 Preview 预览版,Alibaba Dragonwell 将每季度发布一个更新,目前计划是 Preview 的三个月后发布 GA。Alibaba Dragonwell 11 预计年底发布。


Alibaba Dragonwell 8 是一个 LTS 版本,它的生命周期具体是怎样的?最近大家对开源协议相关的问题都怕了(也就是开源协议其实可以根据厂商需要作变更),那目前/将来 Dragonwell 会不会加入一些支持限制条款呢?


不会。Alibaba Dragonwell 是 OpenJDK 下游,我们会严格遵循 OpenJDK 社区相关

原则及协议。


前阵子 AWS 也推出了自己的 OpenJDK 发行版 Corretto;再往前,其实 Azul 与 Red Hat 等厂商也有提供 OpenJDK 版本。那么阿里的 Dragonwell 有什么优势、特点呢?


前面也提到了,Alibaba Dragonwell 注重的是在数据中心 Java 应用大规模部署的情况下,稳定性、效率以及性能的优化与提高。


具体来说:

  • 紧密与 OpenJDK 社区保持合作,保持对社区工作的跟踪,及时同步上游更新。

  • Alibaba Dragonwell 发行版与 Java SE 标准兼容。

  • AJDK 上孵化的创新技术,会逐步贡献 OpenJDK,并在 Alibaba Dragonwell 沉淀。比如这次发布的版本中包含了 JWarmUp 功能,它优化了 JVM 重启后的预热过程,具体技术细节可以参考用户手册。

  • 基于阿里工程实践,Alibaba Dragonwell 会选择移植高版本 Java 的重要功能,这些移植功能已经在阿里内部被大规模部署,用户都可以免费使用,而不用等下一个 LTS 版本。比如这次版本移植了上游 Java 11 的 Java Flight Recorder(JFR) 功能,Java 开发人员可以通过 JFR 收集 JVM 运行过程中的详细的 profiling 信息,配合 Java Mission Control(JMC),大幅提高 Java 应用的问题诊断及性能优化效率。这对于仍然停留在 Java 8 的用户来说,还是非常有意义的。

嘉宾介绍

李三红,阿里云智能资深技术专家。2014 年加入蚂蚁金服,现为阿里巴巴 Java 技术负责人,有超过 10 年的 Java 开发经验。加入阿里前,曾任 IBM Java 技术中心相关负责人,参与 IBM Java 虚拟机 J9 的开发。活跃于 Java 技术社区,在 Java 虚拟机领域拥有多项技术专利,是 GreenTea JUG(Java User Group)  组织者,JVM 顶级会议 JVMLS'17 受邀演讲嘉宾,JavaOne、QCon、JPoint 等国际会议受邀嘉宾,VMIL'18 会议程序委员会委员。


开源中国征稿啦!


开源中国 www.oschina.net 是目前备受关注、具有强大影响力的开源技术社区,拥有超过 200 万的开源技术精英。我们传播开源的理念,推广开源项目,为 IT 开发者提供一个发现、使用、并交流开源技术的平台。


现在我们开始对外征稿啦!如果你有优秀的技术文章想要分享,热点的行业资讯需要报道等等,欢迎联系开源中国进行投稿。投稿详情及联系方式请参见:我要投稿


推荐阅读

F5 收购 NGINX

调查显示近2/3的安卓杀软无效

JavaScript 引擎 V8 新机制:JIT-less 模式

谷歌与FB全球大宕机原因披露

又是求职季,这份面试宝典送给你

「在看」一手资讯吗↓↓↓

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存