重磅發(fā)布:阿里開源 OpenJDK 長期支持版本 Alibaba Dragonwell(阿里openapi)
3 月 21 日北京阿里云峰會,阿里巴巴正式宣布對外開源 OpenJDK 長期支持版本 Alibaba Dragonwell。作為 Java 全球管理組織 Java Community Process (JCP) 的最高執(zhí)行委員會的唯一中國代表,以及 Oracle 之外的 Java 生態(tài)中為數(shù)不多的 OpenJDK 定制者,Alibaba Dragonwell 的開源是阿里巴巴向全球 Java 開發(fā)者的重磅獻(xiàn)禮。
這就是 Alibaba Dragonwell
Alibaba Dragonwell 是一款免費(fèi)的 OpenJDK 發(fā)行版。它提供長期支持,包括性能增強(qiáng)和安全修復(fù)。Alibaba Dragonwell 目前支持 X86-64/Linux 平臺,在數(shù)據(jù)中心大規(guī)模 Java 應(yīng)用部署情況下, 可以大幅度提高穩(wěn)定性、效率以及性能。Alibaba Dragonwell 與 Java SE 標(biāo)準(zhǔn)兼容,用戶可以使用 Alibaba Dragonwell 開發(fā)和運(yùn)行 Java 應(yīng)用程序。
此次,阿里巴巴發(fā)布的 Alibaba Dragonwell 8 預(yù)覽版本對應(yīng) OpenJDK 8 的版本。Alibaba Dragonwell的開源為全球 Java 開發(fā)者提供了新選擇。同時(shí)對于阿里云,Alibaba Dragonwell 會針對 LTS 的兩個版本 Java 8 和 Java 11 隨阿里云 VM 鏡像發(fā)布,免費(fèi)提供給阿里云客戶使用。
AJDK 的優(yōu)勢繼承者——Alibaba Dragonwell
Alibaba Dragonwell 的前身是阿里巴巴內(nèi)部使用的 AJDK(Alibaba/AlipayJDK)。早在 2010 年,阿里巴巴就開始了基于 OpenJDK 開源軟件的開發(fā),并在 2015 年著手 OpenJDK 8 的優(yōu)化和定制工作。
AJDK 作為阿里巴巴 Java 應(yīng)用的基石,支撐了阿里經(jīng)濟(jì)體內(nèi)所有的 Java 業(yè)務(wù),經(jīng)受了多次雙十一考驗(yàn),積累了大量業(yè)務(wù)場景下的實(shí)踐經(jīng)驗(yàn)。作為在 Oracle 之外的 Java 生態(tài)中的 OpenJDK 定制者, 阿里一直不遺余力持續(xù)開拓 Java 新疆界:
- 2015 年 10月,AJDK8.0.0 發(fā)布,實(shí)現(xiàn)多租戶,支持高密度部署以及資源隔離。
- 2016 年 5月,AJDK 8.1.1 發(fā)布,支持 JWarmup,支持 Java 應(yīng)用在運(yùn)行時(shí)提前編譯。
- 2016 年10月,AJDK 8.2.4 發(fā)布,實(shí)現(xiàn)Wisp協(xié)程 ,有效提升 Java 應(yīng)用性能 30% 以上。
- 2018 年 1 月,AJDK 8.4.7 發(fā)布,根據(jù)阿里大數(shù)據(jù)場景的定制版 ZenGC (G1 based)發(fā)布。
- 2018 年 2月,發(fā)布基于 AJDK 的 Java Profiling 工具 Java Event Tracing(JET) 。
作為 AJDK 的開源版本, Alibaba Dragonwell 沿襲了 AJDK 的技術(shù)優(yōu)勢以及實(shí)踐場景下的技術(shù)經(jīng)驗(yàn)。開源后,Alibaba Dragonwell 的每次發(fā)布都將會同步 OpenJDK 8 的最新更新(OpenJDK 8u),并將基于阿里的工程實(shí)踐,加入阿里的\’value-add\’ 功能。Alibaba Dragonwell 版本會通過 JCK 兼容套件測試,確保 Java 的兼容性。
Alibaba Dragonwell 與 OpenJDK
Oracle 宣布 Java8 在 2019 年 1月之后停止更新,另外 Java11 及以后版本將不再提供免費(fèi)的 long-term support (LTS) 支持??梢灶A(yù)見,未來將有越來越多 Java 開發(fā)者轉(zhuǎn)向使用 OpenJDK。阿里巴巴長期致力于與 Java 技術(shù)推進(jìn)的聚集地——OpenJDK 社區(qū)密切合作,Alibaba Dragonwell 將保持與社區(qū)版本的同步,并充分融合阿里巴巴業(yè)務(wù)實(shí)踐與技術(shù)經(jīng)驗(yàn),為 Java 開發(fā)者提供一個良好的應(yīng)對方案。
Alibaba Dragonwell 8 的優(yōu)勢
- 移植上游 Java 11 的 Java Flight Recorder (JFR) 功能,Java 開發(fā)人員可以通過 JFR 收集 JVM 運(yùn)行過程中的詳細(xì)的 profiling 信息,配合 Java Mission Control(JMC), 大幅提高 Java 應(yīng)用的問題診斷及性能優(yōu)化效率;
- 集成 AJDK 的 JWarmup 技術(shù),JWarmup 已作為 Java Enhancment Proposal(JEP) 在 OpenJDK 立項(xiàng),未來有望加入 Java 的標(biāo)準(zhǔn)發(fā)行版中。JWarmup 在數(shù)據(jù)中心可以結(jié)合應(yīng)用的流量調(diào)度時(shí)機(jī),動態(tài)預(yù)編譯Java 代碼,可以有效減少由于傳統(tǒng)的 Just-in-Time 的預(yù)熱(Warmup)導(dǎo)致的 CPU load 過高,rt 超時(shí)等問題。
- 提供在 GC 問題診斷 Servicibility 方面的提高, 詳細(xì)信息參考 Alibaba Dragonwell 8 User Guide https://github.com/alibaba/dragonwell8/wiki/阿里巴巴Dragonwell8用戶指南
Alibaba Dragonwell Roadmap
作為 OpenJDK 的下游,Alibaba Dragonwell 將在每季度發(fā)布新版本主要包含:
- 社區(qū)上游安全/關(guān)鍵 bug 修復(fù)
- 阿里定制的功能,Bug修復(fù)等。
- 基于阿里工程實(shí)踐的 Java 8 以后版本的功能移植
我們計(jì)劃逐步把阿里巴巴內(nèi)部使用 AJDK 積累的技術(shù)創(chuàng)新開源出來貢獻(xiàn)給社區(qū)。同時(shí),我們預(yù)計(jì) 2019 年年底發(fā)布 Alibaba Dragonewell 11。
Github Link:GitHub – alibaba/dragonwell8: Alibaba Dragonwell8 JDK「鏈接」
Alibaba Dragonwell FAQ
在宣布開源前夕,InfoQ 記者對阿里云智能基礎(chǔ)產(chǎn)品事業(yè)部資深技術(shù)專家李三紅、阿里云智能基礎(chǔ)產(chǎn)品事業(yè)部研究員 Kingsum Chow (周經(jīng)森)進(jìn)行了采訪,以下就大家關(guān)心的問題做一下整理。
Q1.Alibaba Dragonwell 命名有什么由來?
“Dragonwell”中文譯為龍井,象征著中國的茶文化,又恰好是杭州特色(阿里巴巴總部所在地);“well”一詞通常被描述為水源匯聚在一起供大家享用,我們希望可以集合所有開發(fā)者的力量不斷完善該項(xiàng)目并最終貢獻(xiàn)給所有用戶。
Q2.開源的 Alibaba Dragonwell 與阿里內(nèi)部使用的 AJDK 是一個東西嗎?
本次開源的 Alibaba Dragonwell 與阿里內(nèi)部使用的 AJDK 還是有差異的。Alibaba Dragonwell 是 AJDK 的開源版本,AJDK 技術(shù)的繼承者。目前開源的版本并未包含 AJDK 的所有功能,比如多租戶,Wisp 協(xié)程,ZenGC 等。之后,會考慮將 AJDK 的功能逐漸過渡到 Alibaba Dragonwell。
Q3.Alibaba Dragonwell 與 OpenJDK 關(guān)系是怎么樣的?阿里巴巴是否會持續(xù)維護(hù) OpenJDK 社區(qū)?
Alibaba Dragonwell 一定是 OpenJDK 的下游,每個 Alibaba Dragonwell 發(fā)行版都會同步上游最新更新,并經(jīng)過阿里巴巴內(nèi)部大規(guī)模的應(yīng)用集群測試。同時(shí),阿里巴巴也會積極將 AJDK 上的技術(shù)積累貢獻(xiàn)到 OpenJDK,積極參與社區(qū)的項(xiàng)目更新和維護(hù)。我們期待與 OpenJDK 社區(qū)密切合作,共同推動 OpenJDK 的發(fā)展。
Q4. 如何看待Java 版本的升級? 如何看待 Oracle JDK 與 OpenJDK 的關(guān)系?
Java 8 是目前最被廣泛使用的版本,并且其群體非常堅(jiān)守。在 Java 圈內(nèi),你會發(fā)現(xiàn)一個很有趣的現(xiàn)象:無論新版本給出的更新多么誘惑,大部分 Java 開發(fā)者似乎并不感興趣,依舊堅(jiān)持自己的選擇。確實(shí),Java 8 是一個非常成功的版本,以至于很多開發(fā)者并不認(rèn)為需要更新其他版本,這可能與長期養(yǎng)成的習(xí)慣和固有信任有關(guān)系。Java 這么多年發(fā)展過來,大多數(shù)開發(fā)者已經(jīng)習(xí)慣信任官方 Oracle JDK,對社區(qū) OpenJDK 版本關(guān)注不夠,所以從 Oracle JDK 到 OpenJDK 的切換需要一個過程。但隨著這些國際科技大廠的努力,OpenJDK 的生態(tài)一定會越來越完善,功能也會更加齊備,面對持續(xù)的安全更新和眾多大廠的深度參與,這個項(xiàng)目應(yīng)該會成為 Java 生態(tài)中的重要公共資源。