龙井“上市”,阿里巴巴持续开源回馈社区

2019-03-24
6分钟阅读时长

3 月 21 日在阿里云峰会·北京上,阿里巴巴旗下的阿里云当天即发布多款重磅产品,涵盖了超级计算、云原生数据库,以及SaaS 加速器,包括神龙异构超算集群、新版本 Polardb 可兼容 Oracle 数据库、轻量级 GPU 异构计算产品——VGN5i 实例等。阿里云总裁兼阿里巴巴 CTO 张建峰称,阿里云已经成为阿里巴巴经济体的技术基石,将继续加大投入,扩大核心技术的代际领先优势。

在本次峰会上,阿里巴巴还宣布开源 OpenJDK 长期支持版本 Alibaba Dragonwell,为全球 Java 界开发者提供了一个新的选择。该版本广泛应用于阿里巴巴旗下业务,在大规模 Java 应用部署下的稳定性、效率以及性能优化有突出的优势。

Java 是全球应用最广泛的语言技术栈。据统计,全球 Java 开发工程师超过 1000 万名。而 JDK 作为 Java 语言的软件开发工具包,是整个 Java 应用的核心。当前,在 JDK 全球市场份额中,Oracle JDK 占 70%、OpenJDK 约占 21%。但 2019 年 1 月之后,Oracle 不再提供 Oracle JDK 8 免费商业版本更新。

阿里巴巴一直不遗余力地推动全球 Java 技术进步。自 2010 年起,阿里就开始基于 OpenJDK 开源软件进行开发与定制。作为全集团 Java 应用的基石,Alibaba Dragonwell 支撑了阿里经济体内所有的 Java 业务,保证了多年来“双 11”的平稳运行,积累了大量业务场景下的实践经验。在大规模 Java 应用部署情况下,Alibaba Dragonwell 可以大幅度提高稳定性、效率及性能。

2018 年,阿里巴巴还作为首家且唯一的中国企业,获邀加入 Java 全球管理组织 Java Community Process(JCP)的最高执行委员会,为 Java 语言规范作出贡献。

“Dragonwell 中文译为龙井,象征着中国的茶文化,又恰好是杭州特色。well 一词通常被描述为水源汇聚在一起供大家分享,这也是我们开源的初衷,希望可以集合开发者的力量,不断完善该项目并最终贡献给所有用户。”阿里云智能资深技术专家李三红在采访中表示,阿里本身就是 Alibaba Dragonwell 的最大用户之一,未来一定会持续维护,这是毫无疑问的。同时也希望有更多的开发者参与贡献,让 Java 变得更好。

作为世界顶尖技术舞台上最活跃的力量之一,阿里巴巴始终积极拥抱开源,回馈社区。截止目前,阿里巴巴已经参与了 9 家全球开源基金会及组织,包括 Linux Foundation、Cloud Native Computing Foundation、Apache Software Foundation、Continuous Delivery Foundation 等,是 Linux、MySQL、JVM、Kubernetes、etcd、containerd、Flink、Envoy 等知名开源项目的核心贡献者和维护者,并主导开源 400 多个项目,涉及中间件、框架、组件、数据库、存储、工具领域等。

就此次 Dragonwell 开源的一些情况,记者采访了阿里巴巴相关负责人。

Dragonwell,龙井?是寓意像龙井一样的品质吗?背后的想法是什么呢?

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

在取名字的时候,我们也考虑了很多。中国的 Java 开发者将是 Alibaba Dragonwell 重要的用户群体,所以想从一些有中国特色的饮品名中寻找灵感,既能代表中国的文化,同时也希望这个名字中能有非常宏大的意愿,能够诠释她包容一切。所以我们想到了杭州的绿茶——龙井。而它的英文名字 Dragonwell 也正好符合我们想要表达的意思。其中的 well 这个单词,就有着将很多水源汇聚在一起,一同享用的寓意,正好贴合开源的协作分享的精神理念,这也是阿里开源 JDK 的初衷,希望将许多开发者的贡献汇聚在一起,让大家能够一起免费使用 Java,一起推动 Java 的进步。

为什么要去做 Dragonwell?是否可以分享一下相关背景?

大家都知道 Java 一直是由 Oracle 主导的,早从 2017 年开始,Oracle 开始陆陆续续转变了一些 Java 的策略。去年也宣布了将从今年开始不再提供 OracleJDK 的免费更新。

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

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

Alibaba Dragonwell 是基于哪个版本的 JDK?什么时候 GA,目前有没有各个阶段具体的发布时间表?

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

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

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

以后会更注重 Java 新特性的跟进还是保证提供支持呢?对它今后的发展有什么设想或者目标?

Alibaba Dragonwell 的前身是阿里巴巴内部使用的 AJDK。作为 AJDK 的开源版本, Alibaba Dragonwell 将沿袭 AJDK 的技术优势以及实践场景下的技术经验。AJDK 有众多的技术创新, 包括多租户、Wisp 协程技术、ZenGC 等。 我们希望逐步把阿里巴巴内部积累的技术创新开源出来贡献给 OpenJDK 社区, 并在 Dragonwell 沉淀下来。

最近出现了一些开源软件变更开源协议问题,那目前/将来 Dragonwell 会不会加入一些支持限制条款呢?

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

前阵子 AWS 也推出了自己的 OpenJDK 发行版 Corretto,背后甚至有 Java 之父“站台”;再往前,其实 Azul、Red Hat 等厂商也有提供 OpenJDK 版本。那么阿里的 Dragonwell 有什么优势、特点呢?

具体来说:

  • 紧密与 OpenJDK 社区保持合作,保持对社区工作的跟踪,及时同步上游更。
  • Alibaba Dragonwell 发行版与 Java SE 标准兼容。
  • AJDK 上孵化的创新技术,会逐步贡献 OpenJDK,并在 Dragonwell 沉淀。比如这次版本包含的 JWarmUp 功能。 具体技术细节可以参考我们的用户手册。
  • 基于阿里工程实践,Alibaba Dragonwell 会选择移植高版本Java的重要功能,这些移植功能已经在阿里内部被大规模部署,用户都可以免费使用,而不用等下一个 LTS 版本。比如这次版本移植了上游 Java 11 的 Java Flight Recorder (JFR)功能,Java 开发人员可以通过 JFR 收集 JVM 运行过程中的详细的 profiling 信息,配合 Java Mission Control(JMC),大幅提高 Java 应用的问题诊断及性能优化效率。这对于仍然停留在 Java8 的客户来说,还是非常有意义的。

很多开发者使用的都是 Oracle 官方的 OracleJDK,大家什么情况下会去使用 OpenJDK 发行版,具体到 Dragonwell 是怎样呢?

在 2018 年 CodeOne(原 JavaOne)大会上,来自 Java Platform Group 的首席架构师 Mark Reinhold 做了“The Future of Java is Today”的主题演讲,重点阐述了 Java 发布模式的变化,重点是:从 Java11 (包含)以及以后的版本,Oracle 将不再提供免费的长期支持。如果你需要长期支持,可以通过向 Oracle 付费的方式获得。而 Java8 的更新也将会在 2019 年 1 月份停止。

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

阿里作为世界顶尖技术舞台上最活跃的力量之一,始终积极拥抱开源,回馈社区。我们本身就是世界上最大 Java 用户之一,未来会持续与 OpenJDK 社区的紧密合作,做好 Alibaba Dragonwell 的维护与开发工作。对于广大的 Java 开发者而言,Alibaba Dragonwell 是一个免费的新选择**。**同时我们也希望有更多的开发者能参与到社区里来、让 Java 变得更好!