\u003cblockquote\u003e\n\u003cp\u003eInfoQ记者独家获悉:阿里巴巴宣布重磅开源OpenJDK长期支持版本Alibaba Dragonwell。众所周知,Oracle对Java 的策略已经发生系列转变,由于Java 用户群体庞大,导致此事在很长一段时间内都是开发者的讨论焦点。作为世界上最大的Java用户之一,阿里巴巴此时选择开源OpenJDK长期支持版本Alibaba Dragonwell是出于哪些考量呢?\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eOracle撒手,宣布对个人用户 (Personal Users) , Java 8 官方支持时间持续到 2020 年 12 月;对商业用户(Commercial Users),2019 年 1 月之后不再提供免费更新。\u003c/p\u003e\n\u003cp\u003e红帽喊话,计划在2023年之前继续提供对 OpenJDK 8 的支持。\u003c/p\u003e\n\u003cp\u003eAWS加入,正式推出 OpenJDK 长期支持版本 Amazon Corretto。\u003c/p\u003e\n\u003cp\u003e如今,阿里巴巴也宣布重磅开源OpenJDK长期支持版本Alibaba Dragonwell。\u003c/p\u003e\n\u003cp\u003e这不禁让人感叹:Java生态圈碎片化趋势越来越明显。对开发者而言,既不希望冒风险即刻更换,又希望可以使用具有持续安全更新和完备功能的JDK。此时,阿里巴巴宣布开源OpenJDK长期支持版本,出于哪些考虑?这是否可以打动坚守的Java 8群体并解决其燃眉之急?未来,阿里巴巴打算如何处理这一项目与OpenJDK的关系?这家Java代码量上亿(billion lines of Java code )的公司如何看待Java的未来?\u003c/p\u003e\n\u003cp\u003e针对上述问题,InfoQ记者独家专访阿里云智能基础产品事业部资深技术专家李三红、阿里云智能基础产品事业部研究员Kingsum Chow (周经森),听他们如何看待Alibaba Dragonwell与Java归途。\u003c/p\u003e\n\u003ch2\u003eAlibaba Dragonwell\u003c/h2\u003e\n\u003cp\u003eJava生态圈内的不少开发者想必对AWS开源的OpenJDK长期支持版本Corretto项目名字的来历有所耳闻,Corretto由Caffe Corttto演变而来,这是一种意大利饮料,指含有少量白酒的浓缩咖啡。无独有偶,Alibaba Dragonwell的命名也与饮料颇有渊源。周经森在采访中透露:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e“Dragonwell”中文译为龙井,象征着中国的茶文化,又恰好是杭州特色(阿里巴巴总部所在地);“well”一词通常被描述为水源汇聚在一起供大家享用,我们希望可以集合所有开发者的力量不断完善该项目并最终贡献给所有用户。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch3\u003e为何此时开源?\u003c/h3\u003e\n\u003cp\u003e在很大程度上,Java由Oracle长期主导。自2017年底,Oracle就开始陆续转变Java策略,逐渐将Oracle JDK中的商业功能开源给社区,并宣布不再提供免费商业版本更新,不提供安全更新和漏洞修复支持。\u003c/p\u003e\n\u003cp\u003e这对开发者而言意味着什么?如果你是Oracle JDK 8的用户,原License尚可免费使用,但之后若希望得到持续安全更新则需要为此付费。如今,\u003cstrong\u003e在Oracle主导下的Java大环境已经发生变化\u003c/strong\u003e。作为最大的Java的用户之一,阿里巴巴几乎拥有世界最大规模的Java应用集群,肯定需要为此采取一些行动。\u003c/p\u003e\n\u003cp\u003e在采访中,李三红表示,Oracle的系列转变传递出一个重要讯息:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e如果希望继续免费使用Java并获得持续更新,那之后可能就需要转换到社区版本。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e基于此,阿里巴巴决定开源OpenJDK长期支持版本Alibaba Dragonwell,一是因为其自身拥有大量Java客户和业务需求,阿里巴巴希望他们可以继续免费享受到JDK的所有功能;二是考虑到不少开发者可能会做出新的选择,阿里巴巴决定开源该项目,为开发者提供一个新的参考。\u003c/p\u003e\n\u003ch3\u003e重要特性\u003c/h3\u003e\n\u003cp\u003eAlibaba Dragonwell是一款免费的 OpenJDK 发行版,其提供长期支持,包括性能增强和安全修复,这部分其实对应于Oracle收费部分的功能。李三红透露,Alibaba Dragonwell目前支持x86-64/Linux平台,主要针对的场景是数据中心大规模Java应用部署情况下,Java应用稳定性、效率以及性能的优化与提高。\u003c/p\u003e\n\u003cp\u003e此次发布的Alibaba Dragonwell 8预览版本对应OpenJDK 8版本,与Java SE标准兼容。值得重点关注的三大特性如下:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e移植上游 Java 11 的 Java Flight Recorder (JFR) 功能。众所周知,JFR功能是Oracle JDK的商业收费功能,需要付费才可使用,虽然后期通过OpenJDK 11开源,但Java 8的用户群体仍然十分庞大,因此阿里巴巴决定将该功能移植到Alibaba Dragonwell 8中供开发者使用。Java 开发人员可以通过 JFR 收集 JVM 运行过程中的详细profiling信息,配合 Java Mission Control (JMC), 提高 Java 应用的问题诊断及性能优化效率;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e集成 JWarmup 技术。Warmup问题一直是Java应用的最大难点之一,虽然阿里内部很早就有应对之法,但外部用户很难触达这一方案。如今,JWarmup 已作为 Java Enhancement Proposal(JEP) 在 OpenJDK 立项,未来有望加入 Java 标准发行版。JWarmup 允许用户在数据中心结合应用流量调度时机,动态提前预编译Java 代码,从而有效减少由于传统Just-in-Time预热 (Warmup) 导致的 CPULoad 过高,Response Time 超时等问题;\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e提供GC问题诊断等Serviceability方面的提高。\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e想必有心的开发者已经发现,目前Alibaba Dragonwell仅支持Linux平台,这也是大部分数据中心所使用的操作系统。为防止开发者出现误解,此处需要特别说明:这并不影响Java的跨平台特性。因为,跨平台指的是Java应用本身,JDK(包括JVM)只是一个软件,不同平台有不同的版本,只要在对应平台安装好对应的JDK。开发者可以在任意系统上开发Java应用,再部署到相应平台运行字节码文件即可。(开源后,阿里巴巴会提供详细的中英文使用文档说明)\u003c/p\u003e\n\u003ch3\u003e后续规划\u003c/h3\u003e\n\u003cp\u003e未来,阿里巴巴希望每个季度进行一次版本迭代,下一阶段也就是3个月后预计会发布GA版本。除此之外,阿里JDK技术团队会对该项目进行持续维护和更新,并将紧密与OpenJDK社区合作,促进Java技术的发展。\u003c/p\u003e\n\u003cp\u003e此外,考虑到用户实际需求以及Java 8群体的庞大性,阿里巴巴后续也会考虑继续将OpenJDK 后续版本中的优秀功能移植到Alibaba Dragonwell中,类似于上文提到的Java Flight Recorder功能,供开发者在生产环境中提前使用。\u003c/p\u003e\n\u003ch2\u003e阿里巴巴与Java\u003c/h2\u003e\n\u003cp\u003e2018年,阿里巴巴获邀加入JCP最高执行委员会,任期两年,这也是第一家加入JCP的中国企业。JCP是一个开放的国际组织,是Java最高执行委员会,由Java开发者以及被授权者组成,主要职能是发展和更新Java技术规范,这意味着阿里巴巴在Java标准规范制定中具有一定话语权,并可以参与Java生态重大事件的决策。\u003c/p\u003e\n\u003cp\u003e据调查,阿里巴巴是全球最大的Java用户之一,其内部拥有数量非常庞大的Java开发人员和服务器,这也是其业务发展使然。提到阿里巴巴,最容易想到的标签就是“双十一”。2018年,天猫双十一的总交易额最终定格在2135亿,不到2小时就破了千亿大关,支撑系统高效运行背后的最大功臣莫过于Java。\u003c/p\u003e\n\u003cp\u003e随着体量增长和业务需求复杂性的提升,阿里巴巴在2004年决定从PHP语言全面转向Java,并急需更高效的方式来解决生产环境中的问题, 这逼着阿里巴巴不得不基于开源技术自我构建解决方案,指导Java开发人员快速定位并解决问题。\u003cbr /\u003e\n \u003cbr /\u003e\n互联网企业的节奏非常快,一周内甚至需要迭代很多版本,这其中就会出现很多问题,如果全部依靠官方更新来解决,整个战线瞬间被拉长,业务根本等不起。这也是很多互联网企业选择基于开源版本的一个非常重要原因:自主可控,快速构建匹配业务发展的解决方案。\u003cbr /\u003e\n \u003cbr /\u003e\n最早于2010年,阿里开始基于OpenJDK 6进行JVM定制优化,这是国内第一个优化、定制且开源的服务器版Java虚拟机。之后,阿里内部多个团队陆续都开始参与了JDK研发(没错,最开始确实是多个团队都在做),随后,阿里巴巴考虑到JDK作为一项重要的基础设施,几乎覆盖了物流、金融、电商、新零售和菜鸟等所有业务场景,长期分开研发肯定是不行的,便将所有JDK团队合并为一个。\u003cbr /\u003e\n \u003cbr /\u003e\n2015年,统一后的阿里JVM团队开始着手基于OpenJDK 8进行优化和定制工作,并推出了如今众所周知的定制版AJDK (Alibaba/AlipayJDK) ,这几乎承载了淘宝、天猫,蚂蚁,菜鸟的所有核心应用,并经受住了多次双十一考验。\u003cbr /\u003e\n \u003cbr /\u003e\n\u003cstrong\u003e那么,如今开源的Alibaba Dragonwell与阿里内部使用的AJDK是一个东西吗?\u003c/strong\u003e\u003cbr /\u003e\n \u003cbr /\u003e\n通过阿里的业务运行情况来看,AJDK的功能和性能确实不错,但\u003cstrong\u003e本次开源的Alibaba Dragonwell与AJDK还是有差异的\u003c/strong\u003e。李三红表示,Alibaba Dragonwell是AJDK的开源版本,AJDK技术的继承者。目前开源的版本并未包含AJDK的所有功能,比如多租户,Wisp协程,ZenGC等,主要是因为开源一个技术会涉及到比较长时间的准备。\u003cbr /\u003e\n \u003cbr /\u003e\n就目前公开的Alibaba Dragonwell 8预览版本,阿里内部其实也进行过很多次讨论,反复准备、测试、沟通,确定后又耗费了半年时间才最终将该预览版本开源,之后,阿里会考虑将AJDK的功能逐渐过渡到Alibaba Dragonwell。显然,这一工作需要时间。\u003c/p\u003e\n\u003ch2\u003e各家JDK火热,OpenJDK咋办?\u003c/h2\u003e\n\u003cp\u003e不同于Oracle JDK,OpenJDK 是基于 GPL v2/a Classpath Exception的开源项目,从Java 7开始就是Java SE的官方参考实现。曾有OpenJDK Committer在接受采访时表示,OpenJDK 有一个约定成俗的做法,经过多年免费支持后,Oracle JDK版本的生命周期就进入结束期,之后由社区接手并主导后续更新。在此之前,Oracle已经为JDK 8免费提供了五年支持,也是时候进入社区维护阶段了。\u003cbr /\u003e\n \u003cbr /\u003e\n如今,国际不少主流厂商都在使用OpenJDK,比如Google、Twitter、Amazon和阿里巴巴,并研发了基于此构建的JDK版本,这让不少生态圈内的开发者出现担忧:\u003cstrong\u003e在不少用户开始考虑选择OpenJDK的时候,这些大厂是否还有心思参与整个社区的维护?\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e从阿里巴巴层面来看,李三红在采访中反复强调一个观点:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAlibaba Dragonwell一定是OpenJDK的下游,每个Alibaba Dragonwell发行版都会同步上游最新更新,并经过阿里巴巴内部大规模的应用集群测试。同时,阿里巴巴也会积极将AJDK上的技术积累贡献到OpenJDK,积极参与社区的项目更新和维护。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003eAWS方面与这一观点也颇为类似,AWS首席开源技术专家Arun Gupta曾在 AWS 开源博客上发布公告称:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e我们期待与 OpenJDK 社区密切合作,共同开发 OpenJDK 8 和 11 的未来增强功能。\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e就笔者看来,这一状态下,各大厂商推出的JDK势必会与OpenJDK存在些许差异,这很容易理解:客户生产环境所遇到的实际问题未必适合OpenJDK的改进;面对同一问题,OpenJDK的解决方案未必与各大厂商的想法一致,这就需要多方进行友好协商,并逐渐形成良性机制,现在只是迈出了推动OpenJDK的第一步。\u003c/p\u003e\n\u003ch2\u003eJava归途\u003c/h2\u003e\n\u003cp\u003e选择多了,生态似乎更“碎”了,坚守Java 8的开发者未来有意愿向OpenJDK迁移吗?\u003c/p\u003e\n\u003ch3\u003e坚守的Java 8群体\u003c/h3\u003e\n\u003cp\u003e既然Java 8和Oracle JDK 8存在这样那样的问题,为什么开发者不大规模迁移至更新的版本呢?为什么Alibaba Dragonwell依旧从基于OpenJDK 8开始呢?这个问题的答案很简单:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eJava 8 是目前最被广泛使用的版本,并且其群体非常坚守!\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e在Java圈内,你会发现一个很有趣的现象:无论新版本给出的更新多么诱惑,大部分Java开发者似乎并不感兴趣,依旧坚持自己的选择。确实,Java 8是一个非常成功的版本,以至于很多开发者并不认为需要更新其他版本,这可能与长期养成的习惯和固有信任有关系。\u003cbr /\u003e\n \u003cbr /\u003e\n对此,李三红认为,Java这么多年发展过来,大多数开发者已经习惯信任官方Oracle JDK,对社区OpenJDK版本关注不够,所以从Oracle JDK到OpenJDK的切换需要一个过程。但随着这些国际科技大厂的努力,OpenJDK的生态一定会越来越完善,功能也会更加齐备,面对持续的安全更新和众多大厂的深度参与,这个项目应该会成为Java生态中的重要公共资源。\u003c/p\u003e\n\u003ch3\u003e越来越“碎”的生态\u003c/h3\u003e\n\u003cp\u003e很早之前,Java生态就开始出现碎片化趋势,这在Oracle收费之后似乎得到了加剧。此前,为了减少对碎片化问题的潜在担忧,AdoptOpenJDK曾强烈鼓励所有OpenJDK提供商将补丁提交给OpenJDK。\u003cbr /\u003e\n \u003cbr /\u003e\n对此,周经森认为,就开发者而言,目前的选择越来越多,这不见得一定是件坏事。并且,不同版本之间的兼容性其实非常高,迁移成本几乎为零,这不会给用户使用造成额外负担。不同的版本在性能优化、平台支持等方面确实存在些许差异,开发者可以根据需要进行选择,但阿里巴巴正在努力将这些技术推向上游,也就是整个OpenJDK生态,这一问题应该会在未来得到缓解。\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3月21日,阿里巴巴将宣布开源Alibaba Dragonwell。届时,开发者可通过阿里云开发者中心及Github社区下载使用。\u003c/p\u003e\n\u003c/blockquote\u003e\n

独家!阿里开源自用OpenJDK版本,Java社区迎来中国力量相关推荐

  1. 阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量

    2019独角兽企业重金招聘Python工程师标准>>> 阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量 3 月 21 日,阿里巴巴将宣布开源 Alibaba Drag ...

  2. 阿里开源(EasyExcel):使用Java将数据导出为Excel表格、带样式----》java web下载 Excel文件

    目录 一.技术选型 二.实现过程 1.导入依赖 2.编写工具类 EasyExcelUtil 3.公用参数类 EasyExcelParams 4.表格样式实体类 MyWriteHandler 5.数据实 ...

  3. 开源生态红似火 华为引领中国力量显峥嵘

    当Richard Stallman发起开源运动之时,他恐怕不曾想到开源能够给今日的世界带来如此巨大和深远的变化.开源的开放.共享以及大家齐心协力共同向着同一目标努力奋进的精神,如今已经成为人类共同的精 ...

  4. 阿里开源:思考,演进和发展

    2016云栖大会·北京峰会于8月9号在国家会议中心拉开帷幕,在云栖社区开发者技术专场中,首位登场的阿里云技术专家唐容为大家带来来题为<阿里开源:思考,演进和发展>的精彩演讲. 关于分享者: ...

  5. 集智全球开源 聚合中国力量 Tungsten Fabric中文社区成立大会暨社区第一次全员大会成功举行

    开源的种子正在世界范围内生根发芽,在中国的发展尤其快速.11月7日,美丽的黄海之滨见证了中国开源云网络的历史性一页--Tungsten Fabric中文社区正式启动,并召开第一次全员大会,43家创始会 ...

  6. 开源版本_重磅!阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell

    3 月 21 日北京阿里云峰会,阿里巴巴正式宣布对外开源 OpenJDK 长期支持版本 Alibaba Dragonwell.作为 Java 全球管理组织 Java Community Process ...

  7. 重磅发布:阿里开源 OpenJDK 长期支持版本 Alibaba Dragonwell

    3 月 21 日北京阿里云峰会,阿里巴巴正式宣布对外开源 OpenJDK 长期支持版本 Alibaba Dragonwell.作为 Java 全球管理组织 Java Community Process ...

  8. 早就听闻阿里开源的 Arthas 在做 Java 应用诊断上十分牛逼,没失望

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 来源 | https://jitwxs.cn/a64edcb ...

  9. ali arthas 火焰图_带你上手阿里开源的 Java 诊断利器:Arthas

    本文适合有 Java 基础知识的人群. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>[1]系列,今天给大家带来一款阿里开源的 Java 诊断利器 ...

最新文章

  1. JMX 与系统管理--转
  2. APM - 零侵入监控Service服务
  3. ajax nginx 转发 sessionid_Nginx+Apache实现动静分离 - 孙天飞
  4. 【小菜日志】用C#完成Allen Lee's Magic大虾推荐的F#作业F#学习中
  5. 咏南中间件集群解决方案
  6. 以嵌入式系统设计师考试成绩,开始嵌入式博客之旅
  7. e3是合法浮点数吗_下列哪些是不合法的浮点数的选项是 123 2e4.2 .e5 -e3 .234 1e3
  8. leetcode 48. 旋转图像
  9. cadence设计运算放大器_21.比较器的原理与特性,它与运算放大器的本质区别总结归纳...
  10. 硬件基础知识(13)---模拟电路中大量使用的滤波和隔直LC网络的值计算
  11. 自如回应南京租客事件:未对该房源进行过装修 配置的家具符合规定
  12. 蓝牙学习笔记(一)——蓝牙相关概念和术语整理(小白版)
  13. 读取文件内容返回ListString类型
  14. Lintcode68 Binary Tree Postorder Traversal solution 题解
  15. Java根据关键字在PDF/Word插入图片
  16. Labview 做二维码识别
  17. ApplePay 支付开发
  18. *(uint32_t *)(PERIPH) == GPIOX)
  19. 在线抢购平台_项目预览
  20. 读遍装修书,我们帮你选出了最有用的10本

热门文章

  1. 2020年Android GMS 认证 boot logo 最新要求
  2. python 读取gif_2020-09-11 python 读取gif文件并简单添加文字
  3. 动手写操作系统9----键盘鼠标中断实现
  4. 线程死锁 导致 服务器cpu负载过高
  5. bootstrap表格样式模板
  6. 你必须知道的3D建模流程,最后一步是关键
  7. 新南威尔士大学计算机博士申请,2020年新南威尔士大学博士申请时间
  8. OpenCV + CPP 系列(十九)直方图比较 与 直方图反向投影,投影分割
  9. 游承超:钢化玻璃膜既保护屏幕又不影响触感(4P)
  10. 通俗理解:第一型曲线积分,第二型曲线积分,第一型曲面积分,第二型曲面积分,二重积分,三重积分之间的内外联系