阿里開源 OpenJDK 發行版 Dragonwell

近日有消息顯示,阿里將於 21 日重磅發佈其 OpenJDK 發行版 Alibaba Dragonwell。

阿里開源 OpenJDK 發行版 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 會議程序委員會委員。

開源社區OSC頭條號,每日推送最新優質的技術類文章,涵蓋外文翻譯,軟件更新,技術博客等優質內容。關注開源社區OSC頭條號,每日獲取最新技術資訊,點擊下方原文鏈接,閱讀原文章。↓↓↓


分享到:


相關文章: